ゼロから始めるデータベース操作を読み始めた02
北海道に旅行に行っていたので、間が空いてしまった。
また学習しての気付きなどを書いていく。
各句の記述順序
- SELECT
- FROM
- WHRE
- GROUP BY
- HAVING
- ORDER BY
大雑把な実行順序
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- ORDER BY
GROUP BY句では別名は使えない
SELECTやGROUP BYの結果の行の並び順はランダム
どちらにもかける条件は下記の方針で行うと分かりやすい
- WHERE句=行に対する条件指定
- HAVING句=グループに対する条件指定
ORDER BYを使用した時、NULLは先頭か末尾にまとめられる。
DBMSによってどちらにするか指定する昨日もある
INSERTで明示的にデフォルト値を挿入するにはDEFAULT
SELECTした結果をそのままテーブルにINSERTすることができる
INSERT INTO AlphaCopy (a, b, c) SELECT a, b, c FROM Alpha;
テーブル内行全削除(TRUNCATEのほうが基本は早い)
DELETE FROM テーブル名; TRUNCATE テーブル名;
ビューは内部的にそのSELECT文を実行し仮想的なテーブルに見せるもの
サブクエリは更に使い捨てのビュー
サブクエリには原則的に名前をつける
必ず1行1列だけの戻り地を返す、スカラ・サブクエリ WHERE句での比較に使える
相関サブクエリ
SELECT a, b, c FROM Alpha AS A1 WHERE a > (SELECT AVG(a) FROM Alpha AS A2 WHERE A1.b = A2.b GROUP BY b);
文字列連結は||またはCONCAT関数
NULLを値へ変換する関数COALESCE
LIKEでのパターンマッチで使用できる文字列
- % 0文字以上の文字列
- _ 任意の1文字
IN句はテーブルを引数に取ることができる
続く
完全に忘れてんなーってのと知らんかったなーってのと。
ここまででひとつのテーブルに対してってのが多かったけど次からは結合関係になるのかな