WHERE_(SQL)
[Wikipedia|▼Menu]

WHERE句は、SQLにおける予約語の1つである。データ操作言語 (DML) と共に使用し、DMLが操作する行を限定する役割を持つ。

WHERE句の指定は必須ではないが、データを操作する命令と一緒に使用することで対象を限定することができる。

具体的には、SELECT, INSERT, UPDATE, DELETE の各命令で操作対象の行を限定することができる[1]
文法

WHERE はデータ操作言語 (DML) と共に使用される。一般的な構文は以下のようになる。SQL-DML命令FROM テーブル名 WHERE 条件

WHERE の後に記述された条件が真のとき DML の操作(抽出・削除など)の対象となる。条件が偽または不明 (NULL) のとき、操作の対象とならない。

次のクエリーは、mytable テーブルの mynumber が100より大きいものを抽出する。SELECT *FROM mytableWHERE mynumber > 100

次の DELETE文は、mytable テーブルの mynumber に値が入っていないか、100が入っているものを削除する。DELETEFROM mytableWHERE mynumber IS NULL OR mycol = 100
条件文

単純な条件文は、演算子の =, <>, >, >=, <, <=, IN, BETWEEN, LIKE, IS NULL or IS NOT NULL を使用する。

条件式は必要に応じてかっこで囲むことができる。また、複数の条件文を AND や OR で接続することができる。この優先順位を明示するためにもかっこは有用である。かっこがない場合、AND 演算子が OR 演算子に優先される。

以下の例は mytable テーブルにある「mynumber が100より大きい」かつ「『アイテム』が『ハンマー』」であるデータを削除する。DELETEFROM mytableWHERE mynumber > 100 AND アイテム = 'ハンマー'
IN

IN は、直後に記述したデータ群の中に一致する値があるかどうかを判断する。SELECT ename WHERE ename IN ('値1', '値2', ...)

この文の場合、ename がかっこの中のいずれかと一致すれば真となる。例えば値が2つの場合は以下の文と同等になる。SELECT ename WHERE ename='値1' OR ename='値2'

後者の書き方の場合複数の列を判定に含めることができるが IN では単一の項目しか対象にできない。一方、候補の件数多い場合は IN を使用した方が簡潔に書くことができる。
BETWEEN

BETWEEN は、指定された範囲内に値があるかを判断する。SELECT ename WHERE ename BETWEEN '値1' AND '値2'

以下の例は収入が「500000以上1000000以下」のデータを抽出する。SELECT 収入 from emp WHERE 収入 BETWEEN 500000 AND 1000000
LIKE

LIKE は条件に合う文字列を検索する。
末尾の
ワイルドカード
下の例は 'S' で始まるすべての文字列が一致する。SELECT ename FROM emp WHERE ename LIKE 'S%';
冒頭のワイルドカード
下の例は 'S' で終わるすべての文字列が一致する。SELECT ename FROM emp WHERE ename LIKE '%S';
複数のワイルドカード
下の例は 'S' がどこかに含まれるすべての文字列が一致する。SELECT ename FROM emp WHERE ename LIKE '%S%';
1文字分のワイルドカード
下の例は 'A' と 'E' の間に1文字だけ文字が存在する文字列に一致する。SELECT ename FROM emp WHERE ename LIKE '%A_E%';
文字クラス[2]
下の例は最初の文字がアルファベットか数字か '_' である文字列に一致する。SELECT ename FROM emp WHERE ename LIKE '[a-zA-Z0-9_]%';

SQL を使用する場合、LIKE演算子は索引によるパフォーマンスを無視することを認識する必要がある。可能ならば '=' や '<>' などの演算子を使用した方がパフォーマンスがいい。また、データベースソフトによって文字の扱い(大文字と小文字など)が違うことにも注意しないといけない。
参照^ “ ⇒SQL WHERE Clause ? Things beginners must know”. 2017年10月9日閲覧。
^ Microsoft TechnetRetrieved 21 November 2013.

外部リンク

PSOUG Home Puget Sound Oracle Users Group WHERE を使用した SELECT 文の例が提示されている。










データベース管理システム


データモデル

関係モデル

データベース設計

正規化

参照整合性

関係代数

関係論理

データベース管理システム

関係データベース管理システム

オブジェクト関係データベース

分散データベース

トランザクション処理

概念
データベース

ACID

CRUD

3値論理NULL

候補キー

外部キー

主キー

スーパーキー

代理キー

オブジェクト

関係 ()

ビュー

トランザクション

ログ

トリガ

索引

ストアドプロシージャ

カーソル

分割

SQL

SELECT

INSERT

UPDATE

MERGE

DELETE

JOIN

CREATE

DROP

COMMIT

ROLLBACK

TRUNCATE

ALTER

WHERE

SAVEPOINT

構成要素

並行性制御

データ辞書

JDBC

ODBC

データベース言語

問い合わせ言語

クエリ最適化

クエリ実行計画


データベース製品
関係データベース管理システムの比較データベース接続クライアント カテゴリ


記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:10 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef