1、二、实验内容和步骤1、新建数据库School并创建学生表Student,包含以下属性:Sno (CHAR(5)、Sname (CHAR(8)、Ssex (CHAR(1)、Sage (INT)、Sdept (CHAR(20),并插入数据:( 10000,王敏F,23,CS),(王浩M,25,EE), 创建数据库、表以及插入数据的相关语句为:CREATE DATABASE School ;USE SchoolCREATE TABLE Student(Sno CHAR(5),Sname CHAR(8),Ssex CHAR(1),Sage INT,Sdept CHAR(20);INSERT INTO
2、Student values ( );INSERT INTO Student values (执行完上述语句后查看数据库中student表中的数据。然后再添加约束:令Sno为主键,查看结果并分析原因。验证当与现有的数据环境不等时,无法建立实体完整性。执行上述语句所得的结果:令Sno为主键的sql语句: Use SchoolAlter table Student addConstraint PK_Student Primary key(Sno)执行结果 分析:当前的数据环境不满足Sno成为主键,因为数据列Sno不满足实体完整性。最后,请大家再运行如下语句创建student表:Drop table
3、 student;Sno CHAR(5) primary key,定义好表结构后,再执行如下两条插入语句,分析违反实体完整性时,系统给出了何种处理。并将王浩的学号改为10001重新插入。执行上述语句的截图:2、为了验证多重级联删除,在数据库School中新建StudentCard表,包含以下属性:CardID (char(14)、Sno(char (5)、RemainedMoney (decimal (10,2),令CardID为其主键,令Sno为参照Student表的外键,级联删除,并插入数据;新建ICBCCard表,包含以下属性:BankID (char(20)、CardID (char
4、(14)、RestoredMoney (decimal (10,2),令BankID为主键,令CardID为参照StudentCard表的外键,级联删除,并插入数据。本题大家可以在如下语句上进行完善:CREATE TABLE StudentCard(CardID char(14) PRIMARY KEY,Sno char (5) REFERENCES Student (Sno) on delete cascade,RemainedMoney decimal (10,2)INSERT INTO StudentCard VALUES ( 05212567, 10001,120.00);052123
5、02,130.50);执行上述sql语句得的截图:CREATE TABLE ICBCCard( BankID char(20) PRIMARY KEY, CardID char (14), RestoredMoney decimal (10,2), FOREIGN KEY (CardID) REFERENCES StudentCard(CardID) on delete cascade,INSERT INTO ICBCCard VALUES ( 9558844022312,125000.3);9558844023645,150000.4);截图如下:注意:请大家在建立外键时,StudentCa
6、rd表的外键建立的列级,ICBCCard表建立在表级。3通过删除Student表中的一条记录,演示三个表的多重级联删除。 Sql:delete from Student where Sno=10000; Select*from Student; Select*from StudentCard; Select*from ICBCCard;分析:数据库中School表Student和ICBCCard的外键均设置为级联删除,故删除表Student中某些记录时,系统会自动检查表StudentCard,若找到相应记录则将它们随之删除;同理表ICBCCard中相应的记录也随之删除。4. 在数据库Schoo
7、l中新建Director表,包含以下属性:Dno (CHAR(5)、Dname (CHAR(8)、Dsex (CHAR(1)、Dage (INT)、Ddept (CHAR(20),并自定义3个约束U1、U2和U3,其中U1规定Dno字段不允许取空,U2规定Dage属性的值必须=55,U3规定Ddept属性的值唯一。创建表的语句为:CREATE TABLE Director(Dno CHAR(5) constraint U1 NOT NULL,Dname CHAR(8) ,Dsex CHAR(1),Dage INT constraint U2 CHECK(Dage=55),Ddept CHAR(
8、20) constraint U3 UNIQUE);本题在上述语句上添加必要的约束然后运行即可。CONSTRAINT U3(约束名)是为了给出约束的名称,从而方便对该约束进行管理,否则是可以省略的。5. Director表创建成功后,向其中插入三条数据,请逐一执行如下三条语句:INSERT INTO Director values (90000赵磊,45,艺术系90001韩丹,60,中文系,50,观察,三条语句执行时,可以正常插入吗?如果不能正常插入,为什么?第一个sql语句正常插入结果如下第二个sql语句不可以正常插入结果如下: 原因是因为U2规定了Dage属性值必须小于等于55,所以错误!
9、第三个sql语句不可以正常插入结果如下:原因是因为U3规定Ddept属性的唯一性!6.修改U2约束,将Dage属性的取值由=55改为(select Sal from inserted)beginPrint Sal must be higer than before!rollback transactionend执行截图:触发器的创建请参照实验教材P64-66实验3.4以及上课时所讲的实例。为了如下操作,可恢复数据库LibraryLib。以下各题要验证各用户的权限,可以借助于查询分析器。10在SQL Server对象资源管理器中,设置服务器身份验证为SQL Server和Windows身份验证模式,并以SQL Server 身份验证模式登录服务器,登录名和密码均为sa。步骤:首先打开SQL Server 2000 企业管理器,在控制台根目录下右击服务器,在弹出的快捷菜单中选择“属性”命令,则出现“服务
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1