SQL WHERE 子句

WHERE 子句用于过滤记录。


SQL WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录。

SQL WHERE 语法

SELECT column1, column2, ...FROM table_name
WHERE condition;

参数说明:

  • column1, column2, ...:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。

  • table_name:要查询的表名称。



演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+| id | name         | url                       | alexa | country |+----+--------------+---------------------------+-------+---------+| 1  | Google       | https://www.google.cm/    | 1     | USA     || 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      || 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      || 4  | 微博          | http://weibo.com/         | 20    | CN      || 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |+----+--------------+---------------------------+-------+---------+



WHERE 子句实例

下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 的所有网站:

实例

SELECT * FROM Websites WHERE country='CN';

执行输出结果:



文本字段 vs. 数值字段

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

在上个实例中 'CN' 文本字段使用了单引号。

如果是数值字段,请不要使用引号。

实例

SELECT * FROM Websites WHERE id=1;

执行输出结果:



WHERE 子句中的运算符

下面的运算符可以在 WHERE 子句中使用:

运算符描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值

2 篇笔记 写笔记

  1.    tin

      cxt***qq.com

    3490

    Where 子句

    搜索 empno 等于 7900 的数据:

    Select * from emp where empno=7900;

    Where +条件(筛选行)

    条件:列,比较运算符,值

    比较运算符包涵:= > < >= ,<=, !=,<> 表示(不等于)

    Select * from emp where ename='SMITH';

    例子中的 SMITH 用单引号引起来,表示是字符串,字符串要区分大小写。

    逻辑运算

    And:与 同时满足两个条件的值。

    Select * from emp where sal > 2000 and sal < 3000;

    查询 EMP 表中 SAL 列中大于 2000 小于 3000 的值。

    Or:或 满足其中一个条件的值

    Select * from emp where sal > 2000 or comm > 500;

    查询 emp 表中 SAL 大于 2000 或 COMM 大于500的值。

    Not:非 满足不包含该条件的值。

    select * from emp where not sal > 1500;

    查询EMP表中 sal 小于等于 1500 的值。

    逻辑运算的优先级:

    ()    not        and         or


    特殊条件

    1.空值判断: is null

    Select * from emp where comm is null;

    查询 emp 表中 comm 列中的空值。

    2.between and (在 之间的值)

    Select * from emp where sal between 1500 and 3000;

    查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。

    注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。

    3.In

    Select * from emp where sal in (5000,3000,1500);

    查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。

    4.like

    Like模糊查询

    Select * from emp where ename like 'M%';

    查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

    tin

       tin

      cxt***qq.com

    7年前 (2017-03-06)
    •  % 表示多个字值,_ 下划线表示一个字符;

    •  M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。

    •  %M% : 表示查询包含M的所有内容。

    •  %M_ : 表示查询以M在倒数第二位的所有内容。

  2.    张耘翡

      869***43@qq.com

    1365

    不带比较运算符的 WHERE 子句:

    WHERE 子句并不一定带比较运算符,当不带运算符时,会执行一个隐式转换。当 0 时转化为 false,1 转化为 true。例如:

    SELECT studentNO FROM student WHERE 0

    则会返回一个空集,因为每一行记录 WHERE 都返回 false。

    SELECT  studentNO  FROM student WHERE 1

    返回 student 表所有行中 studentNO 列的值。因为每一行记录 WHERE 都返回 t


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发