トップDML選択(基本) ≫ レコードを検索する

レコードを検索する

ここではレコード検索の基本であるSELECT文とFROM句,そしてWHERE句を紹介します.

SELECTとFROM

SELECT文はテーブルからレコードを取得するための命令です. SELECT文には多くのオプションが用意されていますが,そのすべてをここで説明すると大変ヤヤコシイので,まずは最も単純な構文を説明します.SELECT文の基本的な構文は以下のようになります.

SELECT 列名1, 列名2, ...
FROM テーブル名

SELECT文で指定した列名のデータをFROM句で指定したテーブルから取得します.(射影を行います) 各列名は「,」で区切ります.すべての列名を対象としたい場合は以下のように列名に「*」を指定します.

SELECT * FROM テーブル名

WHERE

上記の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否定, ○○でない

SQL サンプル

例として以下のテーブル(従業員マスタ)を使用します.

従業員

従業員コード従業員名性別年齢
00001チャーリー・ブラウン男性19
00002ルシール・ヴァン・ぺルト女性20
00003ライナス・ヴァン・ぺルト男性21
00004シュローダー男性29
00005ペパーミント・パティ女性30
00006マーシー女性31

従業員名を取得する例 (射影)

従業員マスタから従業員名を取得します.

SQL

SELECT 従業員名 FROM 従業員

結果

従業員名
チャーリー・ブラウン
ルシール・ヴァン・ぺルト
ライナス・ヴァン・ぺルト
シュローダー
ペパーミント・パティ
マーシー

男性か20歳以下の女性を検索する例 (選択)

従業員マスタから男性か,もしくは20歳以下の女性の従業員を取得します.

SQL

SELECT * FROM 従業員
WHERE 性別 = '男性'
  OR (年齢 <= 20 AND 性別 = '女性')

結果

従業員コード従業員名性別年齢
00001チャーリー・ブラウン男性19
00002ルシール・ヴァン・ぺルト女性20
00003ライナス・ヴァン・ぺルト男性21
00004シュローダー男性29

注意.
サンプルで使用するテーブルは説明のため正規化を行っていなかったり,一般的でない列が含まれている場合があります.ご容赦ください.