postgreSQLの基本的な構文と便利な句

※この記事の初版は2018年9月でした。

こんにちは、堀井です。
今回はpostgreSQLにおける(どちらかと言えば自分向けに書いた)備忘録的な記事です。

なおpostgreSQLのバージョンは10.5で動くことを確認しています。


句の実行順

  1. FROM
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. 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:グループに対しての条件

データ抽出の流れとしては、

  1. WHERE句でソート対象を抽出する
  2. COUNT関数などでソート
  3. HAVINGで条件に合致するデータを抽出する

となっており、またソート処理そのものが非常に処理に時間がかかるのでソート量は必要最小限で収めるべき
つまりWHEREで抽出できる分をHAVINGに持ち出さないように

データの変更方法

UPDATE [テーブル名]
SET [変更式];

※例えば
SET [数値型のデータ名] = 10000;
とすればその値が10000に変わる
例えばWHERE句を入れると指定データをまとめて変更することが可能なので、
SET [数値型のデータ名] = [数値型のデータ名] * 10;
と書けば値が全部10倍されるが、
SET [数値型のデータ名] *= 10;
とは出来ない模様、残念。

情報の取得

テーブル一覧の表示

\dt;

保存されているテーブルの一覧を全て出力します

指定したテーブルの列・型・修飾語・プライマリーキーを全て表示

\d [テーブル名];

こんな表示になります。
f:id:hollage0214:20180917233848j:plain

ビューの表示

\dv;

保存したビューを全て出力します


ひとまずは以上です。
とりあえず最低限の考え方や、覚えていると便利な道具を書いてみました。

コメントする