实验 SQL Server 数据完整性.doc
文本预览下载声明
实验10 SQL Server 2000数据完整性
20102805013 陈尧
实验目的
了解约束的应用对数据完整性控制的作用。
掌握应用企业管理器设置、修改和删除常见约束的方法。
掌握应用T-SQL设置、修改和删除常见约束的方法。
实验要求
在样例数据库中管理相关约束。
保存并上交实验结果。
实验步骤
使用不带约束(参考附录D)的脚本创建eshop数据库。(T-SQL)
使用修改表命令将members表的m_address设置为非空,添加如下记录,体会NOT NULL约束的
使用。
‘wenh’,‘翁红’,‘男’,‘1970-04-20’,NULL,5500.0,‘888888’
首先,在查询分析器中输入更新数据表members的SQL代码:
再按F5或点击工具栏上的运行按钮“”,运行更新数据表的SQL代码,然后输入插入记录到数据
表members的SQL代码:
USE eshop
INSERT INTO members
VALUES(wenh,翁红,男,1970-04-20,NULL,5500.0,888888)
执行此段SQL插入记录代码后,将在结果框中显示以下消息,表示执行插入操作失败:
服务器: 消息 515,级别 16,状态 2,行 1
无法将 NULL 值插入列 m_address,表 eshop.dbo.members;该列不允许空值。INSERT 失败。
语句已终止。
在members表中,将m_account设置为主键,并查看对应的索引(?),添加如下记录,体会PRIMARY KEY约束的作用。
‘liuzc518’,‘翁红’,‘男’,‘1970-04-20’,‘湖南株洲’,5500.0,‘123456’
首先,在查询分析器中输入更新数据表members的SQL代码:
USE eshop
ALTER TABLE members
ADD CONSTRAINT pk_members PRIMARY KEY(m_account)
再按F5或点击工具栏上的运行按钮“”,运行更新数据表的SQL代码,然后输入插入记录到数据
表members的SQL代码:
USE eshop
INSERT INTO members
VALUES(liuzc518,翁红,男,1970-04-20, 湖南株洲,5500.0,123456)
执行此段SQL插入记录代码后,将在结果框中显示以下消息,表示执行插入操作失败:
服务器: 消息 2627,级别 14,状态 1,行 1
违反了 PRIMARY KEY 约束 pk_members。不能在对象 members 中插入重复键。
语句已终止。
在members表中,为m_name增加UNIQUEL约束,添加如下记录再输入一条会员姓名为“津津
有味”的记录,体会UNIQUE约束的作用。
‘jjyw’,‘津津有味’,‘男’,‘1970-04-20’,‘湖南株洲’,5500.0,‘jjyw’
首先,在查询分析器中输入更新数据表members的SQL代码:
USE eshop
ALTER TABLE members
ADD CONSTRAINT un_name UNIQUE(m_name)
再按F5或点击工具栏上的运行按钮“”,运行更新数据表的SQL代码,然后输入插入记录到数据
表members的SQL代码:
USE eshop
INSERT INTO members
VALUES(jjyw ,津津有味,男,1970-04-20, 湖南株洲,5500.0,jjyw )
执行此段SQL插入记录代码后,将在结果框中显示以下消息,表示执行插入操作失败:
服务器: 消息 2627,级别 14,状态 2,行 1
违反了 UNIQUE KEY 约束 un_name。不能在对象 members 中插入重复键。
语句已终止。
在members表中,为会员增加CHECK约束为:
性别只能为男或女
年龄在15到60岁之间。
再分别添加如下两条记录,体会CHECK的约束的作用。(T-SQL)
‘liuzh’,‘刘忠怀’,‘工’,‘1960-04-20’,‘湖南株洲’,3000.0,‘liuzh’
‘liujj’,‘刘津津’,‘女’,‘1997-04-14’,‘湖南株洲’,4400.0,‘liujj’
首先,在查询分析器中依次输入两条更新数据表members的SQL代码:
USE eshop
ALTER TABLE members
ADD CONSTRAINT ck_sex CHECK(m_sex IN(男, 女))
USE eshop
ALTER TABLE members
ADD CONSTRAINT ck_age CHECK( (YEAR(GETDATE())-YEAR(m_birth
显示全部