数据库完整性实验报告 篇一:数据的完整性实验报告 实验 4 数据完整性 一、实验目的 理解实体完整性、参照完整性和自定义完整性的概念 理解触发器的概念、定义方法和触发条件。 二、实验示例 1、给 employee 的 emp_no 列加上约束,要求员工编号的第一位为 E,后面 4 位为数字 Alter table employee add constraint ck_employee_emp_no check(emp_no like [E][0-9][0-9][0-9][0-9] ) 2、写一个允许用户一次只删除一条记录的触发器。 create trigger tr_emp on employee for delete as declare @row_cnt int select @row_cnt=count(*) from deleted if @row_cnt 1 begin print 此删除操作可能回删除多条人事表数据!!! rollback transaction end delete from employee where sex= 女 /*结果:所影响的行数为 0*/ 三、实验内容与步骤(注意:请设计数据和操作来验证完整性和触发器是否能够正常执行。) 1、给 5 个表加上合适的主键和外键约束。 alter table 产品名称表 add constraint C1 check(产品编号 like g% or 产品编号 like P% ) insert into 产品名称表(产品编号,产品名称) values ( g1234 , 贝多芬 ) insert into 产品名称表(产品编号,产品名称) values ( w1234 , 贝多芬 ) alter table 客户表 add constraint C2 check(客户号 like C[0-9][0-9][0-9][0-9] ) alter table 销货明细表 add constraint C3 foreign key(订单号) references 销售主表(订单号) on delete cascade on update cascade, constraint C4 foreign key(产品编号) references 产品名称表(产品编号) on delete cascade on update cascade) alter table 销售主表 add constraint 订单号_C1 check(订单号 like [0-9][0-9][0-9][0-9][0-9] ) alter table 员工人事表 add constraint 员工编号_C check (员工编号 like E[0-9][0-9][0-9][0-9] ) 2、给 employee 表性别列增加约束,使得性别的取值只能是’m’或’f’ alter table 员工人事表 add constraint 员工性别_C check (性别 like m or 性别 like F ) 3、创建一个 employee 表的触发器,当有人操作其中数据时,用 print 语句输出欢迎信息。 create trigger CaoZuo_ShuJu on 员工人事表 for insert,update,delete as begin ...