《第五课数据完整性之实体完整性的实现(2).ppt》由会员分享,可在线阅读,更多相关《第五课数据完整性之实体完整性的实现(2).ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、LOGO数据完整性数据完整性 之实体完整性的实现之实体完整性的实现(2)实体完整性的实现实体完整性的实现 实体完整性可以通过实体完整性可以通过索引IDENTITY属性来实现PRIMARY KEY约束UNIQUE约束一一PRIMARY KEY约束约束通过定义通过定义PRIMARY KEY(主键)约束惟一地标识约束惟一地标识表中记录,每个表都应有一个主键,可以是表中记录,每个表都应有一个主键,可以是一列或列组合。一个表只能有一个。一个表只能有一个PRIMARY KEY约束。约束。Image、text数据类型的字段不能设置为主键。数据类型的字段不能设置为主键。PRIMARY KEY(主键主键)约束应
2、遵从规则:约束应遵从规则:无空值,无重复值。值。当向表中的现有列添加主键约束时,自动检查列当向表中的现有列添加主键约束时,自动检查列中现有的数据是否符合规则。中现有的数据是否符合规则。课外阅读:课外阅读:一一PRIMARY KEY约束约束1.用企业管理器定义主键2用T-SQL语句定义主键(1)创建表时定义主键约束CREATE TABLE 数据表名数据表名(列名列名 数据类型数据类型 CONSTRAIN 约束名约束名 PRIMARY KEY,)说明:语法格式说明:语法格式1定义单列主键定义单列主键【例例】创建学生档案表并设置学号列为主键创建学生档案表并设置学号列为主键use xsgo creat
3、e table xsda1(学号学号 char(6)primary key,/*设置主设置主键键*/姓名姓名 nchar(4)not null,性别性别 nchar(1),班级班级 nvarchar(10),家庭住址家庭住址 nvarchar(20),出生日期出生日期 datetime,入学日期入学日期 datetime)课外阅读:课外阅读:【例例】创建学生档案表并设置学号列为主键创建学生档案表并设置学号列为主键use xsgo create table xsda1(学号学号 char(6)primary key,/*设置主键设置主键*/姓名姓名 nchar(4)not null,性别性别 n
4、char(1),班级班级 nvarchar(10),家庭住址家庭住址 nvarchar(20),出生日期出生日期 datetime,入学日期入学日期 datetime)一一PRIMARY KEY约束约束CREATE TABLE 数据表名数据表名(CONSTRAIN 约束名约束名 PRIMARY KEY(列名1,n),.)【例例】创建学生成绩表并设置组合主键创建学生成绩表并设置组合主键use xsgocreate table xscj1(学号学号 char(6),课程编号课程编号 char(6),成绩成绩 int,constraint pk_成绩成绩 primary key(学号学号,课程编号课
5、程编号)(课外阅读:(课外阅读:)一一PRIMARY KEY约束约束v(2)修改表时定义主键约束vALTER TABLE 表名表名vADD CONSTRAINT 名称名称 PRIMARY KEY(列名列名1,n)v【例例7.5】修改表添加组合主键约束修改表添加组合主键约束vUse xsvgovalter table xscjvadd constraint pk_成绩成绩 primary key(学号学号,课课程编号程编号)v注:在添加新的主键约束前,应删除已有主键约束。注:在添加新的主键约束前,应删除已有主键约束。一一PRIMARY KEY约束约束(3)删除PRIMARY KEY约束ALTER
6、 TABLE 表名表名DROP CONSTRAINT 约束名约束名,n【例例5-19】删除上例中创建的删除上例中创建的PRIMARY KEY约束。约束。USE XSALTER TABLE KCXXDROP CONSTRAINT pk_成绩成绩 GO 课外阅读:课外阅读: 二二UNIQUE(唯一性唯一性)约束约束如果要确保一个表中的如果要确保一个表中的非主键列不输入重复值,应在该列上定义应在该列上定义UNIQUE约束(唯一约束)。约束(唯一约束)。主键约束与惟一约束的主键约束与惟一约束的区别:主键约束只能有一个,惟一约束可有多个。主键约束字段值不允许为NULL,而惟一约束字段的值可取NULL。P
7、RIMARY KEY约束与约束与UNIQUE约束的相同点约束的相同点在于:二者均不允许表中对应字段存在重复值。在于:二者均不允许表中对应字段存在重复值。二二UNIQUE(唯一性唯一性)约束约束1用企业管理器定义UNIQUE(唯一性)约束2用T-SQL语句定义UNIQUE(唯一性)约束(1)创建表时定义CREATE TABLE 数据表名数据表名(列名列名 数据类型数据类型 CONSTRAIN 约束名约束名 UNIQUE,.)说明:语法格式说明:语法格式1定义单列唯一约束定义单列唯一约束【例例】创建专业信息表并设置创建专业信息表并设置“名称名称”列为唯一约束列为唯一约束use xsgocreate
8、 table 专业信息表专业信息表(编号编号 char(6)not null primary key,院系编号院系编号 char(4)not null,名称名称 char(40)not null unique /*设置唯一设置唯一约束约束*/)课外阅读:课外阅读: 二二UNIQUE(唯一性唯一性)约束约束语法格式2:CREATE TABLE 数据表名数据表名(CONSTRAIN 约束名约束名 UNIQUE(列名列名1,n)1,n),.n)说明:多列组合唯一约束说明:多列组合唯一约束 二二UNIQUE(唯一性唯一性)约束约束(2)修改表时定义ALTER TABLE 表名表名ADD CONSTRAINT 名称名称 UNIQUE(列名1,n)【例例】修改表设置唯一约束修改表设置唯一约束use xsgoalter table 专业信息表专业信息表add constraint uq_名称名称 unique(名称名称)go二二UNIQUE(唯一性唯一性)约束约束(3)删除UNIQUE约束ALTER TABLE 表名表名DROP CONSTRAINT 约束名约束名,n【例例】删除前面例中创建的删除前面例中创建的UNIQUE约束。约束。USE XSALTER TABLE XSDADROP CONSTRAINT uq_名称名称GOLOGO欢迎大家下次继续关注刘天天讲坛!