当前位置: 首页 > 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;

其运行结果如下:

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

http://www.dtcms.com/a/160143.html

相关文章:

  • 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个显示或分为几行
  • 在Linux中,使用IO标准库进行读写操作。
  • 塔能合作模式:解锁工厂能耗精准节能新路径
  • Flutter 泛型 泛型方法 泛型类 泛型接口
  • 《原神/星穹铁道私服怎么建?内网穿透+本地调试完整指南》
  • 游戏服务器不加防护能活多久?
  • 《明解C语言入门篇》读书笔记四
  • pytorch写张量pt文件,libtorch读张量pt文件
  • log4cpp 使用指南
  • OpenCV 图形API(66)图像结构分析和形状描述符------将一条直线拟合到三维点集上函数fitLine3D()
  • linux用户管理