admin管理员组

文章数量:1035190

Mysql基本查询(下)

3. 更新(update)

update语句用于修改数据库中已存在的数据。

语法:

代码语言:javascript代码运行次数:0运行复制
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

语法解析:

  • UPDATE table_name:指定要更新的表名。
  • SET column1 = value1, column2 = value2, ...:指定需要更新的列和新值。可以同时更新多个列,每个列的更新使用逗号分隔。
  • WHERE condition:这是一个非常重要的部分,限定更新的范围。WHERE 子句确保只有符合条件的记录会被更新。如果不使用 WHERE 子句,表中的所有记录都会被更新。

小知识:

  • 更新时最好通过where条件进行精确匹配,避免误操作影响到所有记录。
  • 使用order bylimit可以控制更新的记录数,避免批量更新时产生的风险。

示例:

更新单列
代码语言:javascript代码运行次数:0运行复制
update exam_result set math=80 where name='孙悟空';

更新前:

更新后

更新多列
代码语言:javascript代码运行次数:0运行复制
update exam_result set math=60,chinese=70 
where name='曹孟德'; 

更新前:

更新后

基于表达式更新
代码语言:javascript代码运行次数:0运行复制
update exam_result set math=math+30 order 
by math+english+chinese asc limit 3;

更改前后三名

更改后后三名:

4. 删除(delete)

delete语句用于删除数据库中的记录。

语法:

代码语言:javascript代码运行次数:0运行复制
DELETE FROM table_name
WHERE condition;

语法解析:

  • DELETE FROM table_name:指定要从哪个表中删除记录。
  • WHERE condition:指定删除的条件。如果没有 WHERE 子句,所有记录都会被删除。

小知识:

  • 使用where条件时要特别小心,避免误删除整个表的数据。
  • truncate语句比delete语句更高效,且不生成日志,但它无法回滚且会重置自增列。

示例:

删除单条记录
代码语言:javascript代码运行次数:0运行复制
delete from exam_result where name='孙悟空';

删除前

删除后

删除整表数据

方案一:删除表

方案二:截断表

delete from for_delete;

truncate for_delete;

删除前自增值:

删除前子增值:

删除后自增值:(无变化)

删除后子增值清零:

删除重复数据:

创建相同的表结构

创建相同表结构并插入去重元素

create table <新表名> like <原表名>;

在新表中插入去重数据

create table <新表名> as select distinct *from <旧表名>;

insert <新表名> select distinct *from<原表名>;

删除旧表

drop table <旧表>;

改新表名为旧表

alter table <新表名> rename to <旧表名>

5.聚合统计
聚合函数

函数

说明

COUNT([DISTINCT] expr)

返回查询到的数据的数量

SUM([DISTINCT] expr)

返回查询到的数据的总和,不是数字没有意义

AVG([DISTINCT] expr)

返回查询到的数据的平均值,不是数字没有意义

MAX([DISTINCT] expr)

返回查询到的数据的最大值,不是数字没有意义

MIN([DISTINCT] expr)

返回查询到的数据的最小值,不是数字没有意义

  • 查询个数(count)
代码语言:javascript代码运行次数:0运行复制
select count(*)from exam_result;
  • 统计相加(sum)
代码语言:javascript代码运行次数:0运行复制
select sum(math) from exam_result;
  • 平均值(avg)
代码语言:javascript代码运行次数:0运行复制
select agv(math) from exam_result;
  • 最小值(min)
代码语言:javascript代码运行次数:0运行复制
select min(math) from exam_result;
  • 最大值(max)
代码语言:javascript代码运行次数:0运行复制
select max(math) from exam_result;
6.分组统计(group by)

groupe by 用于对数据的分类讨论,可以添加其他列

基本语法

代码语言:javascript代码运行次数:0运行复制
SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2;
  • column1, column2:用于分组的列。
  • aggregate_function(column3):对分组数据进行聚合计算(如 COUNT(), SUM(), AVG(), MAX(), MIN())。

小知识:

  • groupe by 常常和聚合函数一起使用
  • 使用having可以让分组更加灵活
统计(having)

对聚合后的数据进行排列

where 和having的区别

执行顺序:

在 SQL 查询中,查询的执行顺序是固定的,按以下顺序执行:

  • FROM:从指定的表中获取数据。
  • WHERE:在数据分组前,对原始数据进行过滤。
  • GROUP BY:将数据按指定的列进行分组。
  • SELECT:选择要展示的列。
  • HAVING:对已经分组后的数据进行过滤。
  • ORDER BY:排序。

select之前的不能使用别名,select之后的才能使用别名。

用法:

WHERE:用于在 分组前 对原始数据进行过滤,不能直接对聚合结果(如 SUM(), AVG())进行筛选,也不能使用列的别名。 HAVING:用于 分组后 对聚合结果进行过滤,常常用于聚合函数(如 AVG(), SUM())的条件筛选,可以使用别名

当然还有今天的配套练习,快来试试吧:配套练习

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent 删除mysql函数数据统计语法

Mysql基本查询(下)

3. 更新(update)

update语句用于修改数据库中已存在的数据。

语法:

代码语言:javascript代码运行次数:0运行复制
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

语法解析:

  • UPDATE table_name:指定要更新的表名。
  • SET column1 = value1, column2 = value2, ...:指定需要更新的列和新值。可以同时更新多个列,每个列的更新使用逗号分隔。
  • WHERE condition:这是一个非常重要的部分,限定更新的范围。WHERE 子句确保只有符合条件的记录会被更新。如果不使用 WHERE 子句,表中的所有记录都会被更新。

小知识:

  • 更新时最好通过where条件进行精确匹配,避免误操作影响到所有记录。
  • 使用order bylimit可以控制更新的记录数,避免批量更新时产生的风险。

示例:

更新单列
代码语言:javascript代码运行次数:0运行复制
update exam_result set math=80 where name='孙悟空';

更新前:

更新后

更新多列
代码语言:javascript代码运行次数:0运行复制
update exam_result set math=60,chinese=70 
where name='曹孟德'; 

更新前:

更新后

基于表达式更新
代码语言:javascript代码运行次数:0运行复制
update exam_result set math=math+30 order 
by math+english+chinese asc limit 3;

更改前后三名

更改后后三名:

4. 删除(delete)

delete语句用于删除数据库中的记录。

语法:

代码语言:javascript代码运行次数:0运行复制
DELETE FROM table_name
WHERE condition;

语法解析:

  • DELETE FROM table_name:指定要从哪个表中删除记录。
  • WHERE condition:指定删除的条件。如果没有 WHERE 子句,所有记录都会被删除。

小知识:

  • 使用where条件时要特别小心,避免误删除整个表的数据。
  • truncate语句比delete语句更高效,且不生成日志,但它无法回滚且会重置自增列。

示例:

删除单条记录
代码语言:javascript代码运行次数:0运行复制
delete from exam_result where name='孙悟空';

删除前

删除后

删除整表数据

方案一:删除表

方案二:截断表

delete from for_delete;

truncate for_delete;

删除前自增值:

删除前子增值:

删除后自增值:(无变化)

删除后子增值清零:

删除重复数据:

创建相同的表结构

创建相同表结构并插入去重元素

create table <新表名> like <原表名>;

在新表中插入去重数据

create table <新表名> as select distinct *from <旧表名>;

insert <新表名> select distinct *from<原表名>;

删除旧表

drop table <旧表>;

改新表名为旧表

alter table <新表名> rename to <旧表名>

5.聚合统计
聚合函数

函数

说明

COUNT([DISTINCT] expr)

返回查询到的数据的数量

SUM([DISTINCT] expr)

返回查询到的数据的总和,不是数字没有意义

AVG([DISTINCT] expr)

返回查询到的数据的平均值,不是数字没有意义

MAX([DISTINCT] expr)

返回查询到的数据的最大值,不是数字没有意义

MIN([DISTINCT] expr)

返回查询到的数据的最小值,不是数字没有意义

  • 查询个数(count)
代码语言:javascript代码运行次数:0运行复制
select count(*)from exam_result;
  • 统计相加(sum)
代码语言:javascript代码运行次数:0运行复制
select sum(math) from exam_result;
  • 平均值(avg)
代码语言:javascript代码运行次数:0运行复制
select agv(math) from exam_result;
  • 最小值(min)
代码语言:javascript代码运行次数:0运行复制
select min(math) from exam_result;
  • 最大值(max)
代码语言:javascript代码运行次数:0运行复制
select max(math) from exam_result;
6.分组统计(group by)

groupe by 用于对数据的分类讨论,可以添加其他列

基本语法

代码语言:javascript代码运行次数:0运行复制
SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2;
  • column1, column2:用于分组的列。
  • aggregate_function(column3):对分组数据进行聚合计算(如 COUNT(), SUM(), AVG(), MAX(), MIN())。

小知识:

  • groupe by 常常和聚合函数一起使用
  • 使用having可以让分组更加灵活
统计(having)

对聚合后的数据进行排列

where 和having的区别

执行顺序:

在 SQL 查询中,查询的执行顺序是固定的,按以下顺序执行:

  • FROM:从指定的表中获取数据。
  • WHERE:在数据分组前,对原始数据进行过滤。
  • GROUP BY:将数据按指定的列进行分组。
  • SELECT:选择要展示的列。
  • HAVING:对已经分组后的数据进行过滤。
  • ORDER BY:排序。

select之前的不能使用别名,select之后的才能使用别名。

用法:

WHERE:用于在 分组前 对原始数据进行过滤,不能直接对聚合结果(如 SUM(), AVG())进行筛选,也不能使用列的别名。 HAVING:用于 分组后 对聚合结果进行过滤,常常用于聚合函数(如 AVG(), SUM())的条件筛选,可以使用别名

当然还有今天的配套练习,快来试试吧:配套练习

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent 删除mysql函数数据统计语法

本文标签: Mysql基本查询(下)