《数据库原理》所有实验 联系客服

发布时间 : 星期日 文章《数据库原理》所有实验更新完毕开始阅读7364f6c64531b90d6c85ec3a87c24028905f8507

(11) 向T插入元组(n1,T09,李迪)、(n2,T08,李兰)、(n3,T01,NULL)、

(n4,T02,NULL)。

(12) 对这两个表作对姓名的等值连接运算,找出既是老师又是学生的人员的学

生编号和教师编号。

9

实验7、实体完整性

7.1 试验目的

学习实体完整性的建立,以及实践违反实体完整性的结果。

7.2 试验内容

(1) 在数据库University_Mis中建立表Stu_Union,进行主键约束,在没有违反

实体完整性的前提下插入并更新一条记录。 (2) 演示违反实体完整性的插入操作。 (3) 演示违反实体完整性的更新操作。

(4) 演示事务的处理,包括事务的建立、处理以及出错时的事务回滚。

(5) 通过建立University_Misarship表,插入数据,演示当与现有的数据环境不

等时,无法建立实体完整性以及参照完整性。 7.3 实验步骤

以系统管理员或sa用户登录进入查询分析器,在查询分析器窗口中输入如下命令,运行并观察和记录结果。

(1) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Stu_Union(Sno CHAR(8) NOT NULL UNIUE, Sname CHAR(8), Ssex CHAR(1), Sage INT, Sdept CHAR(20), CONSTRAINT PK_Stu_Union PRIMARY KEY(Sno));

INSERT Stu_Union VALUES(‘S01’,’王兵’,’M’,23,’CS’); UPDATE Stu_Union SET Sno=’’ WHERE Sdept=’CS’;

UPDATE Stu_Union SET Sno=’S02’ WHERE Sname=’王兵’; SELECT * FROM Stu_union;

(2) 在查询分析器中输入如下SQL语句:

USE University_Mis

INSERT Stu_Union VALUES (‘S02’,’黄山’,’M’,23,’CS’); (3) 在查询分析器中输入如下SQL语句:

USE University_Mis

UPDATE Stu_Union SET Sno =NULL WHERE Sno=’S02’; (4)

① 在查询分析器中输入如下SQL语句:

USE University_Mis SET XACT_ABORT ON BEGIN TRANSACTION T1

INSERT INTO Stu_union VALUES(‘S09’,’李永’,’M’,25,’EE’); INSERT INTO Stu_union VALUES (‘S03’,’黄浩’,’F’,25,’EE’);

10

INSERT INTO Stu_union VALUES (‘S05’,’黄浩’,’F’,25,’EE’); SELECT * FROM Stu_union; COMMIT TRANSACTION T1

② 在查询分析器中输入如下SQL语句:

USE University_Mis

SET XACT_ABORT ON BEGIN TRANSACTION T2

INSERT INTO Stu_union VALUES (‘S07’,’李宁’,’M’,25,’EE’); SELECT * FROM Stu_union;

INSERT INTO Stu_union VALUES (‘S09’,’李靖’,’F’,22,’CS’); COMMIT TRANSACTION T2

③ 在查询分析器中输入如下SQL语句:

USE University_Mis

SELECT * FROM Stu_union;

(5)

① 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Scholarship (

M_ID VARCHAR(10), Stu_id CHAR(8),R_Money INT )

INSERT INTO Scholarship VALUES(‘M01’,’ S07’,5000) INSERT INTO Scholarship VALUES (‘M01’,’ S08’,8000) SELECT * FROM Scholarship

② 在查询分析器中输入如下SQL语句:

USE University_Mis

ALTER TABLE Scholarship ADD

CONSTRAINT PK_Scholarship PRIMARY KEY(M_ID) ③ 在查询分析器中输入如下SQL语句:

USE University_Mis

ALTER TABLE Scholarship ADD

CONSTRAINT FK_Scholarship FOREIGN KEY(Stu_id) Students(Sno)

REFERENCES 11

实验8、参照完整性

8.1 实验目的

学习建立外键,以及利用FOREIGN KEY…REFERENCES子句以及各种约束保证参照完整性。

8.2 实验内容

(1) 为演示参照完整性,建立表Course,令Cno为其主键,并在Stu_Union

中插入数据。为下面的实验步骤做预先准备。

(2) 建立表SC,令Sno和Cno分别为参照Stu_Union表以及Course表的外

键,设定为级联删除,并令(Sno,Cno)为其主键。在不违反参照完整性的前提下,插入数据。

(3) 演示违反参照完整性的插入数据。

(4) 在Stu_Union中删除数据,演示级联删除。 (5) 在Course中删除数据,演示级联删除。

(6) 为了演示多重级联删除,建立Stu_Card表,令Stu_id为参数Stu_Union

表的外键,令Card_id为其主键,并插入数据。

(7) 为了演示多重级联删除,建立ICBC_Card表,令Stu_card_id为参数

Stu_Union表的外键,令Card_id为其主键,并插入数据。

(8) 通过删除Students表中的一条记录,演示三个表的多重级联删除。 (9) 演示事务中进行多重级联删除失败的处理。修改ICBC_Card表的外键

属性,使其变为On delete No action,演示事务中通过删除Students表中的一条记录,多重级联删除失败,整个事务回滚到事务的初始状态。 (10)演示互参考问题及其解决方法。要建立教师授课和课程指定教师听课关

系的两张表,规定一个教师可以授多门课,但是每个课程只能指定一个教师去听课,所以要为两张表建立相互之间的参照关系。 8.3 实验步骤

以系统管理员或sa账号登录查询分析器,在查询分析器窗体中输入如下命令,运行并观察和记录结果。

(1) 在查询分析器中输入如下SQL语句:

USE University_Mis

INSERT Stu_Union Values(‘S01’,’李用’,’0’,24,’FF’) SELECT * FROM Stu_Union; CREATE TABLE Course( Cno CHAR(4) NOT NULL UNIQUE, Cname VARCHAR(50) NOT NULL, Cpoints INT, CONSTRAINT PK PRIMARY KEY(Cno));

INSERT Course VALUES(‘C01’,’ComputerNetworks’,2); INSERT Course VALUES(‘C02’,’ArtificialIntelligence’,3);

12