【MySQL】基本查询(下)

文章目录

1.筛选分页结果

什么是筛选分页结果呢,我们都知道当我们在看小说或者很长的文章的时候,都会分成很多页,在未来数据库处理当中也会面临着处理很多数据,如果直接将所有数据显示出来,会使得负载过高,所以分页或者条件筛选是避不开的话题,所以接下来我们就来学习一下什么是筛选分页结果。

sql 复制代码
select *from student limit 0,3;

上面这种写法表示从哪个位置开始显示多少行数据,注意:表的开始是0好位置,而不是1号位置。
limit不仅可以这样用,还可以通过加上其他的条件达到自己想要的效果,比如order by:

我们可以通过order by加上limit来达到筛选出成绩最好的或者成绩最差的,根据自己数据库的需求来分页筛选

2.Update

基本语法

sql 复制代码
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]

我们可以通过update来更新表中的数据:

不加上限制条件会将所有对应该列的数据全部改为指定数据,所以在改数据的时候切记加上判断条件。

3.Delete

基本语法

sql 复制代码
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

可以通过where条件删除表中对应的行数据:

也可以通过delete删除整个表,我们专门创建一张表来测试delete的删除效果:

删除表中所有数据:

可以看到当我们删除表中所有数据时,自增长约束是不会被清除为0的,这就是delete的特性,接下来我们来看看truncate的特性

4.截断表

基本语法

sql 复制代码
TRUNCATE [TABLE] table_name

我们也为truncate创建一张和delete相同的表,除了名字不同,插入的数据都是相同的。

可以看到原本自增长有约束有指定值的,但是truncate一下被清楚掉了,这就是truncate和delete的区别,一个会清除,一个不会。

5.插入查询结果

sql 复制代码
INSERT INTO table_name [(column [, column ...])] SELECT ...

插入查询结果,就相当于把查询出来的结构插入到一个新表当中,我们常用于去重,这里我们给出一组有多组重复数据的表,然后我们用insert和select进行去重,可能有些人要说,用distinct也可以去重,确实可以去重,但是distinct是不会改变表的数据的,查表的时候还是原本的数据。

可以看到这里我们创建了一张有多组重复数据的表结构,接下来我们要进行去重,我们的去重思路是,先创建一张新表,然后进行select筛选,将筛选出来的数据插入到新表中,然后将老的表的名字改名,将新表的名字也用rename进行改名,改名为原表的名字。

可以看到经过我们一系列改表名称之后,我们得到了一个去重之后的表。

6.聚合函数

6.1什么是聚合函数

聚合函数(Aggregate Function)是一类 对一组数据进行计算并返回单一值 的 SQL 函数,通常用于 统计数据分析 。聚合函数主要用于 SELECT 语句,并通常与 GROUP BY 结合使用。

6.2常见的聚合函数

函数 作用 示例
COUNT() 计算记录数 SELECT COUNT(*) FROM users;
SUM() 计算总和 SELECT SUM(salary) FROM employees;
AVG() 计算平均值 SELECT AVG(age) FROM students;
MAX() 返回最大值 SELECT MAX(price) FROM products;
MIN() 返回最小值 SELECT MIN(price) FROM products;

COUNT()

统计表中某个列的行数,或者统计总的。


SUM()

sum可以统计某一列或者多列的总和。


AVG()

求平均值函数:

MAX()

max函数和min函数的用法都一样,求一列中的最小值或者最大值。

7.group by

sql 复制代码
select column1, column2, .. from table group by column;

GROUP BY 是 SQL 语句中的 分组 操作,通常与 聚合函数 (如 COUNT()SUM()AVG() 等)一起使用,用于按照指定的字段对数据进行分组,并对每个组执行计算。

这里我已经准备了三张表,用于测试和讲解group by

员工表


工资等级表


部门表


7.1如何显示每个部门的平均工资和最高工资

首先可以确定的是查的是最高工资和平均工资,如果只查这两个,我们可以直接像下面这样

但是现在有外加条件,就是每个部门,意思就是我们要将相同部门分为一组,然后在相同部门当中求出最高工资和平均工资,所以接下来登场的就是group by

7.2显示每个部门的每种岗位的平均工资和最低工资

和上一个一样,首先是看我们查的是什么,然后再看分组,这次是每个部门的每种岗位,意思就是先分为每个部门,之后再分为每种岗位,这才思路清晰了,我们先查最低工资和平均工资:

最小值查到之后,分组:


7.3显示平均工资低于2000的部门和它的平均工资

这里首先我们查的是平均工资低于2000的,这里就不能用where条件,这里需要搭配到having使用:


8.总结

在本文中,我们探讨了数据库操作的多个关键方面,包括 筛选分页结果更新(Update)删除(Delete)截断表(Truncate)插入查询结果聚合函数 以及 Group By 的使用。这些 SQL 语句和技巧在日常开发和数据处理过程中至关重要。

通过合理运用这些 SQL 语句,我们可以提高数据库查询的效率、优化数据存储,并更好地管理数据的增删改查。同时,在实际应用中,需要注意 SQL 语句的优化,如索引的使用、避免不必要的全表扫描等,以提升数据库的性能。

希望本文的内容能帮助你更好地掌握 SQL 操作,提高数据库管理的能力!如果有任何问题,欢迎交流与探讨。

相关推荐
AI 嗯啦1 小时前
SQL详细语法教程(七)核心优化
数据库·人工智能·sql
@蓝眼睛1 小时前
mac的m3芯片安装mysql
mysql·macos
ClouGence2 小时前
三步搞定!GaussDB 实时数据入仓
数据库·后端
冰块的旅行2 小时前
MySQL 的时区问题
mysql
舒一笑3 小时前
如何优雅统计知识库文件个数与子集下不同文件夹文件个数
后端·mysql·程序员
鼠鼠我捏,要死了捏3 小时前
生产环境MongoDB分片策略优化与故障排查实战经验分享
数据库·mongodb·分片
KaiwuDB4 小时前
KWDB 分布式架构探究——数据分布与特性
数据库·分布式
笨蛋不要掉眼泪4 小时前
Spring Boot集成腾讯云人脸识别实现智能小区门禁系统
java·数据库·spring boot
Leiwenti5 小时前
MySQL高阶篇-数据库优化
数据结构·数据库·mysql
你的电影很有趣5 小时前
lesson44:Redis 数据库全解析:从数据类型到高级应用
数据库·redis·缓存