SQLite クラシック チュ...ログイン
SQLite クラシック チュートリアル
著者:php.cn  更新時間:2022-04-13 17:05:02

SQLite の where 句


SQLite の WHERE 句は、1 つまたは複数のテーブルからデータを取得するための条件を指定するために使用されます。

指定された条件が満たされる場合、つまり true の場合、テーブルから特定の値が返されます。 WHERE 句を使用してレコードをフィルタリングし、必要なレコードのみを取得できます。

WHERE 句は SELECT ステートメントで使用されるだけでなく、UPDATE、DELETE ステートメントなどでも使用できます。これについては後続の章で学習します。

構文

WHERE 句を含む SQLite の SELECT ステートメントの基本構文は次のとおりです:

SELECT column1, column2, columnN 
FROM table_name
WHERE [condition]

比較演算子を使用して、>、<、=、などの条件を指定することもできます。好き、嫌いなど。 Company テーブルに次のレコードがあると仮定します:

ID 名前 年齢 住所 給与
----------------------------- -------------------------------------------------- --------- ------ ----------
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド65000.0
5 デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 ジェームス 24 ヒューストン 10000.0

次の例は、SQLite 論理演算子の使用法を示しています。次の SELECT ステートメントは、AGE が 25 以上で、salary が 65000.00 以上であるすべてのレコードをリストします。

ID 名前 年齢 住所 給与
---------- ---------- ---------- ---------- -- -------- -
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0


以下の SELECT ステートメントは、AGE が 25 以上であるか、
給与が 25 以上であるすべてのレコードをリストします。 65000.00:

sqlite>SELECT * FROM COMPANY WHERE 年齢 >= 25 または 給与 >= 65000;ID NAME ---------- ----------

1 Paul 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
4 マーク 25 リッチモンド 65000.0
5 デビッド 27 テキサス 85000.0

次の SELECT ステートメントは、AGE が NULL でないすべてのレコードをリストします。これは、AGE が NULL に等しいレコードがないことを意味します。年齢 住所 給与

-------------------------------------- -- --
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5 デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000。 0
7 ジェームス 24 ヒューストン 10000.0

次の SELECT ステートメントは、NAME が「Ki」で始まるすべてのレコードをリストします。「Ki」以降の文字は制限されません:

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- -------- --
6 Kim 22 South-Hall 45000.0

次の SELECT ステートメントは、NAME が「Ki」で始まるすべてのレコードをリストします。「Ki」の後の文字は制限されません:

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki *';
ID ---- ----------
6 Kim 22 South-Hall 45000.0
次の SELECT ステートメントは、AGE 値が 25 または 27 であるすべてのレコードをリストします。

sqlite> ;(25、27); 5 デビッド 27 テキサス 85000.0

次の SELECT ステートメントは、AGE 値が 25 でも 27 でもないすべてのレコードをリストします:

sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN (25, 27);
ID NAME AGE AD DRESS SALARY
--- -- ----- ---------- ---------- ---------- ----------
1 ポール 32 カリフォルニア20000.0
3 Teddy 23 Norway 20000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0

次の SELECT ステートメントは、AGE 値が 25 から 27 までのすべてのレコードをリストします。 ; 会社から * を選択してください25 歳から 27 歳までの年齢;

ID ----------
2 アレン 25 テキサス 15000.0
4 マーク 25 リッチモンド 65000.0
5 デビッド 27 Tエクサス 85000.0

次の SELECT ステートメントは、SQL サブクエリを使用します。サブクエリは、SALARY > 65000 の AGE フィールドを持つすべてのレコードを検索します。次の WHERE 句を EXISTS 演算子とともに使用して、サブクエリに存在する外側のクエリの AGE をリストします。返された結果:

SQLITE & GT; 会社
が存在する場所から年齢を選択 (給与 & gt; 65000 の会社から年齢を選択)
32
25

23
25
27
22
24
次の SELECT ステートメントは SQL サブクエリを使用し、SALARY > 65000 の AGE フィールドを持つすべてのレコードを検索します。次の WHERE 句は > 演算子とともに使用されます。外側のクエリがサブクエリによって返された結果の年齢より大きい場合:

sqlite> SELECT * FROM COMPANY
名前 年齢 住所 給料
------------------ ------------------------ ----
1 Paul 32 カリフォルニア 20000.0