DuckDB
SQLiteライクな軽量DB
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
SQL
句
ORDER BY句
ORDER BY expr
指定した条件で行をソートします。
ORDER BY expr DESC
指定した例を降順でソートします。
データ型
数値データ型
| Name | 説明 |
|---|---|
TINYINT |
8 ビット符号付き整数 |
SMALLINT |
16 ビット符号付き整数 |
INTEGER |
32 ビット符号付き整数 |
BIGINT |
64 ビット符号付き整数 |
HUGEINT |
128 ビット符号付き整数 |
浮動小数点型
| Name | 説明 |
|---|---|
REAL |
4 バイト倍精度浮動小数点数 |
DOUBLE |
8 バイト倍精度浮動小数点数 |
文字型
DuckDBではVARCHAR型しかありません。互換性のために、VARCHAR(n)という形が使えますが、文字列の長さを指定するためには機能しないので、使い分ける必要はありません。
| Name | 説明 |
|---|---|
VARCHAR |
可変長文字列 |
VARCHAR(n) |
可変長文字列。nに数字をいれても意味はない。 |
式
キャスティング
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)
標本の標準偏差を返します。