概要 :このチュートリアルでは、SQLiteのWHEREの使用方法を学習します クエリによって返される行の検索条件を指定する句。
SQLiteの概要WHERE 条項
WHERE 句は、SELECTのオプションの句です。 声明。 FROMの後に表示されます 次のステートメントとしての句:
SELECT
column_list
FROM
table
WHERE
search_condition;Code language: SQL (Structured Query Language) (sql)
この例では、WHEREを追加します SELECTの句 クエリによって返された行をフィルタリングするステートメント。 SELECTを評価する場合 WHEREを含むステートメント 句、SQLiteは次の手順を使用します:
- まず、
FROMのテーブルを確認します 条項。 - 次に、
WHEREの条件を評価します これらの条件を満たす行を取得する句。 - 3番目に、前の手順の行と
SELECTの列に基づいて最終結果セットを作成します。 条項。
WHEREの検索条件 次の形式になります:
left_expression COMPARISON_OPERATOR right_expressionCode language: SQL (Structured Query Language) (sql) たとえば、次のように検索条件を作成できます。
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;Code language: SQL (Structured Query Language) (sql)
SELECTの他に ステートメントでは、WHEREを使用できます UPDATEの句 およびDELETE ステートメント。
SQLite比較演算子
比較演算子は、2つの式が同じかどうかをテストします。次の表は、式の作成に使用できる比較演算子を示しています。
| オペレーター | 意味 |
|---|---|
| = | 等しい |
| <>または!= | 等しくない |
| < | 未満 |
| > | より大きい |
| <= | 以下 |
| > = | 以上 |
SQLite論理演算子
論理演算子を使用すると、いくつかの式の真偽をテストできます。論理演算子は、1、0、またはNULL値を返します。
SQLiteはブールデータ型を提供しないため、1はTRUEを意味し、0はFALSEを意味することに注意してください。
次の表は、SQLite論理演算子を示しています。
| オペレーター | 意味 |
|---|---|
| すべて | すべての式が1の場合、1を返します。 |
| および | は、両方の式が1の場合は1を返し、一方の式が0の場合は0を返します。 |
| 任意 | 一連の比較のいずれかが1の場合、1を返します。 |
| BETWEEN | 値が範囲内にある場合は1を返します。 |
| 存在 | サブクエリに行が含まれている場合は1を返します。 |
| IN | 値が値のリストにある場合は1を返します。 |
| LIKE | 値がパターンに一致する場合は1を返します |
| しない | NOT EXISTS、NOT IN、NOTBETWEENなどの他の演算子の値を逆にします。 |
| または | いずれかの式が1の場合、trueを返します |
SQLite WHERE 条項の例
tracksを使用します WHEREの使用方法を示すサンプルデータベースの表 条項。
等式演算子(= )は最も一般的に使用される演算子です。たとえば、次のクエリはWHEREを使用します アルバムID1:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;Code language: SQL (Structured Query Language) (sql) 試してみてください
SQLiteはAlbumIdに保存されている値を比較します リテラル値が1の列 それらが等しいかどうかをテストします。条件を満たす行のみが返されます。
2つの値を比較するときは、それらが同じデータ型であることを確認する必要があります。数字と数字、文字列と文字列などを比較する必要があります。
文字列と数値など、さまざまなデータ型の値を比較する場合、SQLiteは暗黙的なデータ型変換を実行する必要がありますが、通常、これは避けてください。
論理演算子を使用して式を結合します。たとえば、長さが200,000ミリ秒を超えるアルバム1のトラックを取得するには、次のステートメントを使用します。
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;Code language: SQL (Structured Query Language) (sql) 試してみてください
ステートメントは2つの式を使用しましたalbumid = 1 およびmilliseconds > 250000 。 ANDを使用します これらの式を組み合わせるための論理演算子。
SQLite WHERE LIKEを含む句 演算子の例
検索したいデータを正確に覚えていない場合があります。この場合、LIKEを使用して不正確な検索を実行します オペレーター。
たとえば、Smithが作成したトラックを見つけるには、LIKEを使用します。 次のように演算子:
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;Code language: SQL (Structured Query Language) (sql) 試してみてください
R.A.が作曲したトラックを入手できます。スミス-ディーゼル、エイドリアンスミスなど
SQLite WHERE INを含む句 演算子の例
IN 演算子を使用すると、値がコンマ区切りの値のリストに含まれているかどうかを確認できます。たとえば、メディアタイプIDが2または3のトラックを検索するには、INを使用します。 次のステートメントに示す演算子:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);Code language: SQL (Structured Query Language) (sql) 試してみてください
このチュートリアルでは、SQLiteのWHEREの使用方法を学びました。 比較演算子と論理演算子を使用して、最終結果セットの行をフィルタリングする句。