读书人

保证书数据完整性

发布时间: 2012-07-28 12:25:13 作者: rapoo

保证数据完整性

一、根据数据完整性实施的方法,可以将其分为四类:

?? 1、实体完整性,(行)

?? 2、域完整性,? (列)

?? 3、引用完整性,

?? 4、自定义完整性。

二、范式

?? 1NF:保证列的原子性,要求每一列保存的元素是最小不可分割的数据。

???2NF:在保证1NF的基础上保证行的原子性,行的唯一性,每个字段存在部分依赖关系。

?? 3NF:保证2NF的实现,所有的候选键与主键是存在必然函数依赖关系的。

三、约束

?? 1、非空约束:NOT NULL 关键字

??????? CREATE TABLE?Friend (?Name VARCHAR (50) NOT NULL?,

???????????????????????????????????????????? PhoneNo VARCHAR (15) NOT NULL );

?? 2、主键约束:PRIMARY KEY 关键字

????????CREATR TABLE Friend ( Name VARCHAR (50) NOT NULL,

???????????????????????????????????????????? CONSTRAINT MyPrimaryKey PRIMARY KEY (NAME)

??????????????????????????????????????或者 PRIMARY KEY (NAME)

????????????????????????????????????? 或者 Name VARCHAR (50) PRIMARY KEY NOT NULL );

?

?? 3、唯一约束:UNIQUE 关键字

??????? CREATR TABLE Friend ( PhoneNo VARCHAR (15) UNIQUE );

?

?? 4、指定默认值:DEFAULT 关键字

??????? CREATE TABLE Friend ( PhoneNo VARCHAR (15) DEFAULT '不知道电话号码' NOT NULL );

?? 5、检查约束:CHECK 关键字

??????? CREATE TABLE Friend ( Age INT,

????????????????????????????????????????????CONSTRAINT CheckAge CHECK?(Age BETWEEN 10 AND 100)

?????????????????????????????????????或者 Age ITN CHECK (Age BETWEEN 10 AND 100)?);

?? 如果我们向一个有检查约束的列上插入一个NULL值,那么它实际上没有插入任何值,所以在这种情况下检查约束不起任何作用。

?? 6、自动编号:IDENTITY??、@@IDENTITY 关键字

??????? CREATE TABLE Friend ( FriendID INT IDENTITY PRIMARY KEY NOT NULL????【IDENTITY写在这个位置上初始值从1开始】

?????????????????????????????????????或者 FriendID?INT PRIMARY KEY NOT NULL IDENTITY????【IDENTITY写在这个位置上初始值从2开始】

?????????????????????????????????????或者 FriendID INT IDENTITY ( 1000 , 1) PRIMARY KEY NOT NULL??? 【此时IDENTITY从1000开始,增量值为1】

);

?

?? 7、引用完整性和外键约束:FOREIGN KEY?? 、 REFERENCES 关键字

??????? CREATE TABLE?Friend ( FriendID INT PRIMARY KEY? , Name VARCHAR(50) );

??????? CREATE TABLE?Phone (?PhoneID?INT PRIMARY KEY??,

?????????????????????????????????????????????FriendID INT ,

???????????????????????????????????????????? PhoneNo VARCHAR (20) ,

?????????????????????????????????????????????CONSTRAINT?FID_FK FOREIGN KEY (FriendID),

???????????????????????????????????????????? REFERENCES?Friend (FriendID)??

???????????????????????????????????? 或者 FOREIGN KEY (FriendID)?REFERENCES Friend (FriendID)??????????????????

)?;

???? 不能删除一个被其它表引用的表。如果要删除,首先必须去掉引用关系。

?

四、添加、删除主键、外键或者其它约束。? 用:ALTER TABLE 关键字

????? ALTER TABLE Friend DROP CONSTRAINT Myunique_name;

??????ALTER TABLE Friend ADD CONSTRAINT?PK_FriendName PRAMARY KEY (Name);?

?

?

【抄完收工】------------------------------?

?眼下都看花了?? 这个东东抄起老火???

?

?

?

?

?

?

?

?

?

?

?

读书人网 >其他相关

热点推荐