English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

جملة WHERE SQLite

SQLite WHEREالجملة تستخدم لتحديد الشروط عند الحصول على بيانات من إحدى أو أكثر من الجداول.

إذا كانت الشروط المحددة صحيحة، فهي صحيحة، وسيتم العودة إلى القيم المحددة من الجدول. ستحتاج إلى استخدام WHERE لفرز السجلات واستخراج السجلات الضرورية فقط.

WHERE يمكن استخدامها ليس فقط في SELECT، ولكن أيضًا في UPDATE، DELETE وما إلى ذلك، وسيتم شرح ذلك في الفصول اللاحقة.

القواعد

هذه هي الجملة الأساسية لـ SELECT SQLite التي تحتوي على WHERE.

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

مثال على الإنترنت

يمكنك استخدامعناصر حسابية منطقية أو منطقية (مثلاً >، <، =، LIKE، NOT وما إلى ذلك) لتعريف الشروط. انظر إلى TABLE (الجدول) COMPANY التالية مع السجلات التالية-

ID                                       NAME                                       AGE                                       ADDRESS                                       SALARY
----------                               ----------                               ----------                               ----------                               ----------
1                                       بول                                       32                                       كاليفورنيا                               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 و SALARY (الراتب) أكبر أو يساوي 65000.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 أو جميع السجلات التي تحتوي على SALARY (الراتب) أكبر أو يساوي 65000.00.

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
ID                                       NAME                                       AGE                                       ADDRESS                                       SALARY
----------                               ----------                               ----------                               ----------                               ----------
1                                       بول                                       32                                       كاليفورنيا                               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.

sqlite> SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
ID                                       NAME                                       AGE                                       ADDRESS                                       SALARY
----------                               ----------                               ----------                               ----------                               ----------
1                                       بول                                       32                                       كاليفورنيا                               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'، بغض النظر عن أي سجلات أخرى.

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

في SELECT التالية، تم قائمة جميع السجلات التي تبدأ بـ NAME (الاسم) بـ '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                                       بول                                       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之间的所有记录。

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大于子查询返回结果中的AGE的所有记录。

sqlite> SELECT * FROM COMPANY 
   WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
ID                                       NAME                                       AGE                                       ADDRESS                                       SALARY
----------                               ----------                               ----------                               ----------                               ----------
1                                       بول                                       32                                       كاليفورنيا                               20000.0