WHERE (SQL)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > WHERE (SQL)の意味・解説 

WHERE (SQL)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)

ナビゲーションに移動 検索に移動

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   mytable
WHERE  mynumber > 100

次の DELETE文は、mytable テーブルの mynumber に値が入っていないか、100が入っているものを削除する。

DELETE
FROM   mytable
WHERE  mynumber IS NULL OR mycol = 100

条件文

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

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

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

DELETE
FROM   mytable
WHERE  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演算子は索引によるパフォーマンスを無視することを認識する必要がある。可能ならば '=' や '<>' などの演算子を使用した方がパフォーマンスがいい。また、データベースソフトによって文字の扱い(大文字と小文字など)が違うことにも注意しないといけない。

参照

  1. ^ SQL WHERE Clause – Things beginners must know”. 2017年10月9日閲覧。
  2. ^ Microsoft TechnetRetrieved 21 November 2013.

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「WHERE (SQL)」の関連用語

WHERE (SQL)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



WHERE (SQL)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのWHERE (SQL) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS