ここではレコード検索の基本であるSELECT文とFROM句,そしてWHERE句を紹介します.
SELECT文はテーブルからレコードを取得するための命令です. SELECT文には多くのオプションが用意されていますが,そのすべてをここで説明すると大変ヤヤコシイので,まずは最も単純な構文を説明します.SELECT文の基本的な構文は以下のようになります.
SELECT 列名1, 列名2, ...
FROM テーブル名
SELECT文で指定した列名のデータをFROM句で指定したテーブルから取得します.(射影を行います) 各列名は「,」で区切ります.すべての列名を対象としたい場合は以下のように列名に「*」を指定します.
SELECT * FROM テーブル名
上記のSQLはすべてのレコードを対象にデータを取得します. WHERE句を使用して条件を指定することで,取得したいデータのみを取得することができます.
SELECT 列名1 ,列名2, ...
FROM テーブル名
WHERE 条件式
条件式は列名と演算子,関数などを使用して表現します.以下の例をご覧下さい.従業員テーブルから年齢が20歳以上の従業員名を取得しています.
SELECT 従業員名
FROM 従業員
WHERE 年齢 >= 20
WHERE句で使用できる比較演算子には以下のようなものがあります.
WHERE句で使用できる比較演算子
比較演算子 | 説明 |
---|---|
= | 等しい |
< | 小さい |
> | 大きい |
<= | 以下 |
>= | 以上 |
<>, != | 等しくない |
論理演算子を使用することでWHERE句の中で複数の条件を指定することができます. 以下の例をご覧下さい.従業員テーブルから年齢が20歳以上かつ性別が男性の従業員名を取得しています.
SELECT 従業員名
FROM 従業員
WHERE 年齢 >= 20
AND 性別 = '男性'
WHERE句で使用できる論理演算子には以下のようなものがあります.
WHERE句で使用できる論理演算子
論理演算子 | 説明 |
---|---|
AND | 論理積, ○○かつ○○ |
OR | 論理和, ○○または○○ |
NOT | 否定, ○○でない |
例として以下のテーブル(従業員マスタ)を使用します.
従業員
従業員コード | 従業員名 | 性別 | 年齢 |
---|---|---|---|
00001 | チャーリー・ブラウン | 男性 | 19 |
00002 | ルシール・ヴァン・ぺルト | 女性 | 20 |
00003 | ライナス・ヴァン・ぺルト | 男性 | 21 |
00004 | シュローダー | 男性 | 29 |
00005 | ペパーミント・パティ | 女性 | 30 |
00006 | マーシー | 女性 | 31 |
従業員マスタから従業員名を取得します.
SQL
SELECT 従業員名 FROM 従業員
結果
従業員名 |
---|
チャーリー・ブラウン |
ルシール・ヴァン・ぺルト |
ライナス・ヴァン・ぺルト |
シュローダー |
ペパーミント・パティ |
マーシー |
従業員マスタから男性か,もしくは20歳以下の女性の従業員を取得します.
SQL
SELECT * FROM 従業員
WHERE 性別 = '男性'
OR (年齢 <= 20 AND 性別 = '女性')
結果
従業員コード | 従業員名 | 性別 | 年齢 |
---|---|---|---|
00001 | チャーリー・ブラウン | 男性 | 19 |
00002 | ルシール・ヴァン・ぺルト | 女性 | 20 |
00003 | ライナス・ヴァン・ぺルト | 男性 | 21 |
00004 | シュローダー | 男性 | 29 |
注意.
サンプルで使用するテーブルは説明のため正規化を行っていなかったり,一般的でない列が含まれている場合があります.ご容赦ください.