MySQL学习笔记:条件查询详解

0 下载量 187 浏览量 更新于2024-08-30 收藏 529KB PDF 举报
"MySQL条件查询详解" 在MySQL数据库中,条件查询是数据检索的核心部分,它允许我们根据特定的条件从表中筛选出所需的数据。在本文中,我们将深入探讨条件查询的不同方面,包括条件表达式筛选、逻辑表达式筛选、模糊查询以及特殊比较操作。 一、条件表达式筛选 条件表达式筛选利用比较运算符来确定记录是否满足指定的条件。常见的比较运算符有大于(>)、小于(<)、等于(=)、不等于(!=或<>)、大于等于(>=)和小于等于(<=)。例如,要查询工资高于12000的员工姓名,可以使用如下的SQL语句: ```sql SELECT 姓名 FROM 员工 WHERE 工资 > 12000; ``` 而要查询部门编号不等于90号的员工名和部门编号,可以写为: ```sql SELECT 姓名, 部门编号 FROM 员工 WHERE 部门编号 != 90; ``` 二、逻辑表达式筛选 逻辑表达式筛选使用逻辑运算符将多个条件组合起来。在MySQL中,逻辑运算符有&&(或and)、||(或or)、!(非not)以及它们的SQL标准形式And、Or、Not。这些运算符可以帮助我们构建复杂的条件。例如,要查询工资在10000到20000之间且奖金率大于1%的员工信息,可以使用如下语句: ```sql SELECT 姓名, 工资, 奖金率 FROM 员工 WHERE 工资 BETWEEN 10000 AND 20000 AND 奖金率 > 1; ``` 同时,也可以用或操作符查询部门编号不在90到110之间或者工资高于15000的员工信息: ```sql SELECT * FROM 员工 WHERE (部门编号 NOT BETWEEN 90 AND 110) OR 工资 > 15000; ``` 三、模糊查询 1. like:`LIKE`关键字配合通配符 `%` 和 `_` 可以进行模糊匹配。`%` 代表任意数量的字符,`_` 代表单个字符。例如,要查找员工名中包含字符"a"的员工,可以这样写: ```sql SELECT 姓名 FROM 员工 WHERE 姓名 LIKE '%a%'; ``` 而要查找员工名中第三个字符为'e',第五个字符为'a'的员工名和工资,可以使用: ```sql SELECT 姓名, 工资 FROM 员工 WHERE 姓名 LIKE '___e___a%'; ``` 2. between and:`BETWEEN` 用于选取在两个值之间的数据,注意这两个值是包含在内的。例如,查询员工编号在100到120之间的员工信息: ```sql SELECT * FROM 员工 WHERE 员工编号 BETWEEN 100 AND 120; ``` 3. in:`IN` 用于检查某个字段的值是否在指定的列表中。例如,查询工种编号为特定值的员工名和工种编号: ```sql SELECT 姓名, 工种编号 FROM 员工 WHERE 工种编号 IN ('IT_PROG', 'AD_VP', 'AD_PRES'); ``` 4. is null/is not null:`IS NULL` 和 `IS NOT NULL` 用于检查字段值是否为空。例如,要查找没有奖金的员工名和奖金率: ```sql SELECT 姓名, 奖金率 FROM 员工 WHERE 奖金率 IS NULL; ``` 同时,`ISNULL()` 和 `ISNOTNULL()` 函数也是判断NULL值的好帮手。 四、特殊比较操作 除了上述条件,还有一些特殊比较操作,比如 `= COALESCE(NULL, value)` 可以用来判断NULL值,同时也能判断普通的数值。例如,查询所有没有奖金的员工,可以使用 `COALESCE()` 函数: ```sql SELECT 姓名, COALESCE(奖金率, '无') AS 奖金率 FROM 员工; ``` 这个查询会将所有NULL的奖金率替换为'无'。 通过熟练掌握这些条件查询方法,我们可以更加精确地从数据库中获取所需信息,提高数据处理的效率。