一、 程序设计内容及要求
课程设计
创建student_dissertation数据库,在该数据库中创建4张数据表:t_student(学生表)、t_department(专业表)、t_dissertation(课题表)、t_s_dissertation(选题表),它们表结构设计如下:
2)对各表输入以下数据:
操作要求:
1、 为各表设置主键
2、 查询要求得到所有专业号为1的男生的学生信息
3、 查询得到所有电子系男生的学生信息
4、 创建视图,显示学生所选课题还未通过审批的信息
5、 创建存储过程,通过指定专业,返回该专业所有学生的基本信息
6、 创建触发器,当某课题被删除时,选题表中相关记录也同时被删除
7、 建立数据库相关表之间的参照完整性约束,均设置为级联
二、程序实现思路
1、建立数据库
2、建立四张表格,并且给是主键的插入主键PRIMARY KEY
3、往表格里用insert…values插入多条记录
V-R图:
三、 程序清单或正文
1.表格插入记录及为各表设置主键
2.查询要求得到所有专业号为1的男生的学生信息
/查询要求得到所有专业号为1的男生的学生信息/
select * from t_student where departmentid = 1 and studentsex = ‘男’;
3.查询得到所有的电子系男生的学生信息
/查询得到所有电子系男生的学生信息/
/查询得到所有电子系男生的学生信息/
select * from t_student where departmentid =
(select departmentid from t_department
where departmentname = ‘电子系’) and studentsex = ‘男’;
4.创建视图显示学生所选课题还未通过审批的信息
/创建视图,显示学生所选课题还未通过审批的信息/
create view new_view
as select * from t_s_dissertation where state = ‘待审批’;
select * from new_view;/查看视图/
5.创建储存过程,通过指定专业,返回该专业的所有学生的基本信息
/创建存储过程,通过指定专业,返回该专业所有学生的基本信息/
DELIMITER //
create PROCEDURE pr_getmassage(IN departmentname1 char(50))
BEGIN
select * from t_student where t_student.departmentid in
(select departmentid from t_department where departmentname=departmentname1);
END;
//
CALL pr_getmassage(‘电子系’);
;
Delimiter;
CALL pr_getmassage(‘电子系’);
//;
6.创建触发器,当某课题被删除时选题表中的相关记录也同时被删除
/创建触发器,当某课题被删除时,选题表中相关记录也同时被删除/
DELIMITER //
CREATE TRIGGER tr_deltable AFTER DELETE
ON t_dissertation FOR EACH ROW
BEGIN
DELETE from t_s_dissertation where t_s_dissertation.dissertationid =old.dissertationid;
END
//
DELETE from t_dissertation where dissertationid=‘Z001’;
Delimiter;
//;
7.建立数据库相关表之间的参照完整性约束,均设置为级联
/建立数据库相关表之间的参照完整性约束,均设置为级联/
ALTER TABLE t_student ADD FOREIGN KEY (departmentid) REFERENCES t_department(departmentid) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE t_s_dissertation ADD FOREIGN KEY (studentid) REFERENCES t_student(studentid) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE t_s_dissertation ADD FOREIGN KEY (dissertationid) REFERENCES t_dissertation(dissertationid) ON DELETE CASCADE ON UPDATE CASCADE;
//
欢迎您关注我的微信公众号:学习微站(studysth)
文章知识点与官方知识档案匹配,可进一步学习相关知识