MySQL必須-6フィルタデータ
14404 ワード
where句を使用して検索条件を指定します.検索条件はフィルタ条件とも呼ばれます.
WHERE句の位置は、ORDER BYとWHERE句を併用する場合は、ORDER BYをWHEREの後に置くべきです.
WHERE句のオペレータ
=等しい
<>等しくない
!= 等しくない
未満
<=以下
>より大きい
>=以上
BETWEEN指定された2つの値の間
単一引用符は文字列を定義するために使用され、値を列タイプと比較する場合は、数値列と比較するために引用符を定義する必要があります.
範囲の値をチェックするには、BETWEENオペレータを使用します.指定した開始値と終了値を含むローエンド値とハイエンド値が必要です.ANDキーを使用する必要があります.
価格が5~10のすべての製品を検索
Null値チェック
1つのカラムにはNULLを含む値は含まれません.
NULLには値がありません.フィールドに0、空の文字列、またはスペースのみが含まれているのとは異なります.
WHERE句IS NULL句を使用したNull値のチェック
OR
データベースは、一致するカラムにNULL値が含まれている場合は一致しない特定の値をフィルタします.NULL値を返すローにIS NULLを追加する必要がある場合は、NULL値を返します.
WHERE句を組み合わせて、MySQLは複数のWHERE句を与えることを許可して、これらの句は2つの方式で使用することができます:ANDとOR
仕入先1003を取得し、価格が10以下のすべての製品の名称と価格
ANDは、与えられたすべての条件を満たすことを示す.
ORは、少なくとも1つの条件(いずれかの条件)を満たすことを示す.
仕入先1002または仕入先1003のすべての製品の名称および価格を取得する.
ANDとORオペレータを組み合わせて複雑で高度なフィルタリングを行うことは可能ですが、重要なことを覚えておく必要があります.ANDの優先度はORより高く、ANDとORが同時に現れるとANDの条件を優先的に処理するので、混同を避けるために()を使用してマッチング順序を確保することをお勧めします.
ANDの優先度がORより大きいため、
仕入先1003の製品、価格が10以上のもの
製品名と製品価格
または
仕入先1002のすべての製品の製品名と製品価格
仕入先1002または仕入先1003、価格が10以上の製品の
製品名と製品価格
INオペレータ
WEERE句のもう一つの用法では、IN操作は条件範囲を指定するために使用され、範囲内の各条件は一致することができ、合法的な値はカンマで区切られている.
INオペレータ機能OR相当
INオペレータは一般にORオペレータよりも高速に実行され、INの最大の利点は、WHERE句をより動的に確立できるように、他のSELECT文を含めることができることである.
NOTオペレータ
WHERE句のNOTオペレータは、それ以降の条件を否定します.
仕入先1002と1003以外の製品名と製品価格を一致させる.
MySQLのみ
使用のサポート
NOT対IN,BETWEENとEXISTS句を逆にする
SELECT
prod_name,
prod_price
FROM
products
WHERE
prod_price = 2.5;
WHERE句の位置は、ORDER BYとWHERE句を併用する場合は、ORDER BYをWHEREの後に置くべきです.
WHERE句のオペレータ
=等しい
<>等しくない
!= 等しくない
未満
<=以下
>より大きい
>=以上
BETWEEN指定された2つの値の間
SELECT
prod_name,
prod_price
FROM
products
WHERE
prod_name = 'fuses';
単一引用符は文字列を定義するために使用され、値を列タイプと比較する場合は、数値列と比較するために引用符を定義する必要があります.
SELECT
prod_name,
prod_price
FROM
products
WHERE
prod_price < 10;
範囲の値をチェックするには、BETWEENオペレータを使用します.指定した開始値と終了値を含むローエンド値とハイエンド値が必要です.ANDキーを使用する必要があります.
SELECT
prod_name,
prod_price
FROM
products
WHERE
prod_price BETWEEN 5
AND 10;
価格が5~10のすべての製品を検索
Null値チェック
1つのカラムにはNULLを含む値は含まれません.
NULLには値がありません.フィールドに0、空の文字列、またはスペースのみが含まれているのとは異なります.
WHERE句IS NULL句を使用したNull値のチェック
SELECT
prod_name
FROM
products
WHERE
prod_price IS NULL;
OR
SELECT
cust_id
FROM
customers
WHERE
cust_email IS NULL;
データベースは、一致するカラムにNULL値が含まれている場合は一致しない特定の値をフィルタします.NULL値を返すローにIS NULLを追加する必要がある場合は、NULL値を返します.
SELECT
*
FROM
customers
WHERE
cust_email LIKE '%@%' // cust_email @
OR cust_email IS NULL // ,cust_email NULL
;
WHERE句を組み合わせて、MySQLは複数のWHERE句を与えることを許可して、これらの句は2つの方式で使用することができます:ANDとOR
SELECT
prod_id,
prod_price,
prod_name
FROM
products
WHERE
vend_id = 1003
AND prod_price <= 10;
仕入先1003を取得し、価格が10以下のすべての製品の名称と価格
ANDは、与えられたすべての条件を満たすことを示す.
ORは、少なくとも1つの条件(いずれかの条件)を満たすことを示す.
SELECT
prod_name,
prod_price
FROM
products
WHERE
vend_id = 1002
OR vend_id = 1003;
仕入先1002または仕入先1003のすべての製品の名称および価格を取得する.
ANDとORオペレータを組み合わせて複雑で高度なフィルタリングを行うことは可能ですが、重要なことを覚えておく必要があります.ANDの優先度はORより高く、ANDとORが同時に現れるとANDの条件を優先的に処理するので、混同を避けるために()を使用してマッチング順序を確保することをお勧めします.
SELECT
prod_name,
prod_price
FROM
products
WHERE
vend_id = 1002
OR vend_id = 1003
AND prod_price >= 10;
ANDの優先度がORより大きいため、
仕入先1003の製品、価格が10以上のもの
製品名と製品価格
または
仕入先1002のすべての製品の製品名と製品価格
SELECT
prod_name,
prod_price
FROM
products
WHERE
(vend_id = 1002 OR vend_id = 1003)
AND prod_price >= 10
仕入先1002または仕入先1003、価格が10以上の製品の
製品名と製品価格
INオペレータ
WEERE句のもう一つの用法では、IN操作は条件範囲を指定するために使用され、範囲内の各条件は一致することができ、合法的な値はカンマで区切られている.
SELECT
prod_name,
prod_price
FROM
products
WHERE
vend_id IN (1002, 1003)
ORDER BY
prod_name;
INオペレータ機能OR相当
INオペレータは一般にORオペレータよりも高速に実行され、INの最大の利点は、WHERE句をより動的に確立できるように、他のSELECT文を含めることができることである.
NOTオペレータ
WHERE句のNOTオペレータは、それ以降の条件を否定します.
SELECT
prod_name,
prod_price
FROM
products
WHERE
vend_id NOT IN (1002, 1003)
ORDER BY
prod_name;
仕入先1002と1003以外の製品名と製品価格を一致させる.
MySQLのみ
使用のサポート
NOT対IN,BETWEENとEXISTS句を逆にする