ywork2020.com

Title

照会条件を高度に組み合わせる

目次 (INDEX)

論理演算子 とは

論理演算子とは、複数の条件式を組み合わせて、より複雑な条件式を作るための演算子です。

SQL では、SELECT 文を使ってデータベースにデータの問い合わせをするのですが、 その SELECT 文 に続き WHERE 句を使うことで、問い合わせ結果の条件を指定することができます。

問い合わせの条件には単純なものから、複雑なものまでありますが、この論理演算子を使うと、 複数の条件を組み合わせて複雑な条件を指定することができます。

データベースが条件付きの問い合わせに対してどの様にデータを返してくるかを、このページのサンプルとサンプルコードで確認してみて下さい。

目次に戻る

SQL で使われる論理演算子

演算子働き使い方意味
ANDかつ条件式1 AND 条件式2条件式1かつ条件式2を満たしている
ORまたは条件式1 OR 条件式2条件式1、または条件式2を満たしている
NOT~ではないNOT 条件式条件式の通りではない

目次に戻る

サンプル テーブルの構造

データ抽出用のサンプルテーブルが必要でしたので事前に作成しています。
ここではテーブル作成までのクエリを簡易的に書いておきます。

現在、データベースにはサンプルとして以下に示す構造の japan テーブルを作成しており、 そのテーブルに 47都道府県のデータを登録した状態になっています。

サンプルコード: テーブルの作成

サンプルテーブルを以下のクエリで作成しました。

CREATE TABLE japan(
	県番号 int(11),
	都道府県 varchar(10),
	県庁所在地 varchar(10),
	地方 varchar(10)
);
カラム1
(県番号)
カラム2
(都道府県)
カラム3
(県庁所在地)
カラム4
(地方)
データデータデータデータ
データデータデータデータ

目次に戻る

サンプルコードと実行結果

ここからは実際に稼働しているデータベースに接続してクエリを実行していきます。 下記に配置された各ボタンをクリックすると、ボタンに書かれているサンプルクエリを実行して結果を表示します。

サンプルコード: SQL (SELECT 文の基本的な使い方)

SELECT * FROM テーブル名;

これはテーブルデータを抽出するための基本構文です。
指定したテーブルのデータを全件、全フィールドで抽出します。 この単純なクエリはデータ量が少ない場合や開発段階では利用することが多いと思いますが、実際の運用では使いません。

実行:

サンプルコード: SQL (1つの条件で一致したレコードを抽出する)

SELECT * FROM テーブル名 WHERE カラム名 = '条件';
実行:

説明:
任意のカラムで条件に該当したレコードだけを抽出します。
抽出条件を指定するには WHERE 句を使います。
この場合 地方カラム が '関東' のレコードのみの抽出となります。

サンプルコード: SQL (2つの条件を両方とも満たしているレコードを抽出する)

SELECT * FROM テーブル名 WHERE カラム名 = '条件' AND カラム名 = '条件';
実行:

説明:
2つの条件を提示して、両方の条件を満たしているレコードを抽出します。
多重条件を指定するには AND を使用します。
WHERE 地方 = '関東' AND 県番号 >= 10  の部分で 2つの条件を提示しています。

サンプルコード: SQL (2つの条件のどちらかを満たしているレコードを抽出する)

SELECT * FROM テーブル名 WHERE カラム名 = '条件' OR カラム名 = '条件';
実行:

説明:
2つの条件を提示して、どちらかの条件を満たしているレコードを抽出します。
複数の条件を指定するには OR を使用します。
WHERE 県番号 >= 40 OR 地方 = '中部'  の部分で 2つの条件を提示しています。

目次に戻る

SQL の仕様上の注意点

※ SQL の予約句はアルファベットの大文字と小文字を区別しませんが、 任意で作成したデータベースやテーブル、カラムの名前などは区別されるので注意が必要です。

目次に戻る