SELECT文ってどうやって使うの?
列名を別名指定で取り出したい。
重複を省く方法は?
取り出す条件を指定する方法は?
わかりやすく教えて欲しい!
こういった疑問にこたえます。
エンジニアの僕がわかりやすく解説します。
SELECT文の使い方
SELECT文はテーブルからデータを取り出すときに使います。
列を出力する方法
テーブルの列の中から必要な列を選択して取り出します。
SELECT文の構文は次の通りです。
SELECT <列名>,・・・ FROM <テーブル名>;
この文にはSELECT句とFROM句があります。
SELECT句にはテーブルから取り出したい列を指定します。
FROM句はどのテーブルから取り出すかを指定します。
例えば、このようなshohinテーブルがあったとします。
商品ID (shohin_id) | 商品名 (shohin_mei) | 商品分類 (shohin_bunrui) | 販売単価 (hanbai_tanka) | 仕入れ単価 (shiire_tanka) | 登録日 (torokubi) |
‘0001’ | ‘Tシャツ’ | ‘衣服’ | 1000 | 500 | ‘2020-02-21’ |
‘0002’ | ‘ボールペン’ | ‘事務用品’ | 100 | 30 | ‘2020-02-22’ |
‘0003’ | ‘鉛筆’ | ‘事務用品’ | 100 | 40 | ‘2020-02-22’ |
この中から、商品ID、商品名、販売単価のデータを取り出したい場合は、次のようなSELECT文になります。
SELECT shohin_id, shohin_mei, hanbai_tanka FROM shohin;
実行すると次のようなデータが取り出せます。
shohin_id | shohin_mei | hanbai_tanka |
‘0001’ | ‘Tシャツ’ | 1000 |
‘0002’ | ‘ボールペン’ | 100 |
‘00037 | ‘鉛筆’ | 100 |
SELECT句で指定した順番にデータが取り出せます。複数の列を取り出す場合は「,」で区切って指定します。
全ての列を出力する方法
全ての列を取り出したい場合は「*」を使います。
SELECT * FROM <テーブル名>;
「*」で指定した場合、順番はCREATE TABLE文で定義した順番に列が並びます。
列に別名をつける方法
SQL文ではASを使うことで列を別名で出力することが可能です。
例えばこんな感じ。
SELECT shohin_id AS ID, shohin_mei AS NAME, haibai_tanka AS TANKA FROM shohin;
ID | NAME | TANKA |
‘0001’ | ‘Tシャツ’ | 1000 |
‘0002’ | ‘ボールペン’ | 100 |
‘0003’ | ‘鉛筆’ | 100 |
別名には日本語を使用することも可能です。
その場合は「”商品名”」というようにダブルクォーテーションで囲みましょう。
結果から重複行を省く
例えば、shohinテーブルの商品分類にはどんな種類があるか知りたい場合は重複を省くと見やすいです。
商品ID (shohin_id) | 商品名 (shohin_mei) | 商品分類 (shohin_bunrui) | 販売単価 (hanbai_tanka) | 仕入れ単価 (shiire_tanka) | 登録日 (torokubi) |
‘0001’ | ‘Tシャツ’ | ‘衣服’ | 1000 | 500 | ‘2020-02-21’ |
‘0002’ | ‘ボールペン’ | ‘事務用品’ | 100 | 30 | ‘2020-02-22’ |
‘0003’ | ‘鉛筆’ | ‘事務用品’ | 100 | 40 | ‘2020-02-22’ |
重複行を省きたい場合は、SELECT句にDISTINCTというキーワードを使います。
SELECT DISTINCT shohin_bunrui FROM shohin;
このSQL文の実行結果は次のようになります。
shohin_bunrui |
‘衣服’ |
‘事務用品’ |
事務用品のレコードが複数ありますが、一つにまとめられました。
WHERE句による行の選択
WHERE句では条件を指定します。
条件に当てはまるデータだけを取り出したい場合に使います。
WEHRE句は次のように記述します。
SELECT <列名>,・・・ FROM <テーブル名> WHERE <条件式>;
WHERE句はFROM句の直後に書きましょう。
例えば、shohinテーブルから販売単価が1000以上の商品名を取り出したいとします。
この場合、SQL文は次のようになります。
SELECT shohin_mei FROM shohin WHERE hanbai_tanka >= 1000;
shohin_mei |
‘Tシャツ’ |
SELECT文の使い方まとめ
解説の内容をまとめます。
- SELECT文はテーブルの列の中から必要な列を選択して取り出す
- 「*」は全列取り出す
- ASで別名を指定できる
- DISTINCTで重複行を省くことができる
- WHERE句で条件を指定できる
以上、お疲れ様でした。
コメント