SELECT / WHERE


書式

SELECT [DISTINCT] 列名, 列名,...
    FROM テーブル名
    [WHERE 検索条件]
    [GROUP BY 列名,列名,...]
    [HAVING 条件]
    [ORDER BY 列名,列名,... [ASC | DESC]]
    [LIMIT [開始位置, ] 件数]

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

テーブルの参照<SELECT>

テーブルからデータを参照するには、SELECT 文を使います。

SELECT に続けて参照したい列名、続けて FROM と参照するべき列の存在するテーブル名を記述します。

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

SELECT 列名 , 列名 , .... FROM テーブル名;
/* データの参照 */
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

 

/* データの参照 */
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 という引数を利用すれば、出力から重複した値を削除することができます。

次の例では、受注表から納品日を出力しますが、重複するものを削除して表示します。

SELECT DISTINCT 納品日 FROM 受注表 ;

条件付き参照<WHERE>

SELECT 文では WHERE 句を用いることで条件を付けてデータを参照することができます。

WHERE 句には述語を定義することができます。

述語とは、テーブルの行を TRUE, FALSE または UNKNOWN と評価する式のことです。

SELECT 文ではテーブルから述語が TRUE である行のみを抽出します。

演算子

演算子 意味
= 等しい
<= 右辺より大きい
>= 右辺以上
< 右辺より小さい
<= 右辺以下
<>(もしくは !=) 等しくない

 

/* データの参照 */
SELECT 顧客コード , 商品コード FROM 受注表
WHERE 顧客コード = '003' ;
/* 実行結果 */
顧客コード 商品コード
───── ─────
003        101
003        101
003        103

 

/* データの参照 */
SELECT 顧客コード , 商品コード , 受注個数 FROM 受注表
        WHERE 受注個数 > 20 ;
/* 実行結果 */
顧客コード 商品コード 受注個数
───── ───── ────
001        102        30
001        102        25

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


6 − = 4

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>