僕のように0からSQLを使う人向けに記載していく。
実際は自分用の辞書として用いる予定だが、初心者が読んで有用であるよう心がけて作成するよう心がけている。
はじめに:超役に立つサイト
経験則から、おそらくガンガン実践しながらわからない部分を検索 or youtubeの動画で補充していくのが最も効率が良いので、上記のサイトが有用。問題数が少ないのが難点だが、初心者がやるには十分そう。
これで問題解きながら色々実験していく。問題外のことも試してみると◎
ベーシック
SELECT variable
FROM table_name
条件の指定
SELECT variable
FROM table_name
WHERE variable = value
空欄の指定方法
SELECT variable
FROM table_name
WHERE variable IS NULL
昇順並び替え
SELECT variable
FROM table_name
ORDER BY ;
降順並び替え
...(同上)
ORDER BY DESC
複数指定も可能
....
ORDER BY mogumogu ASC, hamuhamu DESC みたいな。
JOIN 系
↑とても参考になるサイト。JOINについて解説している
INNER JOIN
条件をもとに、テーブルとテーブルを合体する
2つのテーブルの合体可能なデータのみを抜き出して合体させるやり方が「内部結合」です。
テーブル1:名前、性別 テーブル2:名前、年齢が入っているとする。
どちらにもデータが入っている人について、名前、性別、年齢を表示させる2は以下のようにINNER JOINする。
SELECT
table1.【名前】,
table1.【性別】,
table2.【年齢】
FROM
table1
INNER JOIN
table2
ON
table1.【名前】 = table2.【名前】
ONにて名前が一致するという条件を指定した上でtable1にtable2をINNER JOINしている。
COUNT系
文字通りカウントする。括弧の中に*を入れたり数字(1,2など)を入れる用法があるらしい。後々追記。
基本的な用法
SELECT COUNT ()
FROM table
COUNT()ですべてのrowをカウントする。これを引数として扱うこともできる。
例)
SELECT category_id,
COUNT ()
FROM book_categories
GROUP BY category_id
ORDER BY COUNT() DESC
GROUP BY
データを分類して表示。(グループ化)
例えば「スーパーの商品」テーブルに全商品の品名とそのジャンルがあったとする。
ジャンルごとに表示したければGROUP BYだし、そのジャンルの商品の個数を出すのもGROUP BYらしい。
細々としたメモ
stringを引数として扱う方法
引数としてstringを扱う際は、''で挟む。例は以下の通り。
SELECT *
FROM books
WHERE name = 'ココア'
処理の順序について
GROUP BYは最後になされなければならず、GROUP BYの後にJOINすることはできない。
コメントアウトの方法
-- または/*によってコメントアウトできる。