文档详情

数据库实验6 数据完整性(答案).doc

发布:2016-12-26约2.08千字共5页下载文档
文本预览下载声明
实验6 数据完整性 学号专业:电子信息工程 一、实验内容和步骤 1.为studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。 (1)复制学生表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。完成以下代码实现该操作。 SELECT * INTO stu_phone FROM 学生表 ALTER TABLE stu_phone ADD CHAR(7)NULL stu_phone表结构如图1-10所示。 图1-10 stu_phone表结构 创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。 Create rule phone_rule As @value like [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] 使用系统存储过程sp_hndrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。 sp_bindrule phone_rule, stu_phone.电话号码消息213,级别16,状态1,第1 行 插入错误: 列名或所提供值的数目与表定义不匹配。CREATE RULE stusex_rule AS @性别in (男,女) CREATE DEFAULT df_date AS 2006-4-12 创建字符型默认对象df_char,默认字符为“unknown” CREATE DEFAULT df_char AS unknown 创建货币型默认对象df_money,默认为100元 CREATE DEFAULT df_money AS $100 (2)在studentsdb数据库中创建stu_fee数据表。 学号 char(10) NOT NULL 姓名 char(8) NOT NULL, 学费 money 交费日期 datetime 电话号码 char(7) 表stu_fee的数据结构如图1-11所示。 学号 姓名 性别 交费日期 电话号码 图l-11 stu_fee的数据结构 CREATE TABLE [dbo].[stu_fee]( [学号] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [姓名] [char](8) COLLATE Chinese_PRC_CI_AS NOT NULL, [学费] [money] NULL, [缴费日期] [datetime] NULL, [电话号码] [char](7) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]”列上。 sp_bindefault df_date, stu_fee.缴费日期 sp_bindefault df_char, stu_fee.电话号码 sp_bindefault df_money, stu_fee.学费CREATE TABLE stu_con ( 学号char(4) NOT NULL CONSTRAINT pk_sid PRIMARY KEY, 姓名char(8) CONSTRAINT uk_name unique nonclustered, 性别char(2) CONSTRAINT df_sex DEFAULT (男), 出生年月datetime CONSTRAINT ck_bday check (出生年月1988-1-1), 家庭住址varchar(50) )ALTER TABLE stu_con DROP CONSTRAINT uk_name,df_sex,ck_bday 8.用对象资源管理器中数据库关系图为studentsdb数据库的成绩表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为学生表,外键名称为fk_sid。 ⑴使用系统存储过程sp_help查看成绩表的外键信息。 ⑵在成绩表中插入表1-2所示记录,观察SQLServer会做何处理,为什么?如何解决所产生的问题? 表1-2 学号 课程编号 分数 0100 0001 78 INSERT 语句与FOREIGN KEY 约束FK_成绩表_学生表冲突。该冲突发生于数据库studentsdb,表dbo.学生表, column 学号。 数据库技术与应用实验
显示全部
相似文档