----------------------
ASP.Net+Android+IO开发S、
.Net培训、期待与您交流! ----------------------
单字段唯一约束:
前言:可通过目录快速查阅
SQL语句入门
5.索引与约束
1)索引
创建索引
--在T_Person 表的FName和FAge 字段上创建索引,idx_person_nameage
CREATE INDEX idx_person_nameage ON T_Person(FName,FAge)
删除索引
DROP INDEX T_Person.idx_person_name;
DROP INDEX T_Person.idx_person_nameage;
2)约束
非空约束CREATE TABLE T_Person (FNumber VARCHAR(20) NOT NULL ,FName
VARCHAR(20),FAge INT)
INSERT INTO T_Person (FNumber, FName, FAge) VALUES ( NULL , 'kingchou', 20)
错误信息: 不能将值 NULL 插入列 'FNumber',表 'demo.dbo.T_Person';列不允许有空值。INSERT 失败
唯一约束
单字段唯一约束:
CREATE TABLE T_Person (FNumber VARCHAR(20) UNIQUE,
FName VARCHAR(20),FAge INT)
--已存在FNumber 为2的记录
INSERT INTO T_Person (FNumber, FName, FAge) VALUES ( '2' , 'kitty', 20)
错误信息: 违反了 UNIQUE KEY 约束 'UQ__T_Person__1A14E395'。不能在对象 'dbo.T_Person' 中插入重复键
复合唯一约束:
CREATE TABLE T_Person (FNumber VARCHAR(20),
FDepartmentNumber VARCHAR(20),
FName VARCHAR(20),FAge INT,
CONSTRAINT unic_dep_num UNIQUE(FNumber,FDepartmentNumber))
--FNumber等于'2'且FDepartmentNumber等于'sales001'的记录在表中已经存在
INSERT INTO T_Person (FNumber, FDepartmentNumber,FName, FAge) VALUES ( '2' , 'sales001', 'daxia', 30)
错误信息: 违反了 UNIQUE KEY 约束 'unic_dep_num'。不能在对象 'dbo.T_Person' 中插入重复键
在已经创建好的数据表上添加新的唯一约束
--为T_Person表添加一个建立在字段FName和字段FAge上的新的唯一约束
ALTER TABLE T_Person ADD CONSTRAINT unic_3 UNIQUE(FName, FAge)