实验10SQL Server 数据完整性Word格式.docx
《实验10SQL Server 数据完整性Word格式.docx》由会员分享,可在线阅读,更多相关《实验10SQL Server 数据完整性Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
(T-SQL)
2.使用修改表命令将members表的m_address设置为非空,添加如下记录,体会NOTNULL约束的
使用。
‘wenh’,‘翁红’,‘男’,‘1970-04-20’,NULL,5500.0,‘888888’
首先,在查询分析器中输入更新数据表members的SQL代码:
再按F5或点击工具栏上的运行按钮“
”,运行更新数据表的SQL代码,然后输入插入记录到数据
表members的SQL代码:
USEeshop
INSERTINTOmembers
VALUES('
wenh'
'
翁红'
男'
1970-04-20'
NULL,5500.0,'
888888'
)
执行此段SQL插入记录代码后,将在结果框中显示以下消息,表示执行插入操作失败:
服务器:
消息515,级别16,状态2,行1
无法将NULL值插入列'
m_address'
,表'
eshop.dbo.members'
;
该列不允许空值。
INSERT失败。
语句已终止。
3.在members表中,将m_account设置为主键,并查看对应的索引(?
),添加如下记录,体会PRIMARYKEY约束的作用。
‘liuzc518’,‘翁红’,‘男’,‘1970-04-20’,‘湖南株洲’,5500.0,‘123456’
ALTERTABLEmembers
ADDCONSTRAINTpk_membersPRIMARYKEY(m_account)
liuzc518'
'
湖南株洲'
5500.0,'
123456'
消息2627,级别14,状态1,行1
违反了PRIMARYKEY约束'
pk_members'
。
不能在对象'
members'
中插入重复键。
4.在members表中,为m_name增加UNIQUEL约束,添加如下记录再输入一条会员姓名为“津津
有味”的记录,体会UNIQUE约束的作用。
‘jjyw’,‘津津有味’,‘男’,‘1970-04-20’,‘湖南株洲’,5500.0,‘jjyw’
ADDCONSTRAINTun_nameUNIQUE(m_name)
jjyw'
津津有味'
消息2627,级别14,状态2,行1
违反了UNIQUEKEY约束'
un_name'
5.在members表中,为会员增加CHECK约束为:
(1)性别只能为男或女
(2)年龄在15到60岁之间。
再分别添加如下两条记录,体会CHECK的约束的作用。
‘liuzh’,‘刘忠怀’,‘工’,‘1960-04-20’,‘湖南株洲’,3000.0,‘liuzh’
‘liujj’,‘刘津津’,‘女’,‘1997-04-14’,‘湖南株洲’,4400.0,‘liujj’
首先,在查询分析器中依次输入两条更新数据表members的SQL代码:
ADDCONSTRAINTck_sexCHECK(m_sexIN('
女'
))
ADDCONSTRAINTck_ageCHECK((YEAR(GETDATE())-YEAR(m_birth))BETWEEN15AND60)
”,运行更新数据表的SQL代码,然后输入第一条插入记录
到数据表members的SQL代码:
liuzh'
刘忠怀'
1960-04-20'
3000.0,'
liuzh'
”,运行更新数据表的SQL代码,然后输入第二条插入记录
liujj'
刘津津'
1999-04-14'
4400.0,'
liujj'
消息547,级别16,状态1,行1
INSERT语句与COLUMNCHECK约束'
ck_age'
冲突。
该冲突发生于数据库'
eshop'
column'
m_birth'
注:
由于今年为2012年,所以将记录改成1999-04-14可以出现以下效果。
6.在members表和orders表之间创建关系,并将orders表的m_accout设置为外键,体会FOREIGN
KEY约束的作用。
ALTERTABLEorders
ADDCONSTRAINTfk_accountFOREIGNKEY(m_account)
REFERENCESmembers(m_account)
7.为members表中的“性别”设置默认值为“女”,然后添加两条记录,体会DEFAULT约束的作用。
insertintomembers
values('
mjj'
模家具'
'
1991-11-15'
广州番禺'
9999.0,'
121222'
8.依次删除以上约束。
DROPCONSTRAINTpk_members
DROPCONSTRAINTun_name
DROPCONSTRAINTck_sex
DROPCONSTRAINTck_age
DROPCONSTRAINTfk_account
9.将步骤1-8命令脚本(CHECK01.SQL)保存上交以备教师检查。
四、注意事项
1.列约束与表约束的区别。
2.各类约束实现数据完整性的方法。