77范文网 - 专业文章范例文档资料分享平台

实验4(2)

来源:网络收集 时间:2019-03-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

(3)插入到SC表

INSERT INTO SC VALUES('20100001','1',92) INSERT INTO SC VALUES('20100002','2',80) 请写出插入其余行的插入语句,并运行。 (4)检查插入到表中的数据 3. 修改约束

对数据库中已经存在的表,可对其增加约束或修改已存在的约束: (1)添加约束

ALTER TABLE Course ADD UNIQUE(Cname)

ALTER TABLE Course ADD FOREIGN KEY (Cpno) REFERENCES Course(Cno)

? 掌握如何添加约束 ? 掌握如何声明唯一约束

(2)修改约束

ALTER TABLE SC DROP CONSTRAINT SC_CHECK

ALTER TABLE SC ADD CONSTRAINT SC_CHECK CHECK(Grade >=0 AND Grade<=100)

? 掌握如何修改约束 ? 理解命名约束的优点

二、检查完整性约束

通过修改数据库中的数据检查完整性约束条件的作用。 1.检查主键约束

(1)执行下面的语句修改Student表,观察语句能否正确运行,解释为什么? INSERT INTO Student VALUES('20100101','李斌','男',20,'CS','1001',0) INSERT INTO Student VALUES('20100001','李斌','男',20,'CS','1001',0) UPDATE Student SET Sno='20100021' WHERE Sname = '张立'

(2)执行下面的语句修改SC表,观察语句能否正确运行,解释为什么? INSERT INTO SC VALUES('20100001','1',78) INSERT INTO SC VALUES('20100001',null,78) 2.检查唯一约束

执行下面的语句修改Course表,观察语句能否正确运行,解释为什么? INSERT INTO Course VALUES('8','JAVA',7, 3) INSERT INTO Course VALUES('9','数据结构',7, 3)

3.检查默认值、允许空值列

运行如下的语句:

INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES('20100102','张盛','男','1008') 观察插入数据行的数值

SELECT * FROM Student WHere Sno='20100102' 4.检查非空约束

下面的语句包含空值,检查运行结果,解释为什么?

INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES('20100103','张盛','男',NULL) INSERT INTO Student(Sno,Sname,Ssex) VALUES('20100104','张盛','男') 5.检查CHECK约束

执行下面的语句,解释其运行结果。

INSERT INTO SC VALUES('20100001','4',95) INSERT INTO SC VALUES('20100001','4',102)

INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES('20100103','张盛','男','1008') INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES('20100104','张盛','','1008') 6.检查外键约束

(1)执行下面的语句检查外键约束的作用 INSERT INTO SC VALUES('20100301','1',95) INSERT INTO SC VALUES('20100001','10',95) UPDATE SC SET Cno = '10' Where Cno='1' UPDATE Course SET Cno = '10' Where Cno='3' (2)执行下面的语句检查对被引用表的约束

DELETE Student WHERE Sno='20100021' DELETE Student WHERE Sno='20100001'

UPDATE Course SET Cno = '10' WHERE Cname = '数据库系统原理'

三、触发器的定义及使用

1.定义触发器

(1)定义一个触发器,实现有关学分的完整性约束:当向SC表插入一行选课记录时,自动将该课程的学分累加到该学生的总学分中。 CREATE TRIGGER tr_INSERT ON SC FOR INSERT AS --声明变量 DECLARE @sno char(8)

GO

DECLARE @cridit int DECLARE @cno char(4) --提取插入的数据

SELECT @sno=Sno,@cno=Cno FROM inserted --提取学生的总学分

SELECT @cridit = Ccredit FROM SC join Course ON (SC.Cno = Course.Cno) WHERE SC.Cno = @cno --更新总学分

UPDATE Student SET Stotal = Stotal + @cridit WHERE Sno = @sno

(2)定义一个触发器,实现对SC表的操作登记:当用户向SC表插入或修改时,记录该操作到数据库中。

? 创建日志登记表:

CREATE TABLE LOG_TABLE ( username char(10), --操作人员 date datetime, --修改时间 Sno char(8) , --学生学号 Cno char(4) --课程号 )

? 创建日志登记触发器:

CREATE TRIGGER tr_UPDATE ON SC FOR INSERT,UPDATE AS DECLARE @sno char(8) DECLARE @cno char(4) DECLARE @new smallint SELECT @sno=Sno,@cno=Cno FROM inserted

INSERT INTO LOG_TABLE VALUES(CURRENT_USER,getdate(),@Sno,@Cno); GO

(3)执行插入操作,触发触发器: INSERT INTO SC VALUES('20100001','6',95) (4)验证触发器是否触发 select * from student select * from LOG_TABLE

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验4(2)在线全文阅读。

实验4(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/521050.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: