アラサーからのプログラマー生活

アラサーの新米PGが必死に頑張る成長記録です。あとは旅行とか。

【postgreSQL】基本的な考え方と便利な句

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

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


句の記述順

  1. SELECT
  2. FROM
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. ORDER BY


句の実行順

  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;

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



ひとまずは以上です。
とりあえず最低限の考え方や、覚えていると便利な道具を書いてみました。
もしかしたら適宜追加するかもしれません。

それではまた次回。