概要 :このチュートリアルでは、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_expression
Code 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
の使用方法を学びました。 比較演算子と論理演算子を使用して、最終結果セットの行をフィルタリングする句。