DuckDBのインストール
Windowsのパッケージマネージャーであるscoop
を使って、インストールしました。
scoop install duckdb
CLIで使用する
DuckDBはCLIからも操作できます。起動すると、D
で始まるプロンプトが表示されます。
duckdb [OPTIONS] [FILENAME]
インメモリデータベースとして起動する
インタラクティブに使うにはduckdb
コマンドを実行し、DuckDBを起動します。
duckdb
ファイル名を指定しなければインメモリデータベースとして起動します。
データベースを指定して起動する
引数にファイル名を指定すると、データを保持できます。
dubckdb test.db
ドットコマンド
DuckDB内で使用可能なコマンド。先頭にドット.
が付きます。
カレントディレクトリを変更する
.cd
コマンドを実行することで、カレントディレクトリを変更できます。
.cd DIRECTORY
出力フォーマットを変更する
.mode
コマンドを実行することで、SQL実行結果のフォーマットを変更できます。
CSVで出力する
.mode csv
Markdownの表形式で出力する
.mode markdown
SQLの実行結果を1回のみファイルに保存する
.once [OPTIONS] <filename>
SQLファイルを読み込む
.read
コマンドを実行することで、SQLファイルを実行できます。
.read sample.sql
文
COPY文
データをデータベースとファイル間でコピーします。
データをDuckDBからファイルにエクスポートする
DuckDBからファイルにデータを出力するには、COPY ... TO
オプションを使用します。
COPY source-database TO target-database ( SCHEMA )
CSVファイルに出力する例。
COPY (SELECT * FROM sample_db)
TO 'export.csv' (HEADER true, DELIM ',')
SELECT文
データベースからデータを取得するため文。
SELECT select_list
FROM tables
USING SAMPLE sample_expr
WHERE condition
GROUP BY groups
HAVING group_filter
WINDOW window_expr
QUALIFY qualify_filter
ORDER BY order_expr
LIMIT n;
UNPIVOT文
横持ちのデータを建持ちのデータに変換する文。
UNPIVOT [dataset]
ON [column(s)]
INTO
NAME [name-column-name]
VALUE [value-column-name(s)]
ORDER BY [column(s)-with-order-direction(s)]
LIMIT [number-of-rows];
ON句
でデータに変換したい列名を指定し、INTO
のNAME
で元の列名を集合した列名、VALUE
でデータの列名を指定する。
句
ORDER BY句
ORDER BY expr
指定した条件で行をソートします。
ORDER BY expr DESC
指定した例を降順でソートします。
データ型
Name | 説明 |
---|---|
DOUBLE | 8 バイト倍精度浮動小数点数 |
HUGEINT | 16 ビット符号付き整数 |
VARCHAR | 可変長文字列 |
式
キャスティング
CAST (expr AS type-name)
キャストとは、指定したexprt
の値を別のtype-name
データ型の対応する値に変換する操作です。
浮動小数点型に変換する例
CAST(Intensity AS DOUBLE)
関数
数値操作
round(v NUMERIC, s INT)
round()
関数は、v
の小数点以下s
桁に丸めた値を返します。
- 小数点以下第1位で四捨五入する場合
D SELECT ROUND(123.456, 1) AS Result;
┌──────────────┐
│ Result │
│ decimal(6,1) │
├──────────────┤
│ 123.5 │
└──────────────┘
結果は123.5
となります。
- 整数部で丸める場合
D SELECT ROUND(123.456, -1) AS Result;
┌──────────────┐
│ Result │
│ decimal(6,0) │
├──────────────┤
│ 120 │
└──────────────┘
結果は120
となります。
文字列操作
rtrim(string, charactes)
rtrim()
関数は、string
の右側からcharacters
で指定した文字をすべて削除します。
例
rtrim(Intensity, '%')
集計関数
SELECT
句およびHAVING
句のみで使える関数です。
一般集計関数
平均
avg(arg)
平均値を返します。
合計
sum(arg)
合計値を返します。
統計集計関数
stdev_pop(x)
母集団の標準偏差を返します。
stdev_samp(x)
標本の標準偏差を返します。