004.SQL WHERE 子句,AND & OR 运算符
SQL WHERE 子句
WHERE 子句用于提取那些满足指定条件的记录。
SQL WHERE 语法
SELECT column_name,column_name FROM table_name WHERE column_name operator value;
演示数据库
在本教程中,我们将使用 shu 样本数据库。
下面是选自 “Websites” 表的数据:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 树 | http://www.shu.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';
输出结果:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 树懒 | http://www.shu.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | +----+--------------+---------------------------+-------+---------+
文本字段 vs. 数值字段
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
在上个实例中 ‘CN’ 文本字段使用了单引号。
如果是数值字段,请不要使用引号。
SELECT * FROM Websites WHERE id=1;
WHERE 子句中的运算符
下面的运算符可以在 WHERE 子句中使用:
运算符 | 描述 |
---|---|
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
常用的9种运算符:= , <>or!= , > , < , >= ,<= , between , like , in ;
SQL AND & OR 运算符
AND 运算符 :只有第一个条件和第二个条件都成立,才显示一条记录。
OR 运算符 :只要第一个条件和第二个条件中有一个成立,就显示一条记录。
演示数据库
在本教程中,我们将使用 shu 样本数据库。
下面是选自 “Websites” 表的数据:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 树懒 | http://www.shu.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | +----+--------------+---------------------------+-------+---------+
AND 运算符实例
下面的 SQL 语句从 “Websites” 表中选取国家为 “CN” 且alexa排名大于 “50” 的所有网站:
实例:
SELECT * FROM Websites WHERE country='CN' AND alexa > 50;
输出结果:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 3 | 树懒 | http://www.shu.com/ | 4689 | CN | +----+--------------+---------------------------+-------+---------+
OR 运算符实例
下面的 SQL 语句从 “Websites” 表中选取国家为 “USA” 或者 “CN” 的所有客户:
实例:
SELECT * FROM Websites WHERE country='USA' OR country='CN';
输出结果:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 树懒 | http://www.shu.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | +----+--------------+---------------------------+-------+---------+
结合 AND & OR
您也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。
下面的 SQL 语句从 “Websites” 表中选取 alexa 排名大于 “15” 且国家为 “CN” 或 “USA” 的所有网站:
实例:
SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');
输出结果:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 3 | 树懒 | http://www.shu.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | +----+--------------+---------------------------+-------+---------+
数据来源于网络,
仅供于个人学习,
若侵权联系删除。