目次へ

5. データの参照

データが入力されたテーブルから必要なデータを参照するには、SQL 文を用いてデータベースに問い合わせなければなりません。このようにデータベースに問い合わせて指定した情報を生成させる命令をクエリ (QUERY) といいます。具体的には SELECT 文を用いてデータベースに欲しいデータを生成するように指示します。

SELECT 文の説明のために次の受注表を用意します。既にテーブルの定義とデータの入力は終っています。

受注表
受注番号
CHAR(5)
顧客コード
CHAR(4)
商品コード
CHAR(4)
受注個数
INTEGER
納品日
CHAR(8)
10001 001 102 30 20010401
10002 002 101 20 20010401
10003 001 103 10 20010402
10004 001 103 15 20010402
10005 003 101 15 20010403
10006 001 101 15 20010404
10007 002 102 20 20010404
10008 002 101 20 20010405
10009 001 102 20 20010406
10010 003 101 10 20010406
10011 001 102 25 20010407
10012 003 103 20 20010407

以後、説明文での受注表とは上表を指します。

5.1. SELECT によるデータの参照

テーブルからデータを参照するには、SELECT 文を用います。SELECT に続けて参照したい列名、続けて FROM と参照するべき列の存在するテーブル名を記述します。基本構文は次の通りです。

  SELECT 列名 , 列名 , .... FROM テーブル名;

受注表から、受注番号、顧客コード及び商品コードを参照する時は、次のような SQL を記述します。

-- sample.11-1 --
/* データの参照 */
  SELECT 受注番号 , 顧客コード , 商品コード FROM 受注表 ;

/* 実行結果 */

 受注番号 | 顧客コード | 商品コード
----------+------------+------------
 10001    | 001        | 102
 10002    | 002        | 101
 10003    | 001        | 103
 10004    | 001        | 103
 10005    | 003        | 101
 10006    | 001        | 101
 10007    | 002        | 102
 10008    | 002        | 101
 10009    | 001        | 102
 10010    | 003        | 101
 10011    | 001        | 102
 10012    | 003        | 103

全列を参照する場合は、列名を書く代わりに "*" と書くことも可能です。

-- sample.11-2 --
/* データの参照 */
  SELECT * FROM 受注表 ;

/* 実行結果 */

 受注番号 | 顧客コード | 商品コード | 受注個数 |  納品日
----------+------------+------------+----------+----------
 10001    | 001        | 102        |       30 | 20010401
 10002    | 002        | 101        |       20 | 20010401
 10003    | 001        | 103        |       10 | 20010402
 10004    | 001        | 103        |       15 | 20010402
 10005    | 003        | 101        |       15 | 20010403
 10006    | 001        | 101        |       15 | 20010404
 10007    | 002        | 102        |       20 | 20010404
 10008    | 002        | 101        |       20 | 20010405
 10009    | 001        | 102        |       20 | 20010406
 10010    | 003        | 101        |       10 | 20010406
 10011    | 001        | 102        |       25 | 20010407
 10012    | 003        | 103        |       20 | 20010407

DISTINCT という引数を利用すれば、出力から重複した値を削除することができます。次の例では、受注表から納品日を出力しますが、重複するものを削除して表示します。

-- sample.11-3 --
/* データの参照 */
  SELECT DISTINCT 納品日 FROM 受注表 ;

/* 実行結果 */

  納品日
----------
 20010401
 20010402
 20010403
 20010404
 20010405
 20010406
 20010407

関連記事

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ
Loading