SQLite Where句
5273 ワード
SQLite Where句
SQLiteのWHERE句は、1つまたは複数のテーブルからデータを取得する条件を指定するために使用されます.
与えられた条件、すなわち真(true)が満たされた場合、テーブルから特定の値が返されます.WHERE句を使用してレコードをフィルタリングし、必要なレコードのみを取得できます.
WHERE句はSELECT文だけでなくUPDATE文、DELETE文などでも使用できます.
構文
SQLiteのWHERE句付きSELECT文の基本文法は以下の通りである.
≪インスタンス|Instance|emdw≫
比較演算子または論理演算子を使用して、>、
次の例では、SQLite論理演算子の使用方法を示します.次のSELECT文は、AGEが25以上、給与が650000.00以上のすべてのレコードをリストします.
次のSELECT文は、AGEが25以上、または賃金が65000,000,000,000以上のすべてのレコードをリストします.
次のSELECT文は、AGEがNULLでないすべてのレコードをリストし、結果としてすべてのレコードを表示します.これは、AGEがNULLに等しいレコードが1つもないことを意味します.
次のSELECT文には、NAMEが「Ki」で始まるすべてのレコードがリストされています.「Ki」以降の文字は制限されません.
次のSELECT文には、NAMEが「Ki」で始まるすべてのレコードがリストされています.「Ki」以降の文字は制限されません.
次のSELECT文は、AGEの値が25または27のすべてのレコードをリストします.
次のSELECT文は、AGEの値が25でも27でもないすべてのレコードをリストしています.
次のSELECT文は、AGEの値が25~27のすべてのレコードをリストします.
次のSELECT文はSQLサブクエリを使用し、サブクエリはSALARY>65000のAGEフィールドを持つすべてのレコードを検索し、後のWHERE句はEXISTS演算子とともに使用し、サブクエリからのAGEがサブクエリから返された結果に存在するすべてのレコードをリストします.
次のSELECT文はSQLサブクエリを使用し、サブクエリはSALARY>65000のAGEフィールドを持つすべてのレコードを検索し、後のWHEREサブステートメントは>演算子とともに使用し、サブクエリが返す結果の年齢よりも外部クエリのAGEが大きいすべてのレコードをリストします.
SQLiteのWHERE句は、1つまたは複数のテーブルからデータを取得する条件を指定するために使用されます.
与えられた条件、すなわち真(true)が満たされた場合、テーブルから特定の値が返されます.WHERE句を使用してレコードをフィルタリングし、必要なレコードのみを取得できます.
WHERE句はSELECT文だけでなくUPDATE文、DELETE文などでも使用できます.
構文
SQLiteのWHERE句付きSELECT文の基本文法は以下の通りである.
SELECT column1, column2, columnN
FROM table_name
WHERE [condition]
≪インスタンス|Instance|emdw≫
比較演算子または論理演算子を使用して、>、
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
次の例では、SQLite論理演算子の使用方法を示します.次のSELECT文は、AGEが25以上、給与が650000.00以上のすべてのレコードをリストします.
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
次のSELECT文は、AGEが25以上、または賃金が65000,000,000,000以上のすべてのレコードをリストします.
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
次のSELECT文は、AGEがNULLでないすべてのレコードをリストし、結果としてすべてのレコードを表示します.これは、AGEがNULLに等しいレコードが1つもないことを意味します.
sqlite> SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 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 NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22 South-Hall 45000.0
次のSELECT文は、AGEの値が25または27のすべてのレコードをリストします.
sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
次のSELECT文は、AGEの値が25でも27でもないすべてのレコードをリストしています.
sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 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のすべてのレコードをリストします.
sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
次のSELECT文はSQLサブクエリを使用し、サブクエリはSALARY>65000のAGEフィールドを持つすべてのレコードを検索し、後のWHERE句はEXISTS演算子とともに使用し、サブクエリからのAGEがサブクエリから返された結果に存在するすべてのレコードをリストします.
sqlite> SELECT AGE FROM COMPANY
WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
AGE
----------
32
25
23
25
27
22
24
次のSELECT文はSQLサブクエリを使用し、サブクエリはSALARY>65000のAGEフィールドを持つすべてのレコードを検索し、後のWHEREサブステートメントは>演算子とともに使用し、サブクエリが返す結果の年齢よりも外部クエリのAGEが大きいすべてのレコードをリストします.
sqlite> SELECT * FROM COMPANY
WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0