1、(T-SQL)2.使用修改表命令将members表的m_address设置为非空,添加如下记录,体会NOT NULL约束的使用。wenh,翁红,男,1970-04-20,NULL,5500.0,888888 首先,在查询分析器中输入更新数据表members的SQL代码:再按F5或点击工具栏上的运行按钮“”,运行更新数据表的SQL代码,然后输入插入记录到数据表members的SQL代码:USE eshopINSERT INTO membersVALUES(wenh,翁红男1970-04-20,NULL,5500.0,888888)执行此段SQL插入记录代码后,将在结果框中显示以下消息,表示执行插
2、入操作失败:服务器: 消息 515,级别 16,状态 2,行 1无法将 NULL 值插入列 m_address,表 eshop.dbo.members;该列不允许空值。INSERT 失败。语句已终止。 3.在members表中,将m_account设置为主键,并查看对应的索引(?),添加如下记录,体会PRIMARY KEY约束的作用。liuzc518,翁红,男,1970-04-20,湖南株洲,5500.0,123456ALTER TABLE membersADD CONSTRAINT pk_members PRIMARY KEY(m_account)liuzc518, 湖南株洲,5500.0,
3、123456 消息 2627,级别 14,状态 1,行 1违反了 PRIMARY KEY 约束 pk_members。不能在对象 members 中插入重复键。4.在members表中,为m_name增加UNIQUEL约束,添加如下记录再输入一条会员姓名为“津津有味”的记录,体会UNIQUE约束的作用。jjyw,津津有味,男,1970-04-20,湖南株洲,5500.0,jjywADD CONSTRAINT un_name UNIQUE(m_name)jjyw 津津有味 消息 2627,级别 14,状态 2,行 1违反了 UNIQUE KEY 约束 un_name5.在members表中,为会
4、员增加CHECK约束为:(1)性别只能为男或女(2)年龄在15到60岁之间。再分别添加如下两条记录,体会CHECK的约束的作用。liuzh,刘忠怀,工,1960-04-20,湖南株洲,3000.0,liuzhliujj,刘津津,女,1997-04-14,湖南株洲,4400.0,liujj 首先,在查询分析器中依次输入两条更新数据表members的SQL代码:ADD CONSTRAINT ck_sex CHECK(m_sex IN(女)ADD CONSTRAINT ck_age CHECK( (YEAR(GETDATE()-YEAR(m_birth) BETWEEN 15 AND 60)”,运行
5、更新数据表的SQL代码,然后输入第一条插入记录到数据表members的SQL代码:liuzh刘忠怀1960-04-20,3000.0,liuzh ”,运行更新数据表的SQL代码,然后输入第二条插入记录liujj刘津津1999-04-14,4400.0,liujj 消息 547,级别 16,状态 1,行 1INSERT 语句与 COLUMN CHECK 约束 ck_age 冲突。该冲突发生于数据库 eshop, column m_birth注:由于今年为2012年,所以将记录改成1999-04-14可以出现以下效果。6.在members表和orders表之间创建关系,并将orders表的m_ac
6、cout设置为外键,体会FOREIGN KEY约束的作用。ALTER TABLE ordersADD CONSTRAINT fk_account FOREIGN KEY(m_account) REFERENCES members(m_account)7.为members表中的“性别”设置默认值为“女”,然后添加两条记录,体会DEFAULT约束的作用。insert into membersvalues(mjj模家具 1991-11-15广州番禺,9999.0,1212228.依次删除以上约束。DROP CONSTRAINT pk_membersDROP CONSTRAINT un_nameDROP CONSTRAINT ck_sexDROP CONSTRAINT ck_ageDROP CONSTRAINT fk_account9.将步骤1-8命令脚本(CHECK01.SQL)保存上交以备教师检查。四、注意事项1.列约束与表约束的区别。2.各类约束实现数据完整性的方法。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1