はじめてのSQL【初心者編:SELECT文について】
こんにちは。
スタッフブログ担当の岩でございます。
前回はトランザクションのACID特性について説明いたしました。
今回はSQLといえばこれ!「SELECT文」について説明いたします。
SELECT文とは
以前のDMLについて説明した記事でデータの出力としてSELECT文を紹介しました。
SELECT文で必要なデータを検索し、取り出すことを「問い合わせ」や「クエリ(query)」と呼ぶこともあります。
今回はこちらの表を用いてSELECT文の書き方を紹介します。
shohin_id (商品ID) | shohin_mei (商品名) | shohin_bunrui (商品分類) | hanbai_tanka (販売単価) | shiire_tanka (仕入単価) | torokubi (登録日) |
0001 | ボールペン | 事務用品 | 100 | 50 | 2020-10-20 |
0002 | おろしがね | キッチン用品 | 500 | 350 | 2020-09-07 |
0003 | フォーク | キッチン用品 | 100 | 30 | |
0004 | 圧力鍋 | キッチン用品 | 5000 | 1000 | 2020-04-25 |
0005 | 包丁 | キッチン用品 | 8000 | 2020-07-05 | |
0006 | カッターシャツ | 衣類 | 3000 | 1500 | 2020-06-11 |
0007 | 穴あけパンチ | 事務用品 | 400 | 240 | 2020-11-27 |
0008 | Tシャツ | 衣類 | 1500 | 2020-03-13 |
*(アスタリスク)
全ての列を出力したいときには、「*(アスタリスク)」を使います。
SELECT * FROM <テーブル名>;
例のShopテーブルを使って書くとこのようになります。
SELECT * FROM Shop;
これは、以下の問い合わせと同じ意味です。
SELECT shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka,shiire_tanka, torokubi
FROM Shop;
アスタリスクを使うときの注意点は、結果の列の並びを指定することができないことです。
テーブルに定義されている順に結果は表示されます。
AS(アズ)
ASキーワードを使って、列に別名を付けることができます。
例のShopテーブルを使って書くとこのようになります。
SELECT shohin_id AS "商品ID"
,shohin_mei AS "商品名"
,shiire_tanka AS "仕入単価"
FROM Shop;
別名には日本語を使うこともできますが、その場合は必ずダブルクォーテーション(”)で囲みましょう。
シングルクォーテーション(’)とよく間違えるので、注意してください。
定数の出力
SELECT文ではテーブルから取り出したデータだけでなく、定数を出力することもできます。
SELECT '商品' AS "文字列"
,17 AS "数"
,'2020-10-17' AS "日付"
,shohin_id
FROM Shop;
SQLの中に文字列や日付の定数を書く場合には、必ずシングルクォーテーション(’)で囲みましょう。
ASキーワードを使うときはダブルクォーテーション(”)なので、間違えないでください。
DISTINCT(ディスティンクト)
Shopテーブルからどのような商品分類があるか確認したいときに、以下のようなSELECT文を書きました。
SELECT shohin_bunrui FROM Shop;
結果としては、8行の結果が返ってきます。
しかし、商品分類は「事務用品」、「キッチン用品」、「衣類」の3種類しかありません。
表はこちらを参照してください。
結果の重複行を省いてしまうのが「DISTINCT」です。
SELECT DISTINCT shohin_bunrui FROM Shop;
このように書くと重複行が省かれ、3行の結果が返ってきます。
DISTINCTはNULLも消えずに残り、まとめてくれます。
まとめ
SELECT文はSQLの中で一番使われると言われるほど、業務でもよく使います。
次回はSELECT文の中で使うWHERE句について説明します。
WHERE句の中でできることはたくさんあるので何回かに分けて説明しますね。
最後まで読んでくださりありがとうございました。
どうぞよろしくお願いいたします。