当前位置: 首页 > 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.xdnf.cn/news/179137.html

相关文章:

  • Neowise Labs Contest 1 (Codeforces Round 1018, Div. 1 + Div. 2)
  • HTML基础完全解析
  • Astah Professional反向建模C++类图
  • 【记录解决问题】--vue select下拉框排除已选择option
  • MCP协议:AI生态的统一标准
  • LeetCode 24 两两交换链表中的节点
  • 半导体行业如何开展风险管理?有没有半导体风控案例参考?
  • 反序列化漏洞2
  • 贪吃蛇游戏demo
  • 计网二。。
  • css响应式布局设置子元素高度和宽度一样
  • Maven项目细节
  • re题(48)BUUCTF-[网鼎杯 2020 青龙组]singal
  • vue项目页面适配
  • Java学习--HashMap
  • 科技打头阵,创新赢未来——中科视界携千眼狼超高速摄像机亮相第三届科交会
  • 【HPC存储性能测试】02-ior带宽性能测试
  • acwing532. 货币系统
  • 【操作系统原理07】输入/输出系统
  • 常用的多传感器数据融合方法
  • 安卓屏播放语音失败,报错TextToSpeech: speak failed: not bound to TTS engine
  • risc-V学习日记(4):RV32I指令集
  • 开关电源实战(六)ADDC反激电源
  • 说一下Drop与delete区别
  • 在java中实现protobuf自定义协议
  • 通过ThreadLocal存储登录用户信息
  • LeetCode每日一题4.27
  • 【HPC存储性能测试】01-OpenMPI部署
  • 深入理解指针(5)
  • 【Leetcode 每日一题】3392. 统计符合条件长度为 3 的子数组数目