数据库查询——选课系统
目录
第1关 数据库系统的插入
数据库表设计
头歌实验编程要求
第2关 简单查询
头歌实验编程要求
第3关 进阶查询
头歌实验编程要求
第4关 复杂查询
头歌实验编程要求
第1关 数据库系统的插入
本关任务:插入选课系统数据库的表数据。
相关知识
数据库表设计
学生要进行选课,我们就需要有相应的学生表(student
)、课程表(course
)和学生选课表(dbsc
)。因此基本表设计为如下:
学生表(student
)
我们将如下表结构数据对应插入:
Sno[char(7)] | Sname[varchar(20)] | Ssex[char(2)] | Sage[int] | Sdept[varchar(30)] |
---|---|---|---|---|
9512101 | 李勇 | 男 | 19 | 计算机系 |
9512102 | 刘晨 | 男 | 20 | 计算机系 |
9512103 | 王敏 | 女 | 20 | 计算机系 |
9521101 | 张立 | 男 | 22 | 信息系 |
9521102 | 吴宾 | 女 | 21 | 信息系 |
9521103 | 张海 | 男 | 20 | 信息系 |
9531101 | 钱小平 | 女 | 18 | 数学系 |
9531102 | 王大力 | 男 | 19 | 数学系 |
课程表(course
)
Cno[char(10)] | Cname[varchar(20)] | Ccredit[int] | Semster[int] | Period[int] |
---|---|---|---|---|
C01 | 计算机文化学 | 3 | 1 | 41 |
C02 | VB | 2 | 3 | 61 |
C03 | 计算机网络 | 4 | 7 | 14 |
C04 | 数据库基础 | 6 | 6 | 24 |
C05 | 高等数学 | 8 | 2 | 19 |
C06 | 数据结构 | 5 | 4 | 55 |
学生选课表(dbsc
)
ScID[int] | Sno[char(7)] | Cno[char(10)] | Grade[int] | isTec[varchar(10)] |
---|---|---|---|---|
1 | 9512101 | c01 | 90 | 必修 |
2 | 9512101 | c02 | 86 | 选修 |
3 | 9512101 | c06 | 45 | 必修 |
4 | 9512102 | c02 | 78 | 选修 |
5 | 9512102 | c04 | 66 | 必修 |
6 | 9521102 | c01 | 82 | 选修 |
7 | 9521102 | c02 | 75 | 选修 |
8 | 9521102 | c04 | 92 | 必修 |
9 | 9521102 | c05 | 50 | 必修 |
10 | 9521103 | c02 | 68 | 选修 |
11 | 9521103 | c06 | 56 | 必修 |
12 | 9531101 | c01 | 80 | 选修 |
13 | 9531101 | c05 | 95 | 必修 |
14 | 9531102 | c05 | 85 | 必修 |
头歌实验编程要求
代码补充,具体任务如下:
- 往学生表(
student
)、课程表(course
)和学生选课表(dbsc
)中插入相应数据。
USE School;#请在此添加实现代码
########## Begin ##########
########## 插入学生表(Student)相应数据 ##########
insert into student(Sno,Sname,Ssex,Sage,Sdept) values(9512101,'李勇','男',19,'计算机系'),(9512102,'刘晨','男',20, '计算机系'),(9512103,'王敏', '女',20,'计算机系'),(9521101,'张立','男',22,'信息系'),(9521102,'吴宾','女',21,'信息系'),(9521103,'张海','男',20,'信息系'),(9531101,'钱小平','女',18,'数学系'),(9531102,'王大力','男',19,'数学系');
########## 插入课程表(Course)相应数据 ##########
insert into course(Cno,Cname,Ccredit,Semster,Period) values('C01','计算机文化学',3,1,41),('C02','VB',2,3,61),('C03','计算机网络',4,7,14),('C04','数据库基础',6,6,24),('C05','高等数学',8,2,19),('C06','数据结构',5,4,55);
########## 插入学生选课表(DBSC)相应数据 ##########
insert into dbsc(ScID,Sno,Cno,Grade,isTec) values(1,9512101,'c01',90,'必修'),(2,9512101,'c02',86,'选修'),(3,9512101,'c06',45,'必修'),(4,9512102,'c02',78,'选修'),(5,9512102,'c04',66,'必修'),(6,9521102,'c01',82,'选修'),(7,9521102,'c02',75,'选修'),(8,9521102,'c04',92,'必修'),(9,9521102,'c05',50,'必修'),(10,9521103,'c02',68,'选修'),(11,9521103,'c06',56,'必修'),(12,9531101,'c01',80,'选修'),(13,9531101,'c05',95,'必修'),(14,9531102,'c05',85,'必修');
########## End ##########
########## 查询表数据 ##########
SELECT * FROM student;
SELECT * FROM course;
SELECT * FROM dbsc;
第2关 简单查询
任务描述
本关任务:编写sql
语句,输出符合条件的查询结果。
相关知识
学生表(student
)
我们将如下表结构数据对应插入:
Sno[char(7)] | Sname[varchar(20)] | Ssex[char(2)] | Sage[int] | Sdept[varchar(30)] |
---|---|---|---|---|
9512101 | 李勇 | 男 | 19 | 计算机系 |
9512102 | 刘晨 | 男 | 20 | 计算机系 |
9512103 | 王敏 | 女 | 20 | 计算机系 |
9521101 | 张立 | 男 | 22 | 信息系 |
9521102 | 吴宾 | 女 | 21 | 信息系 |
9521103 | 张海 | 男 | 20 | 信息系 |
9531101 | 钱小平 | 女 | 18 | 数学系 |
9531102 | 王大力 | 男 | 19 | 数学系 |
课程表(course
)
Cno[char(10)] | Cname[varchar(20)] | Ccredit[int] | Semester[int] | Period[int] |
---|---|---|---|---|
C01 | 计算机文化学 | 3 | 1 | 41 |
C02 | VB | 2 | 3 | 61 |
C03 | 计算机网络 | 4 | 7 | 14 |
C04 | 数据库基础 | 6 | 6 | 24 |
C05 | 高等数学 | 8 | 2 | 19 |
C06 | 数据结构 | 5 | 4 | 55 |
学生选课表(dbsc
)
其中Sno
字段为student
表的外键,Cno
字段为course
表的外键。
ScID[int] | Sno[char(7)] | Cno[char(10)] | Grade[int] | isTec[varchar(10)] |
---|---|---|---|---|
1 | 9512101 | c01 | 90 | 必修 |
2 | 9512101 | c02 | 86 | 选修 |
3 | 9512101 | c06 | 45 | 必修 |
4 | 9512102 | c02 | 78 | 选修 |
5 | 9512102 | c04 | 66 | 必修 |
6 | 9521102 | c01 | 82 | 选修 |
7 | 9521102 | c02 | 75 | 选修 |
8 | 9521102 | c04 | 92 | 必修 |
9 | 9521102 | c05 | 50 | 必修 |
10 | 9521103 | c02 | 68 | 选修 |
11 | 9521103 | c06 | 56 | 必修 |
12 | 9531101 | c01 | 80 | 选修 |
13 | 9531101 | c05 | 95 | 必修 |
14 | 9531102 | c05 | 85 | 必修 |
头歌实验编程要求
代码补充,具体任务如下:
查询计算机系全体学生的姓名;
查询考试成绩不及格的学生的学号;
查询信息系年龄在
20 ~ 23
岁之间的学生的姓名以及其所在系和年龄;查询选修修了课程
C02
的学生的学号以及其成绩,查询结果按成绩降序排列;统计学生总人数。
#********* Begin *********#
echo "
select Sname, Sdept from student where Sdept = '计算机系';select Sno from dbsc where Grade < 60;select Sname, Sdept, Sage from student where Sage >=20 and Sage <=23 and Sdept = '信息系';select Sno, Grade from dbsc where Cno = 'c02' order by Grade desc;select count(*) from student;"
#********* End *********#
第3关 进阶查询
任务描述
本关任务:编写sql
语句,输出符合条件的查询结果。
相关知识
学生表(student
)
我们将如下表结构数据对应插入:
Sno[char(7)] | Sname[varchar(20)] | Ssex[char(2)] | Sage[int] | Sdept[varchar(30)] |
---|---|---|---|---|
9512101 | 李勇 | 男 | 19 | 计算机系 |
9512102 | 刘晨 | 男 | 20 | 计算机系 |
9512103 | 王敏 | 女 | 20 | 计算机系 |
9521101 | 张立 | 男 | 22 | 信息系 |
9521102 | 吴宾 | 女 | 21 | 信息系 |
9521103 | 张海 | 男 | 20 | 信息系 |
9531101 | 钱小平 | 女 | 18 | 数学系 |
9531102 | 王大力 | 男 | 19 | 数学系 |
课程表(course
)
Cno[char(10)] | Cname[varchar(20)] | Ccredit[int] | Semester[int] | Period[int] |
---|---|---|---|---|
C01 | 计算机文化学 | 3 | 1 | 41 |
C02 | VB | 2 | 3 | 61 |
C03 | 计算机网络 | 4 | 7 | 14 |
C04 | 数据库基础 | 6 | 6 | 24 |
C05 | 高等数学 | 8 | 2 | 19 |
C06 | 数据结构 | 5 | 4 | 55 |
学生选课表(dbsc
)
其中Sno
字段为student
表的外键,Cno
字段为course
表的外键。
ScID[int] | Sno[char(7)] | Cno[char(10)] | Grade[int] | isTec[varchar(10)] |
---|---|---|---|---|
1 | 9512101 | c01 | 90 | 必修 |
2 | 9512101 | c02 | 86 | 选修 |
3 | 9512101 | c06 | 45 | 必修 |
4 | 9512102 | c02 | 78 | 选修 |
5 | 9512102 | c04 | 66 | 必修 |
6 | 9521102 | c01 | 82 | 选修 |
7 | 9521102 | c02 | 75 | 选修 |
8 | 9521102 | c04 | 92 | 必修 |
9 | 9521102 | c05 | 50 | 必修 |
10 | 9521103 | c02 | 68 | 选修 |
11 | 9521103 | c06 | 56 | 必修 |
12 | 9531101 | c01 | 80 | 选修 |
13 | 9531101 | c05 | 95 | 必修 |
14 | 9531102 | c05 | 85 | 必修 |
头歌实验编程要求
代码补充,具体任务如下:
- 查询所有姓‘ 张 ’学生的详细信息;
- 查询信息系,数学系和计算机系学生的姓名和性别;
- 查询选修课程的人数,列出课程号和人数;
- 查询选修了
3
门课程以上的学生的学号; - 查询计算机系学生的选课情况,要求列出学生的名字,所修课的课程号和成绩。
注意:编写查询语句时,需要查询列表所有信息时,请使用 表名.*
(由于评测原因指定这样书写,实际自己使用可以直接*
)。
#********* Begin *********#
echo "
select student.* from student where Sname like '张%';select Sname, Ssex, Sdept from student where Sdept in ('计算机系','信息系','数学系');select Cno, count(*) from dbsc where isTec= '选修' group by Cno;select Sno from dbsc group by Sno having count(*) > 3;select Sname,Cno,Grade from dbsc left join student on student.Sno=dbsc.Sno where student.Sdept='计算机系';"
#********* End *********#
第4关 复杂查询
任务描述
本关任务:编写sql
语句,输出符合条件的查询结果。
相关知识
学生表(student
)
我们将如下表结构数据对应插入:
Sno[char(7)] | Sname[varchar(20)] | Ssex[char(2)] | Sage[int] | Sdept[varchar(30)] |
---|---|---|---|---|
9512101 | 李勇 | 男 | 19 | 计算机系 |
9512102 | 刘晨 | 男 | 20 | 计算机系 |
9512103 | 王敏 | 女 | 20 | 计算机系 |
9521101 | 张立 | 男 | 22 | 信息系 |
9521102 | 吴宾 | 女 | 21 | 信息系 |
9521103 | 张海 | 男 | 20 | 信息系 |
9531101 | 钱小平 | 女 | 18 | 数学系 |
9531102 | 王大力 | 男 | 19 | 数学系 |
课程表(course
)
Cno[char(10)] | Cname[varchar(20)] | Ccredit[int] | Semester[int] | Period[int] |
---|---|---|---|---|
C01 | 计算机文化学 | 3 | 1 | 41 |
C02 | VB | 2 | 3 | 61 |
C03 | 计算机网络 | 4 | 7 | 14 |
C04 | 数据库基础 | 6 | 6 | 24 |
C05 | 高等数学 | 8 | 2 | 19 |
C06 | 数据结构 | 5 | 4 | 55 |
学生选课表(dbsc
)
其中Sno
字段为student
表的外键,Cno
字段为course
表的外键。
ScID[int] | Sno[char(7)] | Cno[char(10)] | Grade[int] | isTec[varchar(10)] |
---|---|---|---|---|
1 | 9512101 | c01 | 90 | 必修 |
2 | 9512101 | c02 | 86 | 选修 |
3 | 9512101 | c06 | 45 | 必修 |
4 | 9512102 | c02 | 78 | 选修 |
5 | 9512102 | c04 | 66 | 必修 |
6 | 9521102 | c01 | 82 | 选修 |
7 | 9521102 | c02 | 75 | 选修 |
8 | 9521102 | c04 | 92 | 必修 |
9 | 9521102 | c05 | 50 | 必修 |
10 | 9521103 | c02 | 68 | 选修 |
11 | 9521103 | c06 | 56 | 必修 |
12 | 9531101 | c01 | 80 | 选修 |
13 | 9531101 | c05 | 95 | 必修 |
14 | 9531102 | c05 | 85 | 必修 |
头歌实验编程要求
代码补充,具体任务如下:
- 查询选了选修课程的学生,并列出学生的学号和姓名;
- 查询每名学生的选课门数和平均成绩,并列出相应信息;
- 查询选课门数等于或大于
4
门的学生的平均成绩和选课门数; - 查询信息系选修
VB
课程的学生的成绩,要求列出学生姓名,课程名和成绩; - 编写修改
sql
语句,将成绩小于60
分的加5
分。
注意:编写查询语句时,需要查询列表所有信息时,请使用 表名.*
(由于评测原因指定这样书写,实际自己使用可以直接*
)。
#********* Begin *********#
echo "
select distinct dbsc.Sno, student.Sname from dbsc join student on student.Sno=dbsc.Sno where dbsc.isTec = '选修';select Sname, count(*), avg(Grade) from dbsc join student on student.Sno=dbsc.Sno group by dbsc.Sno;select avg(Grade),count(*) from dbsc join student on student.Sno=dbsc.Sno group by dbsc.Sno having count(*) >= 4;select student.Sname, dbsc.Cno, dbsc.Grade from student left join dbsc on student.Sno=dbsc.Sno
where student.Sdept='信息系' and dbsc.isTec='选修' and Cno='C02';update dbsc set Grade=Grade+5 where Grade < 60;"
#********* End *********#
数据库查询——选课系统相关推荐
- 基于html5的智慧校园选课系统的设计与实现
摘要:本设计运用PHP为开发语言, 使用B/S架构,运用MySQL数据库,分管理员.教师和学生三个部分对校园选课系统进行了设计,实现了在线选择.退选.增加.删除课程等功能,以期开发出操作方便.易于维护 ...
- 选课系统 - 数据库查询(四)
@R星校长 第3关:进阶查询 学生表(student) 我们将如下表结构数据对应插入: Sno[char(7)] Sname[varchar(20)] Ssex[char(2)] Sage[int] ...
- 采用ASP.NET使用C#.NET语言开发的在线学生选课系统(源码+数据库+论文)
随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨.针对学生选课这一环节,本系统从学生网上自主选课以及教师的课程信息发布两个大方面进行了设计,基本实现了学生的在线信息查询.选课功能.教师添加课 ...
- 数据库大作业——学生选课系统(基于SpringBoot+Mysql)
文章目录 一.需求分析 1.项目背景 2.项目目标 二.系统功能分析 1.多角色划分 2.模块功能详述 三.系统架构 1.技术选型 2.系统分析 3.架构设计 4.系统演变 四.数据库设计 1.概念结 ...
- 数据库 - 02 MySQL学生选课系统
MySQL学生选课系统 1.设计背景 该练习主要针对学生选课系统而设计,其中设计到三张表,分别为学生表,课程表,学生和课程对应的关联表. 学生表主要用于存储学生信息,包括姓名,性别,地址,电话等信息. ...
- 数据库设计之学生选课系统
版权声明:对于本博客所有原创文章,允许个人.教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者.出处及本声明. 博客地址:http://blog.csdn.net/s ...
- 数据库设计之学生选课系统_转载
博客地址:http://blog.csdn.net/shuxiao9058 原始作者:季亚 一.概要设计 1.1 目的和意义 随着无纸化办公的普遍实现,信息的自动处理以及网络式的信息交互方式已经被人们 ...
- MySQL设计学生选课系统(关系型数据库概论)
/* 关系型数据库概论 1.-- DQL.DDL.DML.DCL DQL数据查询语言: 用来查询表信息,select.from.where DDL数据定义语言:用来创建数据库中的各种对象--表.视图, ...
- 学生选课系统 数据库课程设计
数据库课程设计报告 设计题目 学生选课系统 专 业 计算机科学与技术 班 级 计1101 学 号 姓 名 寸利芳 ...
- 数据库小组作业-学生选课系统(java+java swing+mysql实现)
最近数据库老师要求组一个小组并且完成一个题目 我们组选择的是学生选课系统,恰巧这学期刚好在学java,所以就用java swing来写界面,数据库使用mysql 注:开发中使用的idea版本为2020 ...
最新文章
- C/C++中二维数组作函数形参时,调用函数时,可传递的实参类型的小结
- OpenGL渲染流水中的处理步骤
- YYCache 源码学习(一):YYMemoryCache
- Linux之因BASH造成的键盘错误和环境问题
- 对象存储/编码/解码
- 博客开张了!博客开张了!博客开张了!
- boost::endian::order的用法测试程序
- ubuntu vnc 远程连接桌面
- Linux mysql.plugin_Linux下MySQL安装
- server2003虚拟机损坏后的文件找回
- flash 与随机性:随机抽取(2)
- Java基础练习之流程控制(三)
- BZOJ4025 : 二分图
- 2020软考数据库系统工程师-下午案例分析真题解析视频-任铄-专题视频课程
- MT9255无法使用mm指令编译某个模块的问题
- 我用Python爬取美食网站3032个菜谱并分析,没有我不会做的菜!
- appium的安装+连接夜神模拟器控制app
- python画生肖兔
- Smack核心机制浅析
- HPRD数据库HPRD_Release9_062910表中最后一列RefSeq字段的含义
热门文章
- 国际结算三大方式之一—信用证 Letter of Credit(L/C)
- photoshop 技巧
- 【第2重磅】王者荣耀「绝悟」升级,全英雄池解禁
- 刘德华--2初恋时节
- 最新微信域名防封_微信二级不死域名真的不死吗
- 【茶知识】普洱茶四大茶区的区别特点
- 空手套白狼-我的互联网草根创业亲身经历
- mysql 安装失败原因大全(diao ,基本都让我给踩了个遍,这运气...)
- linux开机自检时间长,Linux 开机自检的设置(tune2fs和fsck)
- [高项]管理沟通VS控制沟通