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) |
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について説明します