Mysql基础教程
参加课程
希望独立完成,挠挠头,出出汗,学会解决问题,学会有搜索、使用AI处理错误对后期工作只有好处
Mysql练习题2
1、 删除重复值 默认正确

现在有一个学生信息表stu_info_table,这张表存储了每位学生id、name(姓名)、class(班级)、grade(年级),现在我们想获取这个学校所有年级以及所有班级的信息,即哪些年级有哪些班级,该怎么获取?

stu_info_table表如下所示:

id name class grade
1 王小凤 一班 一年级
2 刘诗迪 一班 二年级
3 李思雨 一班 一年级
4 张文华 二班 二年级
5 张青云 二班 一年级"    

2、 行列互换 默认正确

现在我们有下面这么一个表row_col_table,这个表中每年每月的销量是一行数据:
year_num month_num sales
2019 1 100
2019 2 200
2019 3 300
2019 4 400
2020 1 200
2020 2 400

我们需要把上面这种纵向存储数据的方式改成下表所示的横向存储:

year_num m1 m2 m3 m4
2019 100 200 300 400
2020 200 400 600 800"    

3、 对成绩进行分组 默认正确

现在有一个某科目的学生成绩表subject_table,这张表存储了每位学生的id、score(成绩)以及其他信息,我们想知道60分以下、60-80分、80-100分这三个成绩段内分别有多少学生,该怎实现呢?

subject_table表如下所示:

id score
1 56
2 91
3 67
4 54
5 56
6 69"    

4、 周累计数据获取 默认正确

现在我们有一个订单明细表order_table,这张表中存储了order_id(订单id)、order_date(订单日期)以及其他订单相关信息,现在我们需要每天获取本周累计的订单数,本周累计是指本周一到获取数据当天,比如今天是周三,那么本周累计就是周一到周三。这个该怎么实现呢?

order_table表如下所示:

order_id order_date
1 2019/1/8
2 2019/1/9
3 2019/1/10
4 2019/1/11
5 2020/1/8
6 2020/1/9
7 2020/1/10"    

5、 计算用户留存情况 默认正确

现在有一张用户登陆表user_login,这张表记录了每个用户每次的登陆时间,uid(用户id)和login_time(登陆时间)。我们想看用户的次日留存数、三日留存数、七日留存数,只要用户从首次登陆以后再有登陆就算留存下来了,该怎么实现呢?

user_login表如下所示:

uid login_time
1 2019/1/1 6:00
1 2019/1/2 10:00
1 2019/1/4 19:00
2 2019/1/2 10:00
2 2019/1/3 9:00"    

6、 求累积和 默认正确

现在有一张2019年一整年的订单表consum_order_table,consum_order_table包含order_id(订单id)、uid(用户id)、amount(订单金额),现在我们想看下80%的订单金额最少是由多少用户贡献的,该怎么实现呢?

consum_order_table表如下所示:

order_id uid amount
201901 1 10
201902 2 20
201903 3 15
201904 3 15
201905 4 20
201906 4 20
201907 5 25
201908 5 25"    

7、 返回的行数是多少? 默认正确

Mysql中表student_table(id,name,birth,sex),插入如下记录:('1004' , '张三' , '2000-08-06' , '男');
('1005' , NULL , '2001-12-01' , '女');
('1006' , '张三' , '2000-08-06' , '女');
('1007' , ‘王五’ , '2001-12-01' , '男');
('1008' , '李四' , NULL, '女');
('1009' , '李四' , NULL, '男');
('1010' , '李四' , '2001-12-01', '女');
执行
select t1.*,t2.*
from (
select * from student_table where sex = '男' ) t1
right join
(select * from student_table where sex = '女') t2
on t1.birth = t2.birth and t1.name = t2.name ;

8、 删除商品表中价格大于3000的商品 默认正确

删除商品表中价格大于3000的商品

9、 表student_table(id,name,birth,sex),分别查询男生、女生的最大、最小出生日期 默认正确

10、 表student_table(id,name,birth,sex),查询不重复的姓名总数 默认正确

11、 简述如果ORDER BY子句后未指定ASC或DESC,默认使用哪个 默认正确

12、 paper表,现在要查询试卷名字包含""人人网""的所有数据 默认正确

13、 查询年龄在60岁以上的男性及年龄在55岁以上的女性的所有记录 默认正确

14、 sys_user 表的建表语句如下: 现需获取 18 岁以下,且姓名重复的数据 默认正确

15、 若要“查询选修了3门以上课程的学生的学号” 默认正确

16、 学生和成绩的数据库表,写一个sql语句求出每门课程的平均分 默认正确

17、 统计各年龄段员工数量 ?在员工表中,除了上述字段外,还包括员工的出生年份(birth_year) 默认正确

18、 计算员工薪资排名 ?编写一个SQL查询,为每个员工计算其在部门内的薪资排名 默认正确

19、 SQL查询,查询每个学生的最近一次考试成绩 默认正确

20、 查询每门课程的平均分和最高分 默认正确

给定课程表(courses)和成绩表(grades),其中课程表包含课程ID(course_id)和课程名称(course_name),成绩表包含课程ID、学生ID(student_id)和分数(grade)

21、 查询每个学生的不及格课程数量 默认正确

给定学生表(students)、课程表(courses)和成绩表(grades),其中学生表包含学生ID(student_id)和学生姓名(student_name),课程表包含课程ID(course_id)和课程名称(course_name),成绩表包含学生ID、课程ID和分数(grade)。请编写一个SQL查询,查询每个学生的不及格课程数量(分数小于60分)。    

使用 Ctrl+D 可将网站添加到书签
收藏网站
扫描二维码
关注早实习微信公众号
官方公众号
Top