5. データの参照
SQL 5章 データの参照
- 5.1. SELECT によるデータの参照
- 5.2. 条件付き参照
- 1. 不等式を使った述語
- 2. ブール演算子を使った述語
- 5.3. 特殊演算子
- 1. IN 演算子
- 2. BETWEEN 演算子
- 3. LIKE 演算子
- 4. IS NULL 演算子
- 5.4. 集約関数
- 5.5. グループ化
- 1. GROUP BY 句
- 2. HAVING 句
- 5.6. 並べ替えと名前付け
データが入力されたテーブルから必要なデータを参照するには、SQL 文を用いてデータベースに問い合わせなければなりません。このようにデータベースに問い合わせて指定した情報を生成させる命令をクエリ (QUERY) といいます。具体的には SELECT 文を用いてデータベースに欲しいデータを生成するように指示します。
SELECT 文の説明のために次の受注表を用意します。既にテーブルの定義とデータの入力は終っています。
受注表
受注番号
CHAR(5) 顧客コード
CHAR(4) 商品コード
CHAR(4) 受注個数
INTEGER 納品日
CHAR(8)
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
関連記事
- [SQL] 2. SQL 6 : テーブルのデータを取り出すSQLを簡単に説明します
- [SQL] 5. データの参照 2 : 不等式で条件を付けてデータを操作するSQLについて説明します
- [SQL] 5. データの参照 3 : 複数の条件や否定の条件を付けてデータを操作するSQLについて説明します