SQLの範囲内のデータの選択

WHERE句とBETWEEN条件の導入

構造化照会言語(SQL)は、データベース・ユーザーに、データベースから情報を抽出するためのカスタマイズされた照会を作成する機能を提供します。 以前の記事では、 SQL SELECTクエリを使用してデータベースから情報を抽出する方法について説明しました 。 その議論を拡張して、特定の条件に一致するデータを取得するために高度なクエリを実行する方法を探そう。

一般的に使用されているNorthwindデータベースに基づいた例を考えてみましょう。データベースはチュートリアルとしてデータベース製品と共に提供されることがよくあります。

以下は、データベースのProductテーブルの抜粋です。

製品表
製品番号 商品名 SupplierID QuantityPerUnit 単価 UnitsInStock
1 チャイ 1 10箱×20袋 18.00 39
2 チャン 1 24〜12オンスのボトル 19.00 17
3 アニシードシロップ 1 12 - 550 mlボトル 10.00 13
4 シェフアントンのケージン調味料 2 48 - 6オンスのジャー 22.00 53
5 シェフアントンのガンボミックス 2 36箱 21.35 0
6 おばあちゃんのボイセンベリースプレッド 3 12 - 8オンスのジャー 25.00 120
7 おじさんのオーガニック乾燥梨 3 12 - 1ポンドpkg。 30.00 15

単純境界条件

クエリーに適用される最初の制限は、単純な境界条件を伴います。 <、>、> =、<=などの標準演算子で構成された単純条件文を使用して、SELECTクエリのWHERE句でこれらを指定できます。


まず、データベース内の単価が20.00を超えるすべての製品のリストを抽出するための簡単なクエリを試してみましょう。

SELECT ProductName、UnitPriceから商品がどこにあるか> 20.00

これは、以下に示すように、4つの製品のリストを生成します。

ProductName単価------- --------シェフアントンのガンボミックス21.35シェフアントンのケージャン調味料22.00おばあちゃんのボイセンベリースプレッド25.00おじさんのボブのオーガニック乾燥した洋梨30.00

WHERE句を文字列値とともに使用することもできます。 これは基本的に文字を数値に置き換えます.Aは値1を表し、Zは値26を表します。たとえば、U、V、W、X、Y、Zで始まる名前のすべての商品を次のクエリで表示できます。

SELECT ProductName FROM products WHERE ProductName> = 'T'

結果は次のようになります。

ProductName -------おじさんのオーガニック乾燥梨

境界を使用して範囲を表現する

また、WHERE句を使用すると、複数の条件を使用して値に対して範囲条件を実装できます。 たとえば、上記のクエリを使用して15.00〜20.00の価格の製品に結果を限定する場合は、次のクエリを使用できます。

SELECT ProductName、UnitPriceから商品がどこにあるか> UnitPrice> 15.00、UnitPrice <20.00

これにより、以下の結果が得られます。

ProductName単価------- --------チャイ18.00チャン19.00

間に表現する範囲

SQLには、BETWEENのショートカット構文も用意されています。これにより、含める必要のある条件の数が減り、クエリが読みやすくなります。 たとえば、上記の2つのWHERE条件を使用する代わりに、次のような同じクエリを表すことができます。

SELECT ProductName、UnitPriceから商品単価が15.00と20.00の間

他の条件節と同様に、BETWEENも文字列値で動作します。 V、WまたはXで始まるすべての国のリストを作成したい場合、次のクエリを使用できます。

SELECT ProductName FROM productsどこのProductName "A"と "D"

結果は次のようになります。

ProductName ------- Aniseedシロップチャイチャンシェフアントンのガンボミックスシェフアントンのケージャンシーズニング

WHERE句はSQL言語の強力な部分であり、結果を指定された範囲内の値に制限できます。 ビジネスロジックを表現するのに非常によく使用され、すべてのデータベース専門家のツールキットの一部でなければなりません。

共通節をストアドプロシージャに組み込んでSQL知識なしでアクセスできるようにすると便利です。