本文共 2025 字,大约阅读时间需要 6 分钟。
在SQL中,条件查询是为了从数据库中筛选出符合特定条件的数据。以下是条件查询的基本语法和实用技巧。
>:大于<:小于>=:大于等于<=:小于等于!=:不等于<>:不等于(与!=效果相同)示例:
SELECT * FROM employees WHERE salary > 12000;
SELECT last_name, department_id FROM employees WHERE department_id <> 90;
AND:与条件连接,要求所有条件同时满足。OR:与条件连接,满足任意一个条件即可。NOT:否定逻辑表达式。示例:
SELECT last_name, salary, commission_pct FROM employees WHERE salary >= 10000 AND salary <= 20000;
SELECT * FROM employees WHERE NOT (department_id >= 90 AND department_id <= 110) OR salary > 15000;
模糊查询用于匹配部分数据,常用于处理不确定信息。
%(任意多个字符,包含0个字符)和 _(任意单个字符)。示例:
SELECT * FROM employees WHERE last_name LIKE '%a%';
SELECT last_name, salary FROM employees WHERE last_name LIKE '__n_l%';
注意事项:
_),需要使用ESCAPE声明,例如:SELECT last_name FROM employees WHERE last_name LIKE '_\_%';
示例:
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;
示例:
IT_PROG、AD_VP、AD_PRES中的一个员工信息:SELECT last_name, job_id FROM employees WHERE job_id IN ('IT_PROG', 'AD_VP', 'AD_PRES');IS NULL:判断字段值为NULL。IS NOT NULL:判断字段值不为NULL。示例:
SELECT last_name, commission_pct FROM employees WHERE commission_pct IS NULL;
SELECT last_name, commission_pct FROM employees WHERE commission_pct IS NOT NULL;
注意事项:
IS NULL与<=>(安全等于)可以用来判断NULL值,但IS NULL更易于阅读且更常用。查询员工号为176的员工的姓名、部门号和年薪。
查询语句:
SELECT last_name, department_id, salary*12*(1+IFNULL(commission_pct,0)) AS 年薪 FROM employees WHERE employee_id = 176;
解释:
employee_id = 176:筛选员工编号为176的记录。last_name:返回员工姓名。department_id:返回部门编号。salary*12*(1+IFNULL(commission_pct,0)) AS 年薪:计算年薪,IFNULL(commission_pct,0)用于处理奖金率为NULL的情况,默认将奖金率视为0进行计算。转载地址:http://qtfv.baihongyu.com/