※この記事の初版は2018年9月でした。
こんにちは、堀井です。
今回はpostgreSQLにおける(どちらかと言えば自分向けに書いた)備忘録的な記事です。
なおpostgreSQLのバージョンは10.5で動くことを確認しています。
目次
句の記述順
- SELECT
- FROM
- WHERE
- GROUP BY
- HAVING
- ORDER BY
句の実行順
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- ORDER BY
SELECT句
全ての列を出力
SELECT *
ASキーワードを使用した時の文字列の扱い
SELECT [列名] AS ”別名”
とダブルクオーテーションで囲う
WHERE句に対するNULLの扱い
通常時の検索
WHERE [条件式]
または
WHERE NOT [条件式]
NULLのみ抽出したいとき
WHERE IS NULL
TRUEのとき(つまりデータがNULLの場合)に抽出
NULL以外を抽出したいとき
WHERE IS NOT NULL
FALSEのとき(つまりデータがNULLでない場合)に抽出
WHEREとHAVINGの違い
WHERE:行に対しての条件
HAVING:グループに対しての条件
データ抽出の流れとしては、
- WHERE句でソート対象を抽出する
- COUNT関数などでソート
- HAVINGで条件に合致するデータを抽出する
となっており、またソート処理そのものが非常に処理に時間がかかるのでソート量は必要最小限で収めるべき
つまりWHEREで抽出できる分をHAVINGに持ち出さないように
データの変更方法
UPDATE [テーブル名]
SET [変更式];
※例えば
SET [数値型のデータ名] = 10000;
とすればその値が10000に変わる
例えばWHERE句を入れると指定データをまとめて変更することが可能なので、
SET [数値型のデータ名] = [数値型のデータ名] * 10;
と書けば値が全部10倍されるが、
SET [数値型のデータ名] *= 10;
とは出来ない模様、残念。
情報の取得
テーブル一覧の表示
\dt;
保存されているテーブルの一覧を全て出力します
指定したテーブルの列・型・修飾語・プライマリーキーを全て表示
\d [テーブル名];
こんな表示になります。
ビューの表示
\dv;
保存したビューを全て出力します
ひとまずは以上です。
とりあえず最低限の考え方や、覚えていると便利な道具を書いてみました。