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

SQLite IN

    概要 :このチュートリアルでは、SQLite INの使用方法を学習します 値が値のリストまたはサブクエリの結果のいずれかの値と一致するかどうかを判断する演算子。

    SQLite INの紹介 オペレーター

    SQLite IN 演算子は、値がリストまたはサブクエリのいずれかの値と一致するかどうかを判別します。 INの構文 演算子は次のとおりです:

    expression [NOT] IN (value_list|subquery);Code language: SQL (Structured Query Language) (sql)

    expression 任意の有効な式またはテーブルの列にすることができます。

    値のリストは、固定値リスト、またはサブクエリによって返される単一の列の結果セットです。リストに返される式と値のタイプは同じである必要があります。

    IN 演算子は、式が値のリスト内のいずれかの値と一致するかどうかに応じて、trueまたはfalseを返します。値のリストを無効にするには、NOT INを使用します オペレーター。

    SQLite IN オペレーターの例

    Tracksを使用します デモンストレーション用のサンプルデータベースのテーブル。

    次のステートメントはINを使用しています メディアタイプIDが1または2のトラックをクエリする演算子。

    SELECT
    	TrackId,
    	Name,
    	Mediatypeid
    FROM
    	Tracks
    WHERE
    	MediaTypeId IN (1, 2)
    ORDER BY
    	Name ASC;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    このクエリはORを使用します INの代わりに演算子 上記のクエリと同じ結果セットを返す演算子:

    SELECT
    	TrackId,
    	Name,
    	MediaTypeId
    FROM
    	Tracks
    WHERE
    	MediaTypeId = 1 OR MediaTypeId = 2
    ORDER BY
    	Name ASC;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    クエリからわかるように、INを使用します 演算子ははるかに短いです。

    多くのORを使用するクエリがある場合 演算子の場合、INの使用を検討できます 代わりに演算子を使用して、クエリを読みやすくします。

    SQLite IN サブクエリの例を持つ演算子

    次のクエリは、アーティストID12のアルバムIDのリストを返します。

    SELECT albumid
    FROM albums
    WHERE artistid = 12;Code language: SQL (Structured Query Language) (sql)

    試してみてください

    アーティストID12に属するトラックを取得するには、INを組み合わせることができます。 次のようなサブクエリを持つ演算子:

    SELECT
    	TrackId, 
    	Name, 
    	AlbumId
    FROM
    	Tracks
    WHERE
    	AlbumId IN (
    		SELECT
    			AlbumId
    		FROM
    			Albums
    		WHERE
    			ArtistId = 12
    	);Code language: SQL (Structured Query Language) (sql)

    試してみてください

    この例では:

    • 最初に、サブクエリはアーティストID12に属するアルバムIDのリストを返します。
    • 次に、外部クエリは、アルバムIDがサブクエリによって返されたアルバムIDリストと一致するすべてのトラックを返します。

    SQLiteは例に含まれていません

    次のステートメントは、ジャンルIDが(1,2,3)のリストにないトラックのリストを返します。

    SELECT
    	trackid,
    	name,
    	genreid
    FROM
    	tracks
    WHERE
    	genreid NOT IN (1, 2,3);Code language: SQL (Structured Query Language) (sql)

    試してみてください

    このチュートリアルでは、SQLite INの使用方法を学習しました。 値を値のリストまたはサブクエリと照合する演算子。


    1. クラスタ化されたインデックスはどの列に配置する必要がありますか?

    2. JDBCドライバーとの統合セキュリティを使用してSQLServerに接続するにはどうすればよいですか?

    3. Neo4jクエリ言語-Cypher

    4. パラメータの配列を受け入れるOracleでストアドプロシージャを作成する方法