Última actividad 1733383616

Revisión 77b09db0e878889c34581633dc757d6ed0613cd3

dbexp.md Sin formato

openGauss 数据库中有下列表格

(1) student7412表

字段名 代码 类型 约束
学号 s_no char(8) 主键
姓名 sname char(8) 非空
性别 sex char(2)
出生日期 sbirthday Smalldatetime
学生所在院系编号 dno char(6)
专业代码 spno char(8)
班级编码 class_no char(4)

(2)course7412表

字段名 代码 类型 约束
课程编号 cno char(10) 主键
课程名称 cname char(20) 非空
专业代码 spno char(8)
课程类型编号 ctno int
理论学时 lecture int
实验学时 experiment int
开课学期 semester int
课程学分 credit int

(3)student_course7412表

字段名 代码 类型 约束
学号 s_no char(8)
上课编号 tcid smallint
学生成绩 score tinyint
主键为(学号,上课编号)

(4)teacher7412表

字段名 代码 类型 约束
教师编号 t_no char(8) 主键
教师姓名 t_name char(8) 非空
性别 t_sex char(2)
出生日期 t_birthday smalldatetime
教师所在院系编号 dno char(6)
职称 tech_title char(10)

(5)department7412系部表

字段名 代码 类型 约束
院系编号 dno char(6) 主键
院系名称 dept_name char(20) 非空
院系负责人 header char(8)

(6) speciality7412 专业信息表

字段名 代码 类型 约束
专业代码 spno char(8) 主键
院系编号 dno char(6) 非空
专业名称 spname char(20) 非空

(7)teacher_course7412 表

字段名 代码 类型 约束
上课编号 tcid smallint 主键
教师编号 t_no char(8)
专业代码 spno char(8)
班级编码 class_no char(4)
课程编号 cno char(10) 非空
学期 semester Char(6)
学年 schoolyear Char(10)

(8)class7412 班级表

字段名 代码 类型 约束
专业代码 spno char(8)
班级编码 class_no char(4)
班负责人 header char(8)
主键(专业代码,班级编码)

三、实验方法、步骤及结果测试

1、创建存储过程list_average_dpt,该存储过程接收院系编号(dno)和上课编号(tcid)作为输入参数,返回这个院系这门上课编号的学生的平均成绩。(在实验一创建的数据库的基础上完成操作) SQL语句(不是截图): SQL语句和执行结果截图显示:

2、执行存储过程list_average_dpt 语句(不是截图): 语句和执行结果截图显示:

3、编写存储过程将某班选修某门课程cno的所有学生的学号和上课编号tcid插入到student_course表中。(在实验一创建的数据库的基础上完成操作。 语义说明:teacher_course记录上课计划,在这个上课计划下只要这个学生在某个班级(class_no),就直接认定这个学生选择这个上课计划(类似必修课,无需学生主动选课),不需要再手动输入student_course表的数据。 思路: 1、 在不影响其他题目的前提下,可以先将student_course表清空 2、 通过合适的连接或子查询,找到sno对应的ticd,并将这个对应插入到student_course表中。 ) SQL语句(不是截图): SQL语句和执行结果截图显示:

4、执行3创建的存储过程 语句(不是截图): 语句和执行结果截图显示:

5、创建存储过程或函数,接受院系名称(dept_name)作为参数,展示该院系的学生基本情况包括学号、姓名、性别、出身年月、专业名称。 SQL语句(不是截图): SQL语句和执行结果截图显示: 6、执行5创建的存储过程

语句(不是截图): 语句和执行结果截图显示: