SQL入门:创建与删除约束详解

需积分: 9 4 下载量 17 浏览量 更新于2024-08-15 收藏 151KB PPT 举报
本文主要介绍了如何使用SQL语句在SQL Server 2005中创建和删除数据库约束,包括主键约束、唯一约束、检查约束、默认约束和外键约束。同时,文章还简要提到了数据库设计的三个范式:第一范式、第二范式和第三范式。 在SQL Server 2005中,创建约束是用来确保数据的完整性和一致性。以下是各个约束类型的详细说明: 1. **主键约束(Primary Key constraint)**:主键是表中的一个或一组字段,它们的值必须是唯一的,并且不允许为空。通过`ALTER TABLE`语句可以添加主键约束,例如: ```sql alter table stuinfo add constraint pk_stuno primary key (stuno) ``` 2. **唯一约束(Unique Constraint)**:与主键约束类似,唯一约束要求列中的数据唯一,但允许存在一个NULL值。例如: ```sql alter table stuinfo add constraint uq_stuseat unique (stuseat) ``` 3. **检查约束(Check Constraint)**:检查约束限制了某列的取值范围或格式。例如,确保年龄在15到40之间: ```sql alter table stuinfo add constraint ck_stuage check (stuage between 15 and 40) ``` 4. **默认约束(Default Constraint)**:当插入新记录时,如果未为某列提供值,系统会自动应用默认值。如性别默认为“男”: ```sql alter table stuinfo add constraint df_stuaddress default ('地址不详') for stuaddress ``` 5. **外键约束(Foreign Key Constraint)**:外键用于建立两个表之间的关系,确保参照完整性。例如,`stumarks`表中的`stuno`字段引用`stuinfo`表中的`stuNO`: ```sql alter table stumarks Add constraint FK_stuNo foreign key (stuno) references stuinfo(stuNO) ``` 关于数据库设计的范式,这是数据库理论的基础: 1. **第一范式(1NF, Normal Form)**:要求每列的值都是不可再分的原子单元,避免出现冗余数据。例如,如果“地址”字段包含多个部分,应将其拆分为多个独立的字段。 2. **第二范式(2NF)**:在满足第一范式的基础上,每个非主键字段都完全依赖于整个主键,而非主键的一部分。这样可以消除部分函数依赖,减少数据冗余。 3. **第三范式(3NF)**:在第二范式之上,要求所有非主键字段都直接依赖于主键,而非依赖于其他非主键字段。这样可以消除传递函数依赖,进一步减少数据冗余,提高数据一致性。 遵循这些范式,可以构建出高效、易于管理和维护的数据库。在实际设计中,根据业务需求合理应用这些原则,可以有效地防止数据异常和更新异常,保证数据的完整性和一致性。