附数据完整性.ppt
《附数据完整性.ppt》由会员分享,可在线阅读,更多相关《附数据完整性.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 表的创建约束约束 约束定义了必须遵循的用于维护数据一致性和正确性的规则,是强制实现数据完整性的主要途径。约束有5种类型,包括:主键约束、唯一性约束、检查约束、默认约束、外键约束(参照约束)。约束可以在两个层次上实施:列级:用户定义的约束只对表中的一列起作用;表级:用户定义的约束对表中的多列起作用。第3章 表的创建强制数据完整性的约束机制强制数据完整性的约束机制v一、主键约束(一、主键约束(PRIMARY KEYPRIMARY KEY)(实体实体)v二、唯一性约束(二、唯一性约束(UNIQUEUNIQUE)(实体实体)v三、检查约束(三、检查约束(CHECKCHECK)(域域)v四、默认
2、约束(四、默认约束(DEFAULTDEFAULT)(域域)v五、外键约束(五、外键约束(FOREIGN KEYFOREIGN KEY)(参照参照)v六、不为空六、不为空约束(约束(NOT NULLNOT NULL)(域域)第3章 表的创建 1约束的创建、修改 (1)使用CREATE TABLE语句创建约束 使用CREATE TABLE语句创建约束是在创建表时定义约束,约束是表格定义的一部分。其语法形式为:CREATE TABLE table_name(column_name data_type CONSTRAINT constraint_name constraint_type ,n )v c
3、onstraint_name:要创建的约束的名字。若缺省约束名,则SQL Server会自动为约束提供一个名字。v constraint_type:要创建的约束类型。第3章 表的创建 (2)使用ALTER TABLE语句创建约束 在已有的表上创建、修改约束可以使用ALTER TABLE命令。其语法形式为:ALTER TABLE table_name WITH CHECK|WITH NOCHECK ADD CONSTRAINT constraint_name constraint_typev WITH CHECK|WITH NOCHECK:新加入的约束对表中现有的数据是否进行检查。vCONSTR
4、AINT constraint_name:强制起索引文件名 2约束的删除 语法形式为:ALTER TABLE table_name DROP CONSTRAINT constraint_name第3章 表的创建一、主键约束(一、主键约束(PRIMARY KEYPRIMARY KEY)主键用于唯一地标识表中每一条记录。我们可以定义表中的一列或多列为主键,则主键列上没有两行具有相同值,也不能为空值。1使用T-SQL语句创建主键约束 创建主键约束的语法形式:CONSTRAINT constraint_name PRIMARY KEY CLUSTERED|NONCLUSTERED(col_name,n
5、)第3章 表的创建例1 创建Orders表,包括OrderID、CustomerID、SaleID和OrderDate四个字段,其中OrderID字段设为主键。CREATE TABLE Orders(OrderID int PRIMARY KEY,CustomerID char(3),SaleID char(3),OrderDate datetime)或 CREATE TABLE Orders(OrderID int CONSTRAINT pk_orderid PRIMARY KEY,CustomerID char(3),SaleID char(3),OrderDate datetime)第3
6、章 表的创建例2 已有Salers表,包含SaleID、SaleName、Sex等字段,将该表中SaleID字段设为主键。注意:即使在创建主键约束时带有WITH NOCHECK选项,系统总要对现存数据进行检查,若现有数据在该列上出现重复或空值,SQL Server会提示错误信息,并拒绝执行创建主键约束操作。ALTER TABLE Salers ADD CONSTRAINT pk_saleid PRIMARY KEY(Saleid)第3章 表的创建例3 OrderDetails表包含OrderID、ProductID和Quantity三个字段,在OrderID和ProductID上创建主键。AL
7、TER TABLE OrderDetailsADD CONSTRAINT pk_order_product PRIMARY KEY(orderid,productid)主键约束定义在不止一列上时,一列中的值可以重复,但主键约束定义中的所有列的组合值必须唯一。第3章 表的创建例4 删除例3-21中创建的主键约束。ALTER TABLE SalersDROP CONSTRAINT pk_saleid 2使用企业管理器创建主键约束 在企业管理器下也可创建、修改、删除主键约束。只需进入企业管理器,选中需要添加主键约束的表,右键单击,在系统弹出的快捷菜单中选择“设计表”命令,在弹出的窗口中设置、取消主键
8、即可。第3章 表的创建二、唯一性约束(二、唯一性约束(UNIQUEUNIQUE)唯一性(UNIQUE)约束用来限制不受主键约束的列上的数据的唯一性,即表中任意两行在指定列上都不允许有相同的值。一个表上可以放置多个UNIQUE约束。唯一性约束和主键约束的区别:唯一性约束允许在该列上存在NULL值,而主键约束限制更严格,不但不允许有重复,而且也不允许有空值。在创建唯一性约束和主键约束时可以创建簇索引和非簇索引,但在缺省情况下主键约束产生簇索引,而唯一性约束产生非簇索引。第3章 表的创建1使用T-SQL语句创建唯一约束创建唯一性约束的语法形式为:CONSTRAINT constraint_name
9、UNIQUE CLUSTERED|NONCLUSTERED(col_name,n)例 5 创 建 表 department,包 含 dep_id、dep_name以 及dep_head三个字段,并在dep_id字段上创建主键约束,在dep_name字段上创建唯一性约束。CREATE TABLE department(dep_id int PRIMARY KEY,dep_name char(20)CONSTRAINT unq_depname UNIQUE,dep_head char(5)第3章 表的创建例6 在salers表的Telephone字段建立唯一性约束。ALTER TABLE Sale
10、rsADD CONSTRAINT unq_telephone UNIQUE(Telephone)2使用企业管理器创建唯一性约束 在企业管理器下也可创建、修改、删除唯一约束。只需进入企业管理器,选中需要添加唯一约束的表,右键单击,在系统弹出的快捷菜单中选择“所有任务管理索引”命令,在弹出的窗口中设置、修改、取消唯一约束即可。第3章 表的创建 三、检查约束(三、检查约束(CHECKCHECK)CHECK约束用来指定某列的可取值的范围。它通过限制输入到列中的值来强制域的完整性。我们可以在单列上定义多个CHECK约束,以它们定义的顺序来求值。1使用T-SQL语句创建检查约束 语法形式为:CONSTRA
11、INT constraint_name CHECK(expression)第3章 表的创建例7 创建学生表s,包含sid(学号)、sname(姓名)、sage(年龄)以及scity(城市)四个字段,并在sage字段创建一个CHECK约束,使得sage的值在1830岁之间。CREATE TABLE s(sid int PRIMARY KEY,sname char(20),sage int CONSTRAINT check_age CHECK(sage=18 AND sage=30),scity char(10)第3章 表的创建上面语句还可写成如下形式:CREATE TABLE s(sid int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 完整性
限制150内