- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch9 数据库安全与保护
2)外键约束 外键约束(Foreign Key Constraint)也称为外关键字约束,定义了表之间的关系。 外键约束语法格式为: CONSTRAINT constraint_name FOREIGN KEY (column_name1[, column_name2,…,column_name16]) REFERENCES ref_table [(ref_column1[,ref_column2,…, ref_column16] )] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] ] [ NOT FOR REPLICATION ] ?说明:constraint_name为约束名称,其他与上述类似。 9.4 数据的完整性 【案例9-10】创建订单细节(OrderDetail)表,订单编号(cOrderNo)和玩具ID(cToyId)为组合主键。同时又是外键,与订单表的订单编号、玩具表的玩具ID相关联。 CREATE TABLE OrderDetail ( cOrderNo CHAR(6) REFERENCES Orders (cOrderNo) /*省略部分关键字行级约束*/ cToyId CHAR(6) NOT NULL, … CONSTRAINT pkOrderDetail PRIMARY KEY (cOrderNo, cToyId) , FOREIGN KEY (cToyId) REFERENCES Toys (cToyId) /*表级约束*/ ) 也可以用ALTER TABLE命令修改表,如下: ALTER TABLE OrderDetail ADD CONSTRAINT fkOrderNo FOREIGN KEY (cOrderNo) REFERENCES Orders (cOrderNo) ALTER TABLE OrderDetail ADD CONSTRAINT fkToyId FOREIGN KEY (cToyId ) REFERENCES Toys(cToyId ) 9.4 数据的完整性 3)唯一性约束 唯一性约束(Unique Constraint)用于指定一个或几列的组合的值具有唯一性,以防止在列中输入重复的值。唯一性约束指定的列可以有NULL 属性。 创建UNIQUE约束的规则为:可创建在列级,也可创建在表级。不允许一个表中有两行取相同的非空值。 语法格式为: CONSTRAINT constraint_name UNIQUE [CLUSTERED | NONCLUSTERED] (column_name1[, column_name2,…,column_name16]) 【案例9-11】创建国家表,指定国家不能重复,ID号为主键。 CREATE TABLE Country ( cCountryId CHAR(3) PRIMARY KEY, /*行级约束,没有指定约束名*/ cCountry CHAR(25) NOT NULL UNIQUE /*行级约束,没有指定约束名*/ ) ALTER TABLE Country ADD CONSTRIANT unqCountry UNIQUE (cCountry) /*表级约束*/ 9.4 数据的完整性 4)检查约束 检查约束(Check Constraint)通过限制插入列中的值控制域完整性.可以在一列上定义多个检查约束。并按照定义的次序进行实施。当约束被定义成表级时,单一的检查约束可以被应用到多列。语法格式为: CONSTRAINT constraint_name CHECK [NOT FOR REPLICATION] (logical_expression) (1)IN关键字。键入的值被限制在一个常数表达式列表中。 (2)LIKE关键字。可通过通配符来确保输入某一列的值符合一定的约束模式。 (3)BETWEEN 关键字。指明常数表达式的范围。该范围中包括上限值和下限值。 9.4 数据的完整性 5)缺省约束 缺省约束(Default Constraint)也称为默认约束,用于为某列指定一个常数值。缺省约束通过定义列的默认值或使用数据库的默认值对象绑定表的列,指定列的默认值。SQL Server推荐使用缺省约束,而不使用定义默认值的方式指定列的默认值。 具体语法格式为: C
文档评论(0)