MySQL学习笔记五

第七章数据过滤

7.1组合WHERE子句

7.1.1AND操作符

输入:

SELECT first_name, last_name, salary
FROM employees
WHERE salary <= 4800 AND department_id = 60;

输出:

说明:MySQL允许使用多个WHERE子句,可以以AND子句或OR子句的方式使用。这里的AND和OR是用来连接WHERE子句的关键字,被称为逻辑操作符。AND要求返回的数据满足所有WHERE子句的要求,上例就是在查找满足工资小于等于4800且所隶属的部门代码为60的员工的姓和名。

输入:

SELECT first_name, last_name, salary, department_id
FROM employees
WHERE salary <= 4800 OR department_id = 60;

输出:

说明:OR操作符是匹配任一条件

7.1.3计算次序

输入:

SELECT first_name, last_name, salary, department_id
FROM employees
WHERE department_id = 60 OR department_id = 90 AND salary <= 4800;

输出:

说明:这里返回的结果是计算的次序导致的。SQL优先处理AND运算符,也就是说上面的示例中由于满足部门代码为90且工资小于等于4800的数据根本不存在,所以SQL只返回了部门代码为60的数据。

输入:

SELECT first_name, last_name, salary, department_id
FROM employees
WHERE (department_id = 60 OR department_id = 90) AND salary <= 30000;

输出:

说明:使用()之后就拥有比AND和OR更高的优先级,这里的结果才是正确的。

7.2IN操作符

输入:

SELECT first_name, last_name, salary, department_id
FROM employees
WHERE department_id IN (60,90);

输出:

说明:IN操作符用来指定条件范围内,范围内的每个条件都可以进行匹配,条件格式为IN(条件1,条件2)。IN操作符完成的是与OR操作符同样的工作。

输入:

SELECT first_name, last_name, salary, department_id
FROM employees
WHERE department_id = 60 OR department_id = 90;

输出:

说明:使用IN操作符的优点有:

  • 语法更清楚直观
  • 计算次序更容易管理
  • 比OR执行的更快
  • 可以包含其他SELECT语句

7.3NOT操作符

输入:

SELECT first_name, last_name, salary, department_id
FROM employees
WHERE department_id NOT IN (60,90);

输出:

说明:1.NOT WHERE子句用来否定后跟条件的关键字。

2.MySQL支持使用NOTINBETWEENEXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值