AND, OR, NOT(与,或,非 运算符)
AND, OR运算符用于根据一个以上的条件过滤记录。
AND、OR、NOT 使用位置
WHERE子句可以与AND,OR和NOT运算符结合使用。
AND和OR运算符用于根据多个条件筛选记录:
- 如果由AND分隔的所有条件为TRUE,则AND运算符显示记录。
- 如果由OR分隔的任何条件为真,则OR运算符显示记录。
如果条件不为真,则NOT运算符显示记录。
AND语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
OR语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
NOT语法
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
演示数据库
在本教程中,主要是使用Mysql数据库,虽然和其他数据有一定的差异,不影响对SQL语法的讲解。
相应的脚本请查看上一篇文章:开始前准备环境
下面是选自 "member" 表的数据:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1010 | 10001 | 112331 | 张三 | xxx | 广东 | 1 |
1011 | 10002 | 112333 | 李四 | xxx | 北京 | 1 |
1012 | 10003 | 1234567 | 王五 | xxx | 广东 | 1 |
1013 | 10004 | 112335 | 张飞 | xxx | 广东 | 1 |
1014 | 10005 | 112336 | 关习 | xxx | 上海 | 1 |
1015 | 10006 | 112337 | 关平 | xxx | 湖南 | 1 |
1016 | 10007 | 112338 | 小李 | xxx | 广东 | 1 |
1017 | 10008 | 112339 | 韩飞 | xxx | 深圳 | 1 |
1018 | 10009 | 112310 | 刘备 | xxx | 三国 | 1 |
1019 | 10010 | 112312 | 吴越 | xxx | 广西 | 1 |
1020 | 10011 | 112312 | 韩信 | xxx | 南京 | 1 |
1021 | 10012 | 112331 | 张包 | xxx | 广东 | 1 |
AND 运算符实例
以下SQL语句从 "member" 表中选择其member_id大于 1015 、其location为"广东" 的所有客户:
示例语句:
SELECT * FROM member
WHERE member_id>1015
AND location='广东';
查询结果:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1016 | 10007 | 112338 | 小李 | xxx | 广东 | 1 |
1021 | 10012 | 112331 | 张包 | xxx | 广东 | 1 |
OR 运算符实例
以下SQL语句选择location为“广东”或“广西”的“member”的所有字段:
示例语句:
SELECT * FROM member
WHERE location='广东' OR City='广西';
查询结果:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1010 | 10001 | 112331 | 张三 | xxx | 广东 | 1 |
1012 | 10003 | 1234567 | 王五 | xxx | 广东 | 1 |
1013 | 10004 | 112335 | 张飞 | xxx | 广东 | 1 |
1016 | 10007 | 112338 | 小李 | xxx | 广东 | 1 |
1019 | 10010 | 112312 | 吴越 | xxx | 广西 | 1 |
1021 | 10012 | 112331 | 张包 | xxx | 广东 | 1 |
NOT 运算符实例
以下SQL语句选择location不是 "广东"的"member"的所有字段:
示例语句:
SELECT * FROM member
WHERE NOT location='广东';
查询结果:
1011 | 10002 | 112333 | 李四 | xxx | 北京 | 1 |
---|---|---|---|---|---|---|
1014 | 10005 | 112336 | 关习 | xxx | 上海 | 1 |
1015 | 10006 | 112337 | 关平 | xxx | 湖南 | 1 |
1017 | 10008 | 112339 | 韩飞 | xxx | 深圳 | 1 |
1018 | 10009 | 112310 | 刘备 | xxx | 三国 | 1 |
1019 | 10010 | 112312 | 吴越 | xxx | 广西 | 1 |
1020 | 10011 | 112312 | 韩信 | xxx | 南京 | 1 |
AND 和 OR 联合使用
您还可以组合AND和OR(使用括号来组成成复杂的表达式)。
以下SQL语句从member_id 大于1013 且 location 为"广东" 或"广西"的"member" 表中选择所有会员:
示例语句:
SELECT * FROM member
WHERE member_id>1013
AND (location='广东' OR location='广西');
查询结果:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1016 | 10007 | 112338 | 小李 | xxx | 广东 | 1 |
1019 | 10010 | 112312 | 吴越 | xxx | 广西 | 1 |
1021 | 10012 | 112331 | 张包 | xxx | 广东 | 1 |
AND,OR和NOT联合使用
你也可以结合AND,OR和NOT运算符。
以下SQL语句选择status为1的“会员”的所有字段,location必须是“上海”或“湖南”(用括号形成复杂表达式):
代码示例:
SELECT * FROM member
WHERE status=1 AND (location='上海' OR location='湖南');
查询结果:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1014 | 10005 | 112336 | 关习 | xxx | 上海 | 1 |
1015 | 10006 | 112337 | 关平 | xxx | 湖南 | 1 |
以下SQL语句选择来自"member" 的location不是 "广东" 且不是 "湖南"的所有字段:
代码示例:
SELECT * FROM member
WHERE NOT location='广东' AND NOT location='湖南';
查询结果:
member_id | member_code | password | nick_name | remarks | location | status |
---|---|---|---|---|---|---|
1011 | 10002 | 112333 | 李四 | xxx | 北京 | 1 |
1014 | 10005 | 112336 | 关习 | xxx | 上海 | 1 |
1017 | 10008 | 112339 | 韩飞 | xxx | 深圳 | 1 |
1018 | 10009 | 112310 | 刘备 | xxx | 三国 | 1 |
1019 | 10010 | 112312 | 吴越 | xxx | 广西 | 1 |
1020 | 10011 | 112312 | 韩信 | xxx | 南京 | 1 |
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
本文链接:https://www.jhelp.net/p/qktyT1JXWU9sWcSG (转载请保留)。
关注下面的标签,发现更多相似文章
本站推荐
-
1154
-
1079
-
943
-
940
-
935
文章目录