保证数据完整性
一、根据数据完整性实施的方法,可以将其分为四类:
?? 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);?
?
?
【抄完收工】------------------------------?
?眼下都看花了?? 这个东东抄起老火???
?
?
?
?
?
?
?
?
?
?
?