SQLiteのWhere句2024 年の最新の入門チュートリアル。このコースでは 文法,例, について学習できます。
SQLiteののWHERE句は、条件の1つまたは複数のテーブルからデータを取得するために指定します。
あなたが与えられた条件を満たしている場合、特定の値を返すために、テーブルから、(真の)真です。 あなただけの必要なレコードを取得し、レコードをフィルタリングするWHERE句を使用することができます。
句はSELECT文でのみならず、使用されている場合、また、我々は以降の章で学ぶなる、というようにDELETE文、UPDATEで使用することができます。
SQLiteのでWHERE句を指定したSELECT文の基本構文は次のとおりです。
SELECT column1の、column2の、columnN TABLE_NAME FROM WHERE [条件]
また、使用することができます比較または論理演算子など>、<、=、LIKE、として指定された基準、 NOT、などを。 仮定COMPANYテーブルには、次のレコードを持っています。
IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 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文は、すべてのレコード65000.00ためのAGE 25より大きいか等しいより大きいか等しい賃金示しています。
AGE> = 25 AND SALARY> = 65000会社からのsqlite> SELECT *; IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 4マーク25リッチモンド65000.0 5デイビッド27テキサス85000.0
次のSELECT文は、すべてのレコード65000.00ためのAGE 25またはより大きいか等しいより大きいか等しい賃金示しています。
AGE> = 25 OR SALARY> = 65000会社からのsqlite> SELECT *; IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 1ポール32カリフォルニア20000.0 2アレン25テキサス15000.0 4マーク25リッチモンド65000.0 5デイビッド27テキサス85000.0
次のSELECT文は、年齢がすべてのレコードのNULLでないリストし、すべてのレコードがあった、それはAGEのレコードがないことを意味NULLに等しいです。
AGEがNULLでない会社からのsqlite> SELECT *; IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 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文リストの名前を次の文字は、「Kiが 'の後には制限はありません。
sqliteの> SELECT * FROM会社WHERE NAME LIKE 'のKi%'; IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 6金22サウスホール45000.0
すべてのレコードが始まった「氣」にSELECT文リストの名前を次の文字は、「Kiが 'の後には制限はありません。
sqliteの> SELECT * FROM会社WHERE NAMEグロブ」のKi * '; IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 6金22サウスホール45000.0
次のSELECT文は、25または27のすべてのレコードのAGE値を示しています。
AGE IN(25、27)COMPANY SELECT * FROMのsqlite>。 IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 2アレン25テキサス15000.0 4マーク25リッチモンド65000.0 5デイビッド27テキサス85000.0
次のSELECT文は、AGEはどちらも25も全てのレコードの27である値を示します。
AGE NOT IN(25、27)COMPANY SELECT * FROMのsqlite>。 IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 1ポール32カリフォルニア20000.0 3テディ23ノルウェー20000.0 6金22サウスホール45000.0 7ジェームス・24ヒューストン10000.0
次のSELECT文は、値のAGE 25と27の間のすべてのレコードを示しています。
sqliteの> SELECT * FROM COMPANY WHERE 25と27との間のAGE; IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 2アレン25テキサス15000.0 4マーク25リッチモンド65000.0 5デイビッド27テキサス85000.0
WHERE句は、演算子をEXISTSと組み合わせて使用されているの背後に次のSELECTステートメントは、65000を持つすべてのレコード用のSQLサブクエリは、サブクエリのfind SALARY> AGEフィールドを使用し、サブクエリが返すにおける外側のクエリのAGEの存在感を示していますすべてのレコードの結果:
会社からのsqlite> SELECT AGE (SALARY> 65000会社からAGEをSELECT)WHEREをEXISTS。 AGE ---------- 32 25 23 25 27 22 24
次のSELECT文は、サブAGEよりも大きいクエリの結果は、外部クエリのリストを返し、句と>演算子を併用するWHERE背後に、SQLのサブクエリは、サブクエリのfind SALARY> 65000を持つすべてのレコードのAGEフィールドを使用しています年齢のすべてのレコード:
会社からのsqlite> SELECT * WHERE AGE>(SALARY> 65000会社からAGEを選択します)。 IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 1ポール32カリフォルニア20000.0