SQL查询教程:WHERE子句与条件筛选

0 下载量 130 浏览量 更新于2024-08-04 收藏 14KB DOCX 举报
"WHERE子句是SQL查询语句中不可或缺的一部分,它用于定义查询结果需要满足的具体条件。通过WHERE子句,我们可以对数据进行精确或模糊筛选,以获取我们需要的信息。以下是对WHERE子句及其相关操作的详细说明: 一、条件表达式筛选 条件表达式筛选是WHERE子句的基础,它允许我们根据列的特定值来过滤结果。常见的比较运算符包括大于(>)、小于(<)、等于(=)、不等于(!=或<>)、大于等于(>=)和小于等于<=(注意,在某些数据库系统中,不等于推荐使用<>而非!=)。例如,以下SQL语句将返回所有薪水超过12000的员工记录: ```sql select * from employees where salary > 12000; ``` 二、逻辑表达式筛选 当需要同时满足多个条件时,我们可以使用逻辑运算符。在SQL中,这些运算符包括AND、OR和NOT。AND用于同时满足多个条件,OR用于选择满足任一条件的结果,NOT用于否定一个条件。以下例子展示了如何组合使用这些运算符: ```sql select last_name, department from employees where salary >= 10000 and salary <= 20000; -- 找到薪水在10000到20000之间的员工 select * from employees where not (department_id >= 90 and department_id <= 110) or salary > 15000; -- 找到不在90-110部门且薪资高于15000的员工 ``` 三、模糊查询 模糊查询允许我们进行部分匹配或范围匹配。其中最常用的关键字是LIKE,它可以与通配符配合使用: 1. `%`:代表任意数量的字符。例如,以下语句将返回所有名字中包含字母"a"的员工: ```sql select * from employees where last_name like '%a%'; ``` 2. `_`:代表单个字符。例如,要查找名字中有"n"且在"n"之前有两个字符的员工: ```sql select last_name from employees where last_name like '__n_l%'; ``` 此外,还有其他模糊查询关键字,如BETWEEN AND用于指定范围,IN用于检查是否属于指定列表,IS NULL用于检查字段是否为空。 四、BETWEEN AND BETWEEN AND 关键字用于选择在两个值之间的数据。例如,找出薪水在15000到20000之间的员工: ```sql select * from employees where salary between 15000 and 20000; ``` 五、IN IN 关键字用于指定一个值列表,返回所有在列表中的数据。比如,找出部门ID为90、100或110的员工: ```sql select * from employees where department_id in (90, 100, 110); ``` 六、IS NULL IS NULL 用于查找字段值为空的记录。例如,找出所有未分配部门的员工: ```sql select * from employees where department_id is null; ``` WHERE子句在SQL查询中起到关键作用,它结合各种比较和逻辑运算符,以及模糊查询功能,使我们能够灵活地从数据库中提取所需数据。熟练掌握WHERE子句的使用,能极大地提高数据查询的效率和准确性。