数据库实验:学生管理系统数据库。

数据库表各个表数据如下

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

建表语句

向tab_student中插入数据
INSERT INTO tab_student VALUES(‘S001’,‘李四’,‘男’,‘2000.1.1’,‘16010101’,2016,‘0101’)
INSERT INTO tab_student VALUES(‘S002’,‘李三’,‘男’,‘2000.3.5’,‘16010101’,2016,‘0101’)
INSERT INTO tab_student VALUES(‘S003’,‘李五’,‘男’,‘1999.3.2’,‘16010101’,2016,‘0101’)
INSERT INTO tab_student VALUES(‘S004’,‘赵刚’,‘男’,‘1999.10.2’,‘16010201’,2016,‘0102’)
INSERT INTO tab_student VALUES(‘S005’,‘赵水’,‘女’,‘1999.9.9’,‘16010201’,2016,‘0102’)
INSERT INTO tab_student VALUES(‘S006’,‘赵火’,‘女’,‘2000.9.9’,‘16010101’,2016,‘0101’)
INSERT INTO tab_student VALUES(‘S007’,‘刘芳’,‘女’,‘1999.6.1’,‘19020101’,2016,‘0201’)

向tab_score中插入数据
INSERT INTO tab_score VALUES(‘S001’,‘C002’,‘T003’,90)
INSERT INTO tab_score VALUES(‘S001’,‘C003’,‘T001’,85)
INSERT INTO tab_score VALUES(‘S001’,‘C010’,‘T005’,95)
INSERT INTO tab_score VALUES(‘S002’,‘C002’,‘T003’,80)
INSERT INTO tab_score VALUES(‘S002’,‘C003’,‘T001’,65)
INSERT INTO tab_score VALUES(‘S003’,‘C002’,‘T003’,60)
INSERT INTO tab_score VALUES(‘S003’,‘C003’,‘T001’,95)
INSERT INTO tab_score VALUES(‘S004’,‘C010’,‘T005’,77)
INSERT INTO tab_score VALUES(‘S005’,‘C011’,‘T001’,66)
INSERT INTO tab_score VALUES(‘S006’,‘C002’,‘T003’,100)
INSERT INTO tab_score VALUES(‘S006’,‘C003’,‘T001’,65)
INSERT INTO tab_score VALUES(‘S007’,‘C010’,‘T005’,55)

连接查询

查询全校的教师的工号、姓名、所在学院名

Select tno,tname,instname From tab_teacher,tab_institute where tab_teacher.instno=tab_institute.instno

在这里插入图片描述

查询授课教师的工号、姓名、讲授课程名

Select tab_teacher.tno,tname,tab_course.cname from tab_teacher,tab_course,tab_score where tab_teacher.tno=tab_score.tno

在这里插入图片描述

查询 “数据结构”课程的学生的学号、姓名、课程名、成绩、任课教师名
Select tab_student.sno,tab_student.sname,tab_course_cname,tab_score.score,tab_teacher.tname from tab_student,tab_course,tab_score,tab_teacher where tab_student.sno=tab_score.sno AND tab_course.cno=tab_score.cno AND tab_teacher.tno=tab_score.tno AND tab_course.cname=’数据结构’

在这里插入图片描述

查询“计算机学院”所有学生的学号、姓名、课程名、成绩、任课教师名

Select tab_student.sno,tab_student.sname,tab_course.cname,tab_score.score,tab_teacher.tname from tab_student,tab_course,tab_score,tab_teacher,tab_major,tab_institue where tab_institue.instname=’计算机学院’ AND tab_institue.instno=tab_major.instno AND tab_student.sno=tab_score.sno AND tab_teacher.tno=tab_score.tno AND tab_course.cno=tab_score.cno AND tab_major.majorno=tab_student.majorno
在这里插入图片描述

