SQLの基本的な知識V2-BETWEEN

SQL列

SQLデータベースの基本的な知識の要約

SQLデータベースの高度な知識の要約

BETWEENの役割

BETWEEN演算子は、2つの値の間のデータ範囲内の値を選択するために使用されます。


BETWEENの境界BETWEEN演算子は、指定された範囲内の値を選択します。値は、数値、テキスト、または日付にすることができます。

BETWEEN演算子は包括的です:開始値と終了値を含み、> = AND <=と同等です

BETWEENの構文

SELECT column_name(s)FROM table_name
WHERE column_name BETWEEN value1 AND value2;


以下は、サンプルデータベースの「Products」テーブルのデータです。

SQLの基本的な知識V2-BETWEEN

BETWEENの例
次のSQLステートメントは、価格が30〜60のすべての製品を選択します。

インスタンス

SELECT * FROM Products
WHERE 价格 BETWEEN 30 AND 60;

結果:

SQLの基本的な知識V2-BETWEEN

価格列のデータが30(両端を含む)から60(両端を含む)の間にあることがわかります。

NOT BETWEENの例
前の例の範囲外の製品を表示するには、NOTBETWEENを使用します。

インスタンス


SELECT * FROM Products
WHERE 价格 NOT BETWEEN 30 AND 60;
或
SELECT * FROM Products
WHERE NOT  价格 BETWEEN 30 AND 60;

ここでのNOTの位置は、列の前でも後でもかまいません。結果は同じで、個人的な書き方だけです。

結果:

SQLの基本的な知識V2-BETWEEN

価格の列には、30から60までの数字が除外されていることが表示されます。

INを使用したBETWEEN演算子の例
次のSQLステートメントは、価格が10〜60であるが、名前が米とバナナではないすべての製品を選択します。

インスタンス


SELECT * FROM Products
WHERE (价格 BETWEEN 10 AND 60)
AND 名称 NOT  IN ('大米','香蕉');

米とバナナはどちらも文字タイプであるため、一重引用符( '')を使用します

結果:

SQLの基本的な知識V2-BETWEEN

価格列は10から60の間であり、名前列のバナナ(45.00)列の価格も一貫していることがわかりますが、NOT INで除外したため、表示されません。

テキスト値を使用したBETWEEN演算子の例
次のSQLステートメントは、BETWEEN'bread 'および' banana 'という名前のすべての製品を選択します。

インスタンス


SELECT * FROM Products
WHERE 名称 BETWEEN '面包' AND '香蕉'

結果:

SQLの基本的な知識V2-BETWEEN

気づきましたか?

なぜAppleが登場したのですか?

これは、データベースをフィルタリングするときに、名前の拼音の最初の文字のASCIIに従ってデータベースがソートされるためです。パンの最初の文字はM、バナナの最初の文字はX、リンゴの最初の文字はそれらの間にPがあるので、含まれています。

では、なぜシドニーがないのですか?シドニーの最初の文字もXですか?

最初の文字が同じ場合、データベースは引き続き2番目の文字を比較します。2番目の文字も同じ場合、データベースはすべての比較が完了するまで順番に比較されます。ここでのバナナの完全なスペルはXIANGJIAOであり、シドニーの完全なスペルはXUELIです。明らかに、昇順の2番目の文字Uは文字Iよりも大きいです。文字Iの上限を超えているため、シドニーは除外されました。

テキスト値を持つ
NOTBETWEEN演算子の例次のSQLステートメントは、名前が「bread」と「banana」の間にないすべての製品を選択します。

インスタンス


SELECT * FROM Products
WHERE 名称 NOT BETWEEN '面包' AND '香蕉'

結果

SQLの基本的な知識V2-BETWEEN

パンとバナナの間の数を除いて、米とシドニーは残っています。


サンプルテーブル日付境界問題
注文以下は、「注文」テーブルから選択されたデータです。

SQLの基本的な知識V2-BETWEEN

日付値を持つBETWEEN演算子の例
次のSQLステートメントは、注文日が「2018-06-28」から「2018-09-28」の間にあるすべての注文を選択します。

インスタンス


SELECT * FROM Orders
WHERE  订单日期 BETWEEN '2018-06-28' AND '2018-09-28';

結果:

ANDの間では、処理日に予期しない結果が生じる可能性があることに注意してください

SQLのBetweenとは境界値を含み、betweenは境界値を含みませんが、betweenとを使用して日付を制限する場合は注意が必要です。日付がその日以降である場合、デフォルトは00です。 :00:00例:afterおよび日付は2018年9月28日で、これは2018-09-28 00:00:00に相当するため、2018-09-28 11:24:54.000のデータが見つかりません。この1日分のデータを2018-09-28で検索する場合は、値を取得するときに1日を追加する必要があります。つまり、「2018-06-28」と「2018-09-29」の間です。戻り値は6月28日(両端を含む)から9月の28日(両端を含む)のすべてのデータです。

おすすめ

転載: blog.51cto.com/15057820/2656349