Mysql——day02——条件查询

本文详细介绍了SQL中的条件查询、逻辑运算、模糊查询等基本操作,并通过多个实例进行演示,包括工资范围筛选、部门号查找、特殊字符匹配等。这些练习有助于提升SQL查询技能,适用于数据库管理和数据分析工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

条件查询

查询表达式符号
运算> < = != <> >= <=
逻辑&& || !and or not
模糊like、between and、in、is null、is not null

运算查询

测试1

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

测试2

sql语句
在这里插入图片描述

结果:

在这里插入图片描述

逻辑查询

测试1

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

测试2

sql语句
在这里插入图片描述

结果:
在这里插入图片描述

模糊查询

like用法

like测试1

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

like测试2

sql语句
在这里插入图片描述

结果:
在这里插入图片描述

like测试3

sql语句
在这里插入图片描述
或者(推荐)
在这里插入图片描述
结果:
在这里插入图片描述

between and

sql语句
在这里插入图片描述
结果:
在这里插入图片描述

in

sql语句
在这里插入图片描述
结果:

在这里插入图片描述

is null

sql语句

在这里插入图片描述
结果:
在这里插入图片描述

is not null

sql语句
在这里插入图片描述
结果:

在这里插入图片描述

安全等于

安全等于(数值、字符串、null值)

练习

1. 查询工资大于 12000 的员工姓名和工资
2. 查询员工号为 176 的员工的姓名和部门号和年薪
3. 选择工资不在 5000 到 12000 的员工的姓名和工资
4. 选择在 20 或 50 号部门工作的员工姓名和部门号
5. 选择公司中没有管理者的员工姓名及 job_id
6. 选择公司中有奖金的员工姓名,工资和奖金级别
7. 选择员工姓名的第三个字母是 a 的员工姓名
8. 选择姓名中有字母 a 和 e 的员工姓名
9. 显示出表 employees 表中 first_name 以 'e’结尾的员工信息
10. 显示出表 employees 部门编号在 80-100 之间 的姓名、职位
11. 显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、职位

1. 查询工资大于 12000 的员工姓名和工资

运算查询 >

在这里插入图片描述
在这里插入图片描述

2. 查询员工号为 176 的员工的姓名和部门号和年薪

运算查询 =

在这里插入图片描述
在这里插入图片描述

3. 选择工资不在 5000 到 12000 的员工的姓名和工资

逻辑查询 or
在这里插入图片描述
在这里插入图片描述

4. 选择在 20 或 50 号部门工作的员工姓名和部门号

模糊查询 in

在这里插入图片描述
在这里插入图片描述

5. 选择公司中没有管理者的员工姓名及 job_id

模糊查询 is null

在这里插入图片描述

在这里插入图片描述

6. 选择公司中有奖金的员工姓名和工资

模糊查询 is not null

在这里插入图片描述
在这里插入图片描述

7. 选择员工姓名的第三个字母是 a 的员工姓名

模糊查询 like

在这里插入图片描述
在这里插入图片描述

8. 选择姓名中有字母 a 和 e 的员工姓名

模糊查询 like
逻辑查询 or

在这里插入图片描述
在这里插入图片描述

9. 显示出表 employees 表中 first_name 以 'e’结尾的员工信息

模糊查询 like

在这里插入图片描述
在这里插入图片描述

10. 显示出表 employees 部门编号在 80-100 之间 的姓名和入职时期

模糊查询 between and

在这里插入图片描述
在这里插入图片描述

11. 显示出表 employees 的 manager_id 是 100,101,110 的员工姓名和入职时期

模糊查询

在这里插入图片描述
在这里插入图片描述

### 查询 MySQL 中 30 天前的数据 为了查询 MySQL 数据库中 30 天前的数据,可以利用 SQL 的日期函数来实现。假设有一个名为 `test` 的表,其中有一列 `started_at` 存储时间戳值,则可以通过以下方法筛选出早于当前时间 30 天的数据。 #### 使用 DATE_SUB 函数 以下是具体的 SQL 查询语句: ```sql SELECT * FROM test WHERE started_at < DATE_SUB(CURDATE(), INTERVAL 30 DAY); ``` 上述查询会返回 `started_at` 列中小于当前日期减去 30 天的所有记录[^1]。 如果需要更精确的时间比较(例如考虑小时、分钟),则可以用 NOW() 替代 CURDATE(): ```sql SELECT * FROM test WHERE started_at < DATE_SUB(NOW(), INTERVAL 30 DAY); ``` 此查询能够更加精准地处理带有时间部分的字段。 #### 表存储空间统计 对于了解每张表所占存储空间的情况,可执行如下命令: ```sql SELECT table_schema AS `Database`, table_name AS `Table`, CONCAT(ROUND(((data_length + index_length) / 1024 / 1024 / 1024), 2),' G') `Size` FROM information_schema.tables WHERE table_schema='your_database_name' ORDER BY (data_length + index_length) DESC; ``` 只需替换 `'your_database_name'` 为实际使用的数据库名称即可获得相应结果[^3]。 #### 升级注意事项 当涉及 MySQL 版本升级时需要注意不同版本间可能存在的兼容性问题以及新特性支持情况。通常有两种主要方式进行 MySQL 升级操作——原地升级与逻辑备份恢复法[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绕球飞行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值