文档介绍:数据完整性 之实体完整性的实现(2)
1
实体完整性的实现
实体完整性可以通过
索引
IDENTITY属性来实现
PRIMARY KEY约束
UNIQUE约束
2
一.PRIMARY KEY约束
通过定义PRIMARY KEY(主键)约束惟一地标识表中记录,每个表都应有一个主键,可以是一列或列组合。一个表只能有一个PRIMARY KEY约束。
Image、text数据类型的字段不能设置为主键。
PRIMARY KEY(主键)约束应遵从规则:无空值,无重复值。
当向表中的现有列添加主键约束时,自动检查列中现有的数据是否符合规则。
课外阅读:
3
一.PRIMARY KEY约束
1. 用企业管理器定义主键
2.用T-SQL语句定义主键
(1)创建表时定义主键约束
CREATE TABLE 数据表名
(列名 数据类型 [CONSTRAIN 约束名] PRIMARY KEY[,…])
说明:语法格式1定义单列主键
4
【例】创建学生档案表并设置学号列为主键
use xs
go
create table xsda1
(学号 char(6) primary key, /*设置主键*/
姓名 nchar(4) not null,
性别 nchar(1),
班级 nvarchar(10),
家庭住址 nvarchar(20) ,
出生日期 datetime,
入学日期 datetime)
课外阅读:
5
【例】创建学生档案表并设置学号列为主键
use xs
go
create table xsda1
(学号 char(6) primary key, /*设置主键*/
姓名 nchar(4) not null,
性别 nchar(1),
班级 nvarchar(10),
家庭住址 nvarchar(20) ,
出生日期 datetime,
入学日期 datetime)
6
一.PRIMARY KEY约束
CREATE TABLE 数据表名
([CONSTRAIN 约束名] PRIMARY KEY (列名1[,…n])
[,...])
【例】 创建学生成绩表并设置组合主键
use xs
go
create table xscj1
(学号 char(6) ,
课程编号 char(6) ,
成绩 int,
constraint pk_成绩 primary key (学号,课程编号)
) (课外阅读: )
7
一.PRIMARY KEY约束
(2)修改表时定义主键约束
ALTER TABLE 表名
ADD [CONSTRAINT 名称] PRIMARY KEY (列名1[,…n])
【】 修改表添加组合主键约束
Use xs
go
alter table xscj
add constraint pk_成绩 primary key (学号, 课程编号)
注:在添加新的主键约束前,应删除已有主键约束。
8
一.PRIMARY KEY约束
(3)删除PRIMARY KEY约束
ALTER TABLE 表名
DROP CONSTRAINT 约束名[,…n]
【例5-19】删除上例中创建的PRIMARY KEY约束。
USE XS
ALTER TABLE KCXX
DROP CONSTRAINT pk_成绩
GO
课外阅读:
9
二.UNIQUE(唯一性)约束
如果要确保一个表中的非主键列不输入重复值,应在该列上定义UNIQUE约束(唯一约束)。
主键约束与惟一约束的区别:
主键约束只能有一个,惟一约束可有多个。
主键约束字段值不允许为NULL,而惟一约束字段的值可取NULL。
PRIMARY KEY约束与UNIQUE约束的相同点在于:二者均不允许表中对应字段存在重复值。
10