ほとんどの場合、すべてのレコードを受信する必要はなく、特定の基準を満たすレコードのみを受信する必要があります。 SQL にサンプリング フィルタリング用の特別な演算子 WHERE が存在するのはこのためです。
たとえば、特定の製品にのみ関連するレコードをテーブルから選択してみましょう。 これを行うには、Product 列で値をフィルタリングする追加の選択パラメータを指定します。
Run SQLSELECT *
FROM Sumproduct
WHERE Product = 'Bikes'
ご覧のとおり、選択条件は一重引用符で囲まれています。これは、テキスト値をフィルタリングするときに必須です。 数値をフィルタリングする場合、引用符は必要ありません。
Run SQLSELECT *
FROM Sumproduct
WHERE Amount > 40000
ORDER BY Amount
この例では、売上収益が $40,000 を超えるレコードを選択し、さらに、すべてのレコードを [金額] フィールドで昇順に並べ替えました。
次の表に、SQL でサポートされる条件文を示します。
運転標識 | 価値 |
---|---|
= | と等しい |
<> | 等しくありません |
< | 少ない |
<= | 以下 |
> | もっと |
>= | 以上 |
BETWEEN | 2 つの値の間 |
IS NULL | 記録はありません |
演算子 BETWEEN は、特定の範囲内にあるデータを選択するために使用されます。次のクエリでは、[金額] フィールドの $1,000 から $2,000 までのすべての値が選択されます。
Run SQLSELECT *
FROM Sumproduct
WHERE Amount BETWEEN 1000 AND 2000
並べ替えの順序は、クエリ内のフィールドの順序によって異なります。つまり、この場合、データは最初に Amount 列によって並べ替えられ、次に City によって並べ替えられます。
SQL には、空のレコードを選択するための特別な演算子 (NULL と呼ばれます) があります。空のエントリとは、文字が入力されていないテーブル内のセルです。セルに 0 またはスペースが入力されている場合、フィールドは入力されたとみなされます。
SELECT *
FROM Sumproduct
WHERE Amount IS NULL
上の例では、NULL 演算子を示すために、Amount フィールドの 2 つの値を意図的に削除しました。
SQL 言語は 1 つの条件によるフィルタリングに限定されず、独自の目的に応じて、非常に複雑な構造を使用して、多くの条件でデータを同時に選択できます。 このため、SQL には WHERE 演算子の機能を拡張する追加の演算子があります。 このような演算子は、AND、OR、IN、NOT です。 これらの演算子の操作の例をいくつか示します。
Run SQLSELECT *
FROM Sumproduct
WHERE Amount > 40000 AND City = 'Toronto'
Run SQLSELECT *
FROM Sumproduct
WHERE Month = 'April' OR Month = 'March'
AND 演算子と OR 演算子を組み合わせてみましょう。 これを行うために、3 月に販売された自転車 (Bike) とスケート靴 (Skate) を選択します。
Run SQLSELECT *
FROM Sumproduct
WHERE Product = 'Bikes' OR Product = 'Skates' AND Month = 'March'
サンプルには多くの値が含まれていることがわかります (3 月に加えて、1 月、2 月、4 月も)。 理由は何ですか? そして、SQLにはコマンド実行の優先順位があるという事実。 つまり、AND 演算子は OR 演算子よりも優先度が高いため、3 月に販売されたスケート靴のレコードが最初に選択され、次に自転車に関連するすべてのレコードが選択されます。
したがって、正しいサンプリングを取得するには、コマンドの実行優先順位を変更する必要があります。 このために、数学と同様に括弧を使用します。 次に、括弧内の演算子が最初に処理され、次に残りの演算子がすべて処理されます。
Run SQLSELECT *
FROM Sumproduct
WHERE (Product = 'Bikes' OR Product = 'Skates') AND Month = 'March'
Run SQLSELECT *
FROM Sumproduct
WHERE ID IN (4, 12, 58, 67)
IN 演算子は OR と同じ機能を実行しますが、いくつかの利点があります。
Run SQLSELECT *
FROM Sumproduct
WHERE NOT City IN ('Toronto', 'Montreal')
キーワード NOT を使用すると、サンプルから不要な値を削除できます。 また、フィルタリングに関係する列の名前の後ではなく、前に配置されるのも特徴です。