B L O G

  1. TOP
  2. BLOG
  3. はじめてのSQL【初心者編:SELECT文について】
プログラミング
2024.06.14

はじめてのSQL【初心者編:SELECT文について】

こんにちは。

スタッフブログ担当の岩でございます。

前回はトランザクションのACID特性について説明いたしました。

はじめてのSQL【初心者編:ACID特性について】

今回はSQLといえばこれ!「SELECT文」について説明いたします。

SELECTちゃん

SELECT文とは

以前のDMLについて説明した記事でデータの出力としてSELECT文を紹介しました。

はじめてのSQL【初心者編:DMLについて】

SELECT文で必要なデータを検索し、取り出すことを「問い合わせ」や「クエリ(query)」と呼ぶこともあります。

今回はこちらの表を用いてSELECT文の書き方を紹介します。

shohin_id
(商品ID)
shohin_mei
(商品名)
shohin_bunrui
(商品分類)
hanbai_tanka
(販売単価)
shiire_tanka
(仕入単価)
torokubi
(登録日)
0001ボールペン事務用品100502020-10-20
0002おろしがねキッチン用品5003502020-09-07
0003フォークキッチン用品10030
0004圧力鍋キッチン用品500010002020-04-25
0005包丁キッチン用品80002020-07-05
0006カッターシャツ衣類300015002020-06-11
0007穴あけパンチ事務用品4002402020-11-27
0008Tシャツ衣類15002020-03-13
Shopテーブル

*(アスタリスク)

全ての列を出力したいときには、「*(アスタリスク)」を使います。

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句の中でできることはたくさんあるので何回かに分けて説明しますね。

最後まで読んでくださりありがとうございました。

どうぞよろしくお願いいたします。