sql >> データベース >  >> RDS >> SQLite

SQLite Where

    概要 :このチュートリアルでは、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は次の手順を使用します:

    1. まず、FROMのテーブルを確認します 条項。
    2. 次に、WHEREの条件を評価します これらの条件を満たす行を取得する句。
    3. 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 > 250000ANDを使用します これらの式を組み合わせるための論理演算子。


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


    1. Oracle正規表現。危険な範囲

    2. データを失うことなくPostgreSQLをバージョン9.6からバージョン10.1にアップグレードするにはどうすればよいですか?

    3. DjangoORMでPostgreSQL配列フィールドをマッピングする方法

    4. MariaDBサーバー10.3での自動データバージョン管理