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创建的存储过程
语句(不是截图): 语句和执行结果截图显示: