Mysql配套测试之更新篇

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客

🌅主页:猫咪-9527-CSDN博客

"欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。"

目录

测试准备:

[更新测试 :](#更新测试 :)

1.将孙悟空同学的数学成绩更新为80

2.将曹孟德同学的数学成绩变更为60分,数学成绩变更为70分

3.将总成绩后三名的同学,数学成绩加上三十分

删除测试:

4.删除孙悟空同学的成绩

5.删除总成绩最后一名的同学

6.删除整张表的数据

7.删除表中重复元素

聚合测试:

8.统计不重复的数学成绩

9.统计数学成绩和

10.统计数学平均分

11.找出七十分以上的最低分

分组测试:

12.查看组内的最高工资和平均工资

​编辑

13.显示每种岗位的最低工资和平均工资

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

15.显示平均工资低于2000的部门和他的平均工资

测试准备:

(1)创建一个测试数据库

复制代码
create databate text_3_22;

(2)进入数据库

复制代码
use text_3_22;

(3)创建表并插入数据(我已经为你们准备好了,记得插入后再进行测试)

复制代码
-- 创建表结构
create table exam_result (
  id int unsigned primary key auto_increment,
  name varchar(20) not null comment '同学姓名',
  chinese float default 0.0 comment '语文成绩',
  math float default 0.0 comment '数学成绩',
  english float default 0.0 comment '英语成绩'
);

-- 插入测试数据
insert into exam_result (name, chinese, math, english) values
('唐三藏', 67, 98, 56),
('孙悟空', 87, 78, 77),
('猪悟能', 88, 98, 90),
('曹孟德', 82, 84, 67),
('刘玄德', 55, 85, 45),
('孙权', 70, 73, 78),
('宋公明', 75, 65, 30);

(4)记得检验自己插入的数据是否正确

复制代码
select *from exam_result;

更新测试 :

1.将孙悟空同学的数学成绩更新为80
复制代码
update exam_result set math=80 where name='孙悟空';

|-----------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| 更新前: | 更新后 |
| ​ | ​ |

2.将曹孟德同学的数学成绩变更为60分,数学成绩变更为70分
复制代码
update exam_result set math=60,chinese=70 
where name='曹孟德'; 

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 更新前: | 更新后 |
| | |

3.将总成绩后三名的同学,数学成绩加上三十分
复制代码
update exam_result set math=math+30 order 
by math+english+chinese asc limit 3;

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 更改前后三名 | 更改后后三名: |
| | |

删除测试:

4.删除孙悟空同学的成绩
复制代码
delete from exam_result where name='孙悟空';

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 删除前 | 删除后 |
| | |

5.删除总成绩最后一名的同学
复制代码
delete from exam_result order by english+math+chinese asc limit 1;

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 删除前: | 删除后: |
| | |

6.删除整张表的数据
复制代码
CREATE TABLE for_delete (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);

---准备一个测试表结构

insert for_delete (name) values('a'),('b'),('c');

----准备测试数据

|-------------------------|----------------------|
| 方案一:删除表 | 方案二:截断表 |
| delete from for_delete; | truncate for_delete; |

7.删除表中重复元素
复制代码
create table 1_distinct_text(
name varchar(20)
);
---创建测试表

insert 1_distinct_text values
('aaa'),('bbb'),('aaa'),('bbb'),('aaa'),('bbb');

|------------------------------------------|----------------------------------------------------|
| 创建相同的表结构 | 创建相同表结构并插入去重元素 |
| create table <新表名> like <原表名>; | create table <新表名> as select distinct *from <旧表名>; |
| 在新表中插入去重数据 | create table <新表名> as select distinct *from <旧表名>; |
| insert <新表名> select distinct *from<原表名>; | create table <新表名> as select distinct *from <旧表名>; |
| 删除旧表 ||
| drop table <旧表>; ||
| 改新表名为旧表 ||
| alter table <新表名> rename to <旧表名> ||

聚合测试:

8.统计不重复的数学成绩
复制代码
select count(math) from exam_result;

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 统计所有数学成绩 | 统计不重复数学成绩 |
| | |

9.统计数学成绩和
复制代码
select sum(math) from exam_result;
10.统计数学平均分

方案一:

复制代码
select sum(math)/count(math) from exam_result;

方案二:

复制代码
select avg (math) from exam_result;
11.找出七十分以上的最低分
复制代码
select min(math) from exam_result where math>70;

分组测试:

注:准备数据导入到数据库里面(scott_data.sql

导入操作在(Mysql的库操作-CSDN博客)中的数据恢复里面

案例:

  • 准备工作,创建一个雇员信息表(来自oracle 9i的经典测试表)
  • EMP员工表
  • DEPT部门表
  • SALGRADE工资等级表
  • 如何显示每个部门的平均工资和最高工资
12.查看组内的最高工资和平均工资
复制代码
select max(sal),avg(sal) from emp group by deptno;
13.显示每种岗位的最低工资和平均工资
复制代码
select min(sal),avg(sal) from emp group by job;
14.显示每个部门的每种岗位的平均工资和最低工资
复制代码
select min(sal),avg(sal) from emp group by deptno,jop;
15.显示平均工资低于2000的部门和他的平均工资
复制代码
select deptno ,avg(sal) deptsal from emp group by deptno
having deptsal<2000;
相关推荐
神明不懂浪漫5 分钟前
【第一章】MySQL简介
数据库·经验分享·笔记·mysql·oracle
山岚的运维笔记18 分钟前
mysql 专业笔记 -- 第 14 章:GROUP BY
运维·数据库·笔记·后端·学习·mysql·dba
zcn12638 分钟前
不同列or运算优化经验
数据库·sql优化改写
大梦想家a1 小时前
基于 Spring Boot 的物流运单管理系统后端设计与实现(JWT + MyBatis-Plus + MySQL)
spring boot·mysql·mybatis
ZYJCSZKJ3 小时前
基于地理位置围栏的短视频POI团购系统:LBS空间索引与流量分发实践
java·服务器·数据库
Mr.朱鹏11 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
摇滚侠11 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
qiuhaipeng111 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
云贝贝贝11 小时前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
wxwx_bscxy32212 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite