MySQL学习笔记:条件查询详解
92 浏览量
更新于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 上传
2020-12-14 上传
2020-12-14 上传
2021-01-19 上传
2020-12-14 上传
2020-12-14 上传
2021-01-21 上传
weixin_38620314
- 粉丝: 1
- 资源: 913
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明