MySQL学习笔记:条件查询详解
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的奖金率替换为'无'。
通过熟练掌握这些条件查询方法,我们可以更加精确地从数据库中获取所需信息,提高数据处理的效率。
2020-12-14 上传
2020-12-14 上传
2020-12-14 上传
2023-05-20 上传
2023-05-28 上传
2023-05-05 上传
2023-08-16 上传
2023-05-05 上传
2023-09-14 上传
weixin_38620314
- 粉丝: 1
- 资源: 913
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