SQLの基礎構文
SQLで欲しいデータを抽出する際は、FROMでテーブルを選択し、SELECTでカラムを指定する。
;(セミコロン)は文の終わりに書く。単文なら必須ではないが、書くことを習慣にするのが良い。
なぜ SELECT カラム → FROM テーブル の順番なのか?
該当するテーブルのカラムを抽出するから、テーブルを先に記述したくなる。
だが、SQLはどういうものを抽出したいか、結果として何が欲しいかを宣言する言語である。
故に、欲しいカラムを宣言(SELECT)して、それはどのテーブル(FROM)にあるのか、という流れになる。
※英語の文章構造によるものらしい。〇〇を選べ(SELECT)、それは◻︎◻︎から(FROM)
⭐️豆知識
DBエンジンは、以下の順でデータを探す。
SQLの文構造と違うのは驚き。。。
- FROM(どのテーブルか決定)
- WHERE(条件で絞り込み)
- GROUP BY(グループ化)
- HAVING(グループ条件)
- SELECT(カラムを抽出)
- ORDER BY(並び替え)
- LIMIT(件数制限)
昇順 (ASC)
- 小さい値から大きい値
- 文字列の場合はアルファベット・辞書順
- 日付は古い方から新しい方
その逆が降順 (DESC)
真偽値(BOOLEAN型)
未完了のものや失敗しているものを抽出したい場合(完了しているならTRUE)
WHERE カラム名 = FALSE;
または、true:1、false:0でも表せるので、これでも良い
WHERE カラム名 = 0;
もし"true" or "false"の文字列で判定が保存されている場合
WHERE カラム名 = 'false';
おまけ:未設定(NULL)もfalseと同じ扱いにしたいなら
WHERE カラム名 = FALSE OR カラム名 IS NULL;