はじめに
SQL Serverを勉強したのでまとめてみました。
SELECT, FROM
SELECTは列(カラム)を選択します。
FROMは表(テーブル)を選択します。
SELECT *
FROM consumer
SELECT文の * は、全カラムを取得するという意味。
また、次の例のように * を使わなくても良い。
SELECT name, age
FROM consumer
FROM文でも複数テーブルを指定できるがおすすめしない。
なぜなら、1つ目のテーブルにくっついて2つ目のテーブルが表示されてしまうから。
WHERE
WHERE文では、SELECTするカラムに条件を付け加えることができる。
SELECT *
FROM consumer
WHERE age >= 20
20歳以上のお客さんの情報を全て表示する。
論理演算子
a = b
a と b は等しい
a < b
a は b より小さい
a > b
a は b より大きい
a <= b
a は b 以下
a >= b
a は b 以上
a <> b
a と b は等しくない
ANDやORなどを組み合わせて条件指定もできる。
SELECT *
FROM consumer
WHERE age >= 20 AND name = '山田太郎'
memberテーブルから、20歳以上の”山田太郎”さんの情報だけを全て表示する。
ORDER BY
デフォルトでは昇順で並べられる。
ASC:昇順
DESC:降順
SELECT age, name
FROM consumer
ORDER BY age DESC
この例では、降順の年齢順に名前を表示していく。
JOIN ON
複数テーブルの共通部分を連結させることができる。
よくあるのがIDで連結させる。
SELECT consumer.age, consumer.name
FROM consumer
JOIN goods
ON consumer.id = goods.consumerID
JOINに連結させたいテーブル名、ONに条件を書く。
”テーブル名.カラム名”と表記して、どのテーブルのどのカラムかを区別する。
この文では、consumerテーブルのidカラムとgoodsテーブルのconsumerIDカラムが同じであれば連結させて表記する。
AS
別名をつけることができる。
SELECT name AS '名前', age AS '年齢'
FROM consumer
このように書くとカラム名がそれぞれ「名前」、「年齢」として表示される。
次のようにJOIN ONと一緒に使うことも多い。
SELECT c.age, c.name
FROM consumer AS c
JOIN goods AS g
ON c.id = g.consumerID
終わりに
以前MySQLを少しの間勉強したことがあったのですが、実際の膨大なデータを扱うのは今回が初めてでした。
ですが、めちゃめちゃおもしろい、、、!!
業務でも使っていくので極めたいと思います!