好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQLite Where 实例讲解

SQLite的  WHERE  子句用于指定从一个表或多个表中获取数据的条件。

如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用 WHERE 子句来过滤记录,只获取需要的记录。

WHERE 子句不仅可用在 SELECT 语句中,它也可用在 UPDATE、DELETE 语句中,等等,这些我们将在随后的章节中学习到。

语法

SQLite 的带有 WHERE 子句的 SELECT 语句的基本语法如下:

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

实例

您还可以使用 比较或逻辑运算符 指定条件,比如 >、<、=、LIKE、NOT,等等。假设 COMPANY 表有以下记录:

 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  且 工资大于等于 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  或 工资大于等于 65000.00 的所有记录:

 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:

 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 

查看更多关于SQLite Where 实例讲解的详细内容...

  阅读:22次

上一篇

下一篇

第1节:SQLite Alter实例讲解    第2节:SQLite AND和OR 实例应用    第3节:SQLite drop table 删除表    第4节:SQLite Delete实例应用    第5节:SQLite Distinct 实例    第6节:SQLite Explain(解释)    第7节:SQLite Glob 语法与实例    第8节:SQLite Like 实例讲解    第9节:SQLite Insert into 插入数据    第10节:SQLite Group By 实例    第11节:SQLite Limit 应用    第12节:SQLite Indexed By    第13节:SQLite Joins实例    第14节:SQLite Group By Having 实例    第15节:SQLite 简介    第16节:SQLite 教程    第17节:SQLite Update 实例    第18节:SQLite Where 实例讲解    第19节:SQLite 表达式    第20节:SQLite 创建表create table    第21节:SQLite 如何安装    第22节:SQLite Select 查询语句    第23节:SQLite Order By 应用分析    第24节:SQLite 触发器实例详解    第25节:SQLite 别名    第26节:SQLite NULL 详解    第27节:SQLite Unions 实例    第28节:SQLite Pragma 讲解    第29节:SQLite 常用函数大全    第30节:SQLite Vacuum    第31节:SQLite 运算符大全    第32节:SQLite 数据库分离    第33节:SQLite 附加数据库    第34节:SQLite 创建数据库    第35节:SQLite 数据类型    第36节:SQLite 语法大全    第37节:SQLite 命令    第38节:SQLite 索引 Index 实例详解    第39节:SQLite 子查询实例讲解    第40节:SQLite 事务 Transaction实例介绍    第41节:SQLite 视图(View)实例详解    第42节:SQLite 类似Truncate Table语句    第43节:SQLite 约束实例详解    第44节:SQLite 自动递增    第45节:SQLite 防注入    第46节:SQLite 日期与时间