ON UPDATE CASCADE, /*当更新Student表中的Sno时,级连更新SC表中相应的元组*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) /*表级完整性约束条件,Sno是外码*/
ON DELETE NO ACTION /* 当删除Course表中的元组造成了与SC表不一致时,拒绝删除*/ ON UPDATE CASCADE, /*当更新Course表中的Cno时,级连更新SC表中相应的元组*/ );
/*DROP TABLE SC;*/
/*建立索引*/
CREATE UNIQUE INDEX Stu_name ON Student(Sname); CREATE UNIQUE INDEX Tea_name ON Teacher(Tname); CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);
/*查询某个系(以GIS为例)的学生信息*/
CREATE VIEW GIS_Student /*建立某个系(以GIS为例)的学生信息视图*/ AS
SELECT * FROM Student WHERE Class IN (SELECT Class FROM Class
WHERE Dname='GIS') WITH CHECK OPTION;
SELECT *
FROM GIS_Student;
SELECT COUNT(*) FROM GIS_Student;
/*查询班级的学生信息*/
SELECT Sno, Sname, Ssex, Birth FROM Student
WHERE Class = '114072';
SELECT COUNT(*) FROM Student
WHERE Class='114072';
/*查询学生的成绩、学分*/
SELECT SC.Cno, Cname, Credit, Grade FROM Course, SC
WHERE Sno = '20071000500' AND SC.Cno=Course.Cno;
SELECT SUM(Credit) FROM SC,Course
WHERE Sno='20071000500' AND SC.Cno=Couse.Cno;
/*查询教师授课信息*/ SELECT Course.* FROM Course
WHERE Tno='100123';
SELECT Student.Sno,Sname,Class,Grade FROM Course,SC,Student WHERE Tno='100123' AND
Course.Cno=SC.Cno AND SC.Sno=Student.Sno;
6、运行维护
1、针对不同的应用要求制定不同的转储计划,一旦发生故障尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏;
2、根据实际情况修改数据库原有的安全性、完整性控制;
3、在数据库运行过程中,监督系统运行,对监测数据进行分析,找出改进系统性能的方法;
4、数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低数据的
存取效率,数据库性能下降。这时应按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。当原有的数据库设计不能满足新的需求,需要重构造数据库,调整数据库的模式和内模式。