SQLite - WHERE子句

SQLite WHERE子句用于指定一个条件同时抓取数据从一个表或多个表。    

如果给定的条件满意,意味着true,然后从表中返回特定值。你会使用WHERE子句来筛选记录,只获取必要的记录。    

WHERE子句不仅用于SELECT语句,但它也用于更新、删除语句,等等,我们将在后续章节的研究。

语句

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

SELECT column1, column2, columnN

FROM table_name

WHERE [condition]

例子

您可以指定一个条件使用比较或逻辑运算符>、<、=,,等。考虑公司表有以下记录:

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语句列表下的所有记录,年龄大于或等于25和工资是大于且等于65000.00:

sqlite> SELECT * FROM COMPANY WHERE AGE >=25 AND SALARY >=65000;

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

4Mark25Rich-Mond65000.0

5David27Texas85000.0

下列SELECT语句列表下的所有记录,年龄大于或等于25或工资是大于或等于65000.00:

sqlite> SELECT * FROM COMPANY WHERE AGE >=25 OR SALARY >=65000;

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

1Paul32California20000.0

2Allen25Texas15000.0

4Mark25Rich-Mond65000.0

5David27Texas85000.0

下列SELECT语句列表下的所有记录,年龄并不是空这意味着所有的记录,因为没有记录的年龄等于零:

sqlite> SELECT * FROM COMPANY WHERE AGE IS NOT NULL;

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

1Paul32California20000.0

2Allen25Texas15000.0

3Teddy23Norway20000.0

4Mark25Rich-Mond65000.0

5David27Texas85000.0

6Kim22South-Hall45000.0

7James24Houston10000.0

下列SELECT语句列表下的所有记录名称始于"ki","ki"后是什么并不重要。

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

6Kim22South-Hall45000.0

下列SELECT语句列表下的所有记录名称始于"ki","ki"后是什么并不重要。

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

6Kim22South-Hall45000.0

下列SELECT语句列表下的所有记录年龄值为25或27:

sqlite> SELECT * FROM COMPANY WHERE AGE IN (25,27);

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

2Allen25Texas15000.0

4Mark25Rich-Mond65000.0

5David27Texas85000.0

下列SELECT语句列表下的所有记录的年龄值不是25和27:

sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN (25,27);

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

1Paul32California20000.0

3Teddy23Norway20000.0

6Kim22South-Hall45000.0

7James24Houston10000.0

下列SELECT语句列表下的所有记录,年龄25 - 27之间:

sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

2Allen25Texas15000.0

4Mark25Rich-Mond65000.0

5David27Texas85000.0

SELECT语句利用SQL查询,子查询后发现所有记录年龄字段有工资> 65000,后来使用where子句以及存在运营商列表下的所有记录,年龄从外部查询存在于子查询返回的结果:

sqlite> SELECT AGE FROM COMPANY

WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY >65000);

AGE

----------

32

25

23

25

27

22

24

SELECT语句利用SQL查询,子查询后发现所有记录年龄字段有工资> 65000,后来一起使用where子句>操作符列表下来年龄以外的所有记录查询年龄大于子查询返回的结果:

sqlite> SELECT * FROM COMPANY

WHERE AGE >(SELECT AGE FROM COMPANY WHERE SALARY >65000);

ID NAME AGE ADDRESS SALARY

--------------------------------------------------

1Paul32California20000.0

SQLite - WHERE子句的更多相关文章

  1. SQLite Where 子句(http://www.w3cschool.cc/sqlite/sqlite-where-clause.html)

    SQLite Where 子句 SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件. 如果满足给定的条件,即为真(true)时,则从表中返回特定的值.您可以使用 WHERE 子句 ...

  2. SQLite – GLOB子句

    SQLite – GLOB子句 .与LIKE不同,GLOB是大小写敏感的,它遵循语法的UNIX指定以下通配符. The asterisk sign (*) The question mark (?) ...

  3. SQLite – LIMIT子句

    SQLite - LIMIT子句 SQLite LIMIT子句是用来限制SELECT语句返回的数据量. 语法: SELECT语句.LIMIT子句的基本语法如下: SELECT column1, col ...

  4. SQLite – HAVING 子句

    SQLite – HAVING子句 HAVING使您能够指定过滤条件哪一组结果出现在最终的结果. WHERE子句的地方条件选定的列, 在有HAVING 子句的地方 就有GROUP BY子句包含的条件组 ...

  5. SQLite – ORDER 子句

    SQLite - ORDER BY子句 The SQLite ORDER BY子句用于数据按升序或降序排序,基于一个或多个列. 语法: ORDER BY子句的基本语法如下: SELECT column ...

  6. SQLite的基本使用

    SQLite 创建表 SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表.创建基本表,涉及到命名表.定义列及每一列的数据类型. 语法 CREATE TABLE 语句的基 ...

  7. 学习SQLite之路(三)

    20160616更新 参考: http://www.runoob.com/sqlite/sqlite-tutorial.html 1. SQLite  PRAGMA:可以用在 SQLite 环境内控制 ...

  8. 学习SQLite之路(二)

    下面就是真正关于数据库的一些知识了: 20160614更新 参考: http://www.runoob.com/sqlite/sqlite-tutorial.html 1. SQLite创建表: 基本 ...

  9. Android-adb 常用命令 和 sqlite

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

随机推荐

  1. UVa 1001 Say Cheese (Dijkstra)

    题意:给定一个三维空间的一些球和起始位置和结束位置,问你最短要花的时间是多少. 析:建图,所有的位置都建立图,边权就是距离,最小求一次最短路即可. 代码如下: #pragma comment(link ...

  2. UVa 12105 Bigger is Better (DP)

    题意:用不超过 n 根火柴,组成一个尽可能大的数. 析:很明显的一个DP题,首先不难想到这个dp[i][j] 表示前 i 根火柴,所能拼出的取模 m 为 j 的数,状态转移方程也很好写, dp[i][ ...

  3. 剑指offer面试题:输入某二叉树的前序遍历和中序遍历,输出后序遍历

    二叉树的先序,中序,后序如何遍历,不在此多说了.直接看题目描述吧(题目摘自九度oj剑指offer面试题6): 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结 ...

  4. C#基础:通过委托给任何对象数组进行排序

    在日常编写程序的时候,我们需要对一些对象进行排序,比如对int数组进行排序,自定义类数组进行排序,首先我们先讨论对数组进行排序,我们应该对冒泡排序比较熟悉,下面是数组用冒泡排序的方法 for (int ...

  5. STL——pair

    功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问. #include <bits/stdc++ ...

  6. 读取MySQL数据表字段信息

    TP5句式 $fieldinfo = Db::query('SHOW FULL COLUMNS FROM '.$table);//查出数据表所有字段信息Field 字段Comment 字段注释

  7. CodeForces691C 【模拟】

    这一题的模拟只要注意前后导零就好了... 感受就是... 如果是比赛中模拟题打好..要盯着注意点,测试不同的情况下的注意点..起码要针对性测试10分钟.. 还是蛮简单的,但是自己打烦了,应该,队友代码 ...

  8. hoj2662 Pieces Assignment

    Pieces Assignment My Tags   (Edit)   Source : zhouguyue   Time limit : 1 sec   Memory limit : 64 M S ...

  9. 渗透测试之无文件渗透简单使用-windows

    无文件渗透测试工作原理:无文件恶意程序最初是由卡巴斯基在2014年发现的,一直不算是什么主流的攻击方式,直到此次事件的发生.说起来无文件恶意程序并不会为了执行而将文件或文件夹复制到硬盘上,反而是将pa ...

  10. angularJs自定义指令(directive)实现滑块滑动

    最近老大让我一个效果实现在页面某一部分内滑块随着滚动条上下滑动,说明一下我们项目使用技术angularJs.大家都知道,使用jquery很好实现. 那么angular如何实现呢,我用的是自定义指令(d ...