培训机构常见sql查询练习题目,你会做吗?
Posted 臭小子帅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了培训机构常见sql查询练习题目,你会做吗?相关的知识,希望对你有一定的参考价值。
文章目录
练习下常见的sql查询,总有你意想不到的收获!
对于一些复杂的查询,学会拆解,先查询部分数据,在逐步组合成完整查询,重点是学习实现的思路
不要背答案,学会理解
后面会给出练习的sql和答案,先自己尝试一下吧
一、班级、学生、成绩表查询
已知以下表结构
班级表(class)
编号 | 班级名称 |
---|---|
id | class_name |
1 | 一班 |
2 | 二班 |
3 | 三班 |
4 | 四班 |
5 | 五班 |
学生表(student)
编号 | 学号 | 姓名 | 性别 | 所属班级 |
---|---|---|---|---|
id | stu_no | stu_name | stu_gender | class_id |
1 | 2020001 | 张三 | 男 | 1 |
2 | 2020002 | 李四 | 男 | 1 |
3 | 2020003 | 李丽 | 女 | 2 |
4 | 2020004 | 赵婷 | 女 | 3 |
5 | 2020005 | 王五 | 男 | 3 |
成绩表(score)
学生 | 语文 | 数学 |
---|---|---|
stu_id | chinese | math |
1 | 70 | 47 |
2 | 80 | 60 |
3 | 50 | 82 |
4 | 80 | 90 |
业务场景限制:
- 一个班级有多名学生,一名学生只属于一个班级
- 学生有可能没有成绩
题目:
-
查询所有学生的信息(学号,姓名,性别,班级名称)
-
查询所有人(包括没有成绩的学生)的课程分数(学号,姓名,性别,班级名称,语文分数,数学分数)
-
查询语文分数比“张三”高的学生(学号,姓名,性别,班级名称,语文分 数)
-
查询各科都合格(分数>=60)的学生(学号,姓名,语文分数,数学分数)
-
查询出所有班级的人数(若没有人,人数显示为0)
-
查询班级人数>=2的班级(班级编号,班级名称,人数)
二、学生、课程、成绩、教师表查询
有以下四个表,表名称及表结构如下:
student(sno,sname,sage,ssex) 学生表
course(cno,cname,tno) 课程表
sc(sno,cno,score) 成绩表
teacher(tno,tname) 教师表
-
查询课程1的成绩比课程2的成绩高的所有学生的信息
-
查询平均成绩大于60分的同学的学号和平均成绩
-
查询学过‘李四’老师所教所有课程的所有同学的学号,姓名
-
查询姓“李”得老师的个数
-
查询每门课程的选修人数(课程名称,学生数量)–存在没有人选的课程
-
删除“1002”同学的“1”课程的成绩
-
查询选修人数最多的课程(课程id,课程名称,学生数量)–考虑有多门课程都是选修最多的情况
三、学生成绩表(student_score) 查询
下面是学生成绩表(student_score)结构说明
字段名称 | 字段解释 | 字段类型 | 字段长度 |
---|---|---|---|
student_id | 学号 | 字符 | 8 |
student_name | 姓名 | 字符 | 50 |
student_gender | 性别 | 字符(男/女) | 4 |
course_id | 课程号 | 字符 | 5 |
score | 分数 | 数值 | 3 |
ismakeup | 当前考试是否为补考 | 字符(补考:1;非补考:0) | 2 |
下面是课程表(course)说明
字段名称 | 字段解释 | 字段类型 | 字段长度 | 约束 |
---|---|---|---|---|
course_id | 课程号 | 字符 | 5 | PK |
course_name | 课程名 | 字符 | 30 | Not null |
course_desc | 课程介绍 | 字符 | 60 |
1、查找第一次考试后所有需要补考(小于60分)的学生姓名和这门课程的名称和成绩;
2、查询每个学生第一次考试后需要补考(小于60分)的课程平均分和科目数
3、查询所有参加了补考的学生的学生姓名,课程名称,补考成绩和非补考成绩;
四、成绩表(score)查询
有一张表score,三个字段名,姓名,课程,分数,数据如下,请写一条sql语句,查询出每门课程都大于等于80分的学生信息
name | course | score |
---|---|---|
张三 | 语文 | 81 |
张三 | 数学 | 75 |
李四 | 语文 | 76 |
王五 | 语文 | 81 |
王五 | 数学 | 100 |
王五 | 英语 | 90 |
五、 学生表(student)查询
有一张表student,包括字段id和name,请写一条sql语句,将表中name字段中重复的记录删除,只保留重复数据中的id最大的那一条数据。
id | name |
---|---|
1 | 张三 |
2 | 张三 |
3 | 李四 |
4 | 王五 |
5 | 王五 |
6 | 王五 |
要求只留下:2 张三, 3 李四, 6 王五 这三条记录
六、 部门员工表(emp、dept)查询
emp:
empno int(员工编号) ,ename varchar(50)(员工姓名) ,job varchar(100) (工作岗位),mgr int (上级领导编号),hiredate date(雇佣日期),sal int(薪金),comm int(佣金) deptno int (部门编号)
提示:工资=薪金+佣金
dept表:
deptno int (部门编号) , dname 部门名称 loc 地点
- 列出在每个部门工作的员工数量,平均工资
- 列出所有员工的姓名,部门名称和工资
- 列出所有部门的详细信息和部门人数
- 列出各种工作的最低工资
- 列出各个部门的manager的最低薪金(若是manager,其job的值为manageer)
- 列出受雇日期早于其直接上级的所有员工
- 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
- 列出所有‘clerk’(办事员)岗位的姓名以及部门名称
- 列出最低薪金大于6500的各种工作
- 列出在研发部工作的员工的姓名,假定不知道销售部的部门编号
七、SQL数据库表名为guest,请简答
账号 | 消费 | 时间 | 金额 | 班次 |
---|---|---|---|---|
accounts | details | date | money | class |
s0001 | 房费 | 2020-01-01 | 280 | 001 |
s0001 | 酒水 | 2020-01-02 | 120 | 001 |
s0001 | 房费 | 2020-01-08 | 300 | 003 |
s0002 | 酒水 | 2020-01-29 | 50 | |
s0003 | 房费 | 2020-01-31 | 180 | 002 |
s0004 | 房费 | 2020-02-01 | 230 | 001 |
s0005 | 酒水 | 2020-02-01 | 100 | |
s0005 | 房费 | 2020-02-02 | 128 | 001 |
- 查询出房费都大于200的账号
- 查询出1月份每个账号酒水和房费的总金额
- 将不是房费的班次都更改为‘001’
- 查询出消费都大于100的账号
数据库脚本和答案来了
https://blog.csdn.net/shuai8624/article/details/116854237
以上是关于培训机构常见sql查询练习题目,你会做吗?的主要内容,如果未能解决你的问题,请参考以下文章