查询所有授课的“教授”的工号、姓名和授课课程名
Select tab_teacher.tno,tab_teacher.tname,tab_course.cname from tab_teacher,tab_course,tab_score where tab_teacher.title=’教授’ AND tab_teacher.tno=tab_score.tno AND tab_score.cno=tab_course.cno

在这里插入图片描述

嵌套查询的操作练习

Select * from tab_teacher where tab_teacher.instno IN (select tab_institue.instno from tab_institue where tab_institue.instname=’计算机学院’)
在这里插入图片描述

2)查询“计算机学院”的课程记录
Select * from tab_course where tab_course.majoyno IN (select tab_major.majoyno from tab_major where tab_major.instno =(select tab_institue.instno from tab_institue where tab_institue.instname=’计算机学院’) ))
在这里插入图片描述

3)查询讲授“数据库”课程的教师记录
Select * from tab_teacher where tab_teacher.tno =(select tab_score.tno from tab_score where tab_score.cno =(select tab_course.cno from tab_course where tab_course.cname=’数据库’))
在这里插入图片描述

4)查询选修“数据结构”课程的学生记录
Select * from tab_student where tab_student.sno IN (select tab_score.sno from tab_score where tab_score.cno =(select tab_course.cno from tab_course where tab_course.cname=’数据结构’))
在这里插入图片描述

5)查询“C002”课程成绩第一名的学生的学号与姓名

SELECT sno,sname FROM tab_student WHERE sno=(SELECT sno FROM tab_score WHERE score=(SELECT MAX(score) FROM tab_score WHERE cno=‘C002’))

6)查询“C001”课程成绩高于“李四”的学生的学号与成绩
(这个SQL语句不太会写)

以下这一句SQL有误,但暂时我不知道错在哪,该如何改。
SELECT sno,score FROM tab_score WHERE cno=‘C002’ AND score IN (SELECT score FROM tab_score WHERE score>(SELECT score FROM tab_score WHERE cno=‘C002’ AND sno=(SELECT sno FROM tab_student WHERE sname=‘李四’))

7)查询所有授课的“教授”的工号、姓名和授课课程

Select distinct tab_teacher.tno,tab_teacher.tname,tab_course.cname from tab_teacher,tab_course,tab_score
where tab_course.cno IN
(select tab_score.cno from tab_score where tab_score.tno IN
(select tab_teacher.tno from tab_teacher where tab_teacher.title=‘教授’)) AND tab_teacher.title=‘教授’

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据库实验是一门重要的课程,学生管理系统是其中一个经典的实验题目。在这个实验中,我们需要设计一个能够管理学生信息的数据库系统。 首先,我们需要设计数据库的结构。这个学生管理系统需要包含几个基本的表,比如学生信息表、课程信息表、成绩表等。每个表都应该包含一些必要的字段,比如学生的学号、姓名、性别,课程的编号、名称,成绩等。这些字段的类型和约束需要根据需求进行合理的设计。 接下来,我们可以通过SQL语句建立这些表,并添加一些初始数据。比如,我们可以插入一些学生信息、课程信息和成绩数据,以便后续的操作和查询。 在学生管理系统中,我们需要实现一些基本的功能,比如添加学生信息、删除学生信息、修改学生信息等。这些功能可以通过编写对应的SQL语句来实现。比如,如果我们要添加一个学生的信息,我们可以使用INSERT INTO语句将学生的相关信息插入到学生信息表中。 除了基本的功能外,学生管理系统还可以提供一些高级的查询功能。比如,我们可以查询某个学生的所有课程成绩,或者查询某个课程的平均成绩等。这些查询可以通过编写复杂的SQL语句来实现。 最后,为了提高系统的性能和安全性,我们可以对数据库进行优化和加密处理。比如,我们可以建立索引来加快查询速度,使用事务来保证数据的一致性,同时也需要注意保护好数据库的账户和密码,防止被非法操作和攻击。 总之,学生管理系统是一个非常好的实践项目,通过设计和实现这个系统,可以更好地理解和掌握数据库的相关知识和技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abner_iii

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值