SQL基礎 基本的な文法の個人的メモ
概要
SQLとはなんぞや、、という状態だったところとてもわかりやすい解説がYoutube 山浦さんにあったため自分なりのメモ(まんまですが)
以下の例のテーブルを用いてその動作を確認。
テーブルはこちらを使用。Hondaの名車をまとめました。
まずこちらの車の名前の列と動力伝達方式を取得する場合はSELECT FROM
を用いる
SELECT name,type //カラム名 FROM meisya; //テーブル名
こちらの出力は となる。
次に動力伝達方式の中でユニークなものだけ取得したい場合(FF,MR)に重複がある場合
SELECT DISTINCT(type) FROM meisya;
により のようにユニークな値を取得できる。
次に条件指定には'WHERE'を用いる
SELECT name,cool //カラム名 FROM meisya //テーブル名 WHERE cool >8 ;
とすることで と条件による絞り込みも可能。
次にAND
駆動伝達方式がMRdでcoolが8より大きいものの場合は
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 WHERE cool >8 AND type='MR';
と指定すれば、PPIだけが絞り込めます笑
同様にOR
は
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 WHERE cool >8 OR type='MR';
とするとPP1,AP1,NA1が絞り込めます。
次に`7<=cool<=9のレコードを取得したい場合は
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 WHERE cool BETWEEN 7 AND 9 ```` とすることで取得可能です。出力は <figure class="figure-image figure-image-fotolife" title="BETWEEN">[f:id:tyoku-pp1:20220927133257p:plain]<figcaption>BETWEEN</figcaption></figure> となります。 次に駆動方式がMRかFFのものを取得することを考えてみます。もちろんORでもできるのですがよりスマートに記述する場合は1`IN`を用います。
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 WHERE cool IN ('MR','FF');
とすると <figure class="figure-image figure-image-fotolife" title="IN">[f:id:tyoku-pp1:20220927133053p:plain]<figcaption>IN</figcaption></figure> `NOT IN`を用いることで含まないものを指定することも可能です。 次にあいまい検索。Pから始まるあの名車ってなんだっけ(そんな状況ないか、、、)場合は
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 WHERE name LIKE 'P%';
とすることでPP1を思い出すこともできます。 次にレコードのtypeの空白行を取得したい場合は <figure class="figure-image figure-image-fotolife" title="NULLが含まれるレコード">[f:id:tyoku-pp1:20220927133754p:plain]<figcaption>NULLが含まれるレコード</figcaption></figure>
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 WHERE type IS NULL;
とすることでEP3が取得できます。ちなみにEP3はFFですね。エンジンはK20Aですね。 `IS NOT NULL`とすることで空白ではないレコードの取得も可能です。 次にテーブルの取得したい行数を指定したいときもあります(データが多すぎて取得に時間がかかる場合など、、、) その場合は`LIMIT`を用います。
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 LIMIT 2
とすることで2行のみ取得が可能です。 次に並び替え。昇順の場合は
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 ORDER BY cool ;
とすることでかっこいい順にならべ変えが可能です。(私の主観です、、、異論は認めます) 降順の場合は
SELECT * //アスタリスクですべてのカラム FROM meisya //テーブル名 ORDER BY cool DESC;
とすることで降順での並び替えが可能です。descendingの略でしょう。 ## SQLのコツ - 予約後は大文字 - 特定の予約語(SELECT,WHERE,ORDER BY...)のあとは改行する - SELECTで列名指定、LIMITにより行を制限すると高速実行が可能。