Mysql必知必会Note-第6章&第7章データフィルタリング


第六章データのフィルタリング
WHERE句
WHERE句は検索条件(検索条件)を指定するために用いられ,WHERE句はFROM句の後に与えられる.
【例】
SELECT prod_name, prod_price
FROM products
WHERE prod_price = 2.5;

この文はproductsテーブルから2つのカラムを取得しますが、すべてのローは返されず、prod_のみが返されます.price=2.5の行.データはアプリケーション層でフィルタリングすることもできますが、クライアントがデータを処理する作業はアプリケーションの性能に大きく影響し、サーバがネットワークを通じて余分なデータを送信する必要があり、ネットワーク帯域幅を浪費します.ps:ORDER BY句の位置はWHERE句の後
WHERE句オペレータ
オペレータ
説明
=
に等しい
<>
等しくない
!=
等しくない
<
より小さい
<=
以下
>
より大きい
>=
以上
BETWEEN AND
指定した2つの値の間
WHERE句では、空の値をチェックできます.次のようになります.
//                ,       
SELECT prod_name
FROM products
WHERE prod_price IS NULL;

第七章データフィルタリング
AND,ORオペレータによるWHERE句の組合せ
論理オペレータANDとORによって組合せ条件フィルタリングが可能であり、ANDオペレータは所与の条件をすべて満たす行を検索し、ORオペレータはいずれかの条件に一致する行を検索することを表す.
【例】
//       1003         10        id   
SELECT prod_id, prod_price
FROM products
WHERE vend_id = 1003 AND prod_price <= 10;

//                     
SELECT prod_name, prod_price
FROM poductd
WHERE vend_id = 1002 OR vend_id = 1003;

けいさんじゅんじょ
ANDとORオペレータを組み合わせてフィルタリングするときは、オペレータの優先度の問題に注意してください.ANDは計算順序で優先度が高いので,カッコを用いてグループ化し,計算順序を明確にすることを推奨する.
INオペレータ
INオペレータは条件の範囲を指定するために使用され、範囲内の各条件が一致し、ORオペレータに相当します.INの正当な値はすべて括弧に含まれ、カンマで区切られています.
【例】
//      1002 1003       ,        
SELECT prod_name, prod_price
FROM products
WHERE vend_id IN (1002, 1003)
ORDER BY prod_name;

INオペレータの利点:
  • 長い合法的なリストを使用する場合、INオペレータの構文はより明確で直感的である.
  • 計算順序は管理しやすい.
  • INオペレータはORオペレータ実行リストより速い.
  • INの最大の利点は、WHERE句、例えば
    //   table_a    table_b  id     
    SELECT * 
    FROM table_a
    WHERE id IN (SELECT id FROM table_b);
    
  • を動的に確立できるように他のSELECT文を含むことである.
    NOTオペレータ
    NOTオペレータは、その後の条件を否定するために使用されます.NOTはIN,BETWEEN,EXISTS句に対して逆をとることができる.【例】
    //   1002,1003                
    SELECT prod_name, prod_price
    FROM products
    WHERE vend_id NOT IN (1002, 1003)
    ORDER BY vend_id;