当前位置: 首页 > news >正文

MySQL快速入门篇---增删改查(下)

目录

一、修改(Update)

1.语法

2.示例

二、删除(Delete) 

1.语法

2.示例 

三、聚合函数

1.示例 

1.1、COUNT 

1.2、SUM 

 1.3、AVG

1.4、MAX 

1.5、MIN

 四、分组查询(GROUP BY)

 1.语法

2.示例 

3.Having 


一、修改(Update)

1.语法

UPDATE table_reference SET assignment [, assignment] ... [WHERE where_condition] 
[ORDER BY ...] [LIMIT row_count]

2.示例

我们先定义一个exam表如图所示:

将李星云的语文成绩更改为88分 

update exam set chinese=88 where name='李星云';

其查询结果如下:

将李星云的语文成绩变更为80,数学成绩变更为80 

update exam set chinese=80,math=80 where name='李星云';

 其查询结果如下:

将总成绩倒数前三的3位同学的数学成绩减去10分 

 首先查询总成绩倒数前三的三位同学(有NULL值的成绩不算):

select * from exam where chinese+math+english is not null order by chinese+math+english asc limit 3;

然后更改成绩:

update exam set math=math-10 where chinese+math+english is not null order by chinese+math+english asc limit 3;

然后查询更改后的三位同学的成绩:

select * from exam where name in ('莹勾','上官云阙','旱魃');

 

注意:

• 以原值的基础上做变更时,不能使用math-=10这样的语法

• 不加where条件时,会导致全表数据被更新

二、删除(Delete) 

1.语法

DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

2.示例 

删除李茂贞的考试成绩

delete from exam where name = '李茂贞';

此时再查询所有同学的信息:

发现已经没有李茂贞的信息,删除成功 

删除整张表的数据 

delete from exam;

三、聚合函数

1.示例 

这里的示例我们依然用exam表 

1.1、COUNT 

 统计exam表中有多少记录

select count(*) from exam;

 其结果如图:

1.2、SUM 

统计所有学生数学成绩总分 

select sum(math) as '数学总分' from exam;

其运行结果如下图:

 1.3、AVG

 统计平均总分

select avg(chinese+math+english) as '平均总分' from exam;

 其查询结果如下:

1.4、MAX 

查询英语最高分 

select max(english) as '英语最高分' from exam;

 其查询结果如下:

1.5、MIN

查询英语成绩最低分 

select min(english) as '英语最低分' from exam;

 其查询结果如下:

 四、分组查询(GROUP BY)

 1.语法

SELECT {col_name | expr} ,... ,aggregate_function (aggregate_expr)FROM table_references GROUP BY {col_name | expr}, ... [HAVING where_condition]

 

2.示例 

创建一个示例表 :

create table emp (id bigint primary key auto_increment,name varchar(20) not null,role varchar(20) not null,salary decimal(10, 2) not null
);
insert into emp values (1, '张三', '老板', 1500000.00);
insert into emp values (2, '李四', '老板', 1800000.00);
insert into emp values (3, '王五', '会计', 10000.00);
insert into emp values (4, '赵六', '会计', 12000.00);
insert into emp values (5, '钱七', '员工', 9000.00);
insert into emp values (6, '楚八', '员工', 8000.00);
insert into emp values (7, '宋九', '实习', 956.8);
insert into emp values (8, '顾十', '实习', 700.5);
insert into emp values (9, '陈十一', '实习', 333.3);

 统计每个角色的人数

select role,count(*) from emp group by role;

查询结果如下: 

 

3.Having 

使用GROUP BY对结果进行分组处理之后,对分组的结果进行过滤时,不能使用 WHERE 子句,而要使用 HAVING 子句 

显示平均成绩低于1500的角色和它的平均工资

select role,avg(salary) from emp group by role having avg(salary)<1500;

其运行结果如下:

增删改查这一内容到这里就正式结束了,觉得有帮助的各位佬们可以一键三连支持一波,感激不尽!!!

相关文章:

  • LeetCode 24 两两交换链表中的节点
  • 【深度好文】4、Milvus 存储设计深度解析
  • 【Nginx】负载均衡配置详解
  • 【2025最新Java面试八股】如何在Spring启动过程中做缓存预热?
  • kafka 中消费者 groupId 是什么
  • [python] 基于WatchDog库实现文件系统监控
  • Seaborn模块练习题
  • GCC 内建函数汇编展开详解
  • 【数据挖掘】时间序列预测-时间序列预测策略
  • 脏读、幻读、可重复读
  • 反序列化漏洞2
  • 数据结构(七)---链式栈
  • 力扣HOT100之链表:23. 合并 K 个升序链表
  • ComfyUI for Windwos与 Stable Diffusion WebUI 模型共享修复
  • JavaScript 中 undefined 和 not defined 的区别
  • 【深度学习】多头注意力机制的实现|pytorch
  • 生物医学AI的特种算力需求:冷冻电镜数据处理中的GPU加速方案
  • GIS开发笔记(16)解决基于osg和osgearth三维地图上添加placeNode图标点击不易拾取的问题
  • UML 活动图详解之小轿车启动活动图分析
  • Dev控件RadioGroup 如何设置一排有N个显示或分为几行
  • 监狱法修订草案提请全国人大常委会会议审议
  • 加拿大今日大选:房价、印度移民和特朗普,年轻人在焦虑什么?
  • 校长套取学生伙食费设小金库,重庆通报6起违反八项规定典型问题
  • 【社论】用生态环境法典守护生态文明
  • 银川市市长信箱被指已读乱回,官方回应
  • 伊朗外长: 美伊谈判进展良好,讨论了很多技术细节