如何手动生成数据库中的各种约束
2012-10-25 18:31
309 查看
一.数据库约束主要包含以下几类
非空约束
主键约束(PK) primary key constraint 唯一且不为空
唯一约束 (UQ)unique constraint 唯一,允许为空,但只能出现一次
默认约束 (DF)default constraint 默认值
检查约束 (CK)check constraint 范围以及格式限制
外键约束 (FK)foreign key constraint 表关系
增加外键约束时,设置级联更新、级联删除:
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
二.手动生约束
--手动添加主键的约束
alter table Employee add constraint PK_Employee_EmpId primary key(EmpId)
alter table Department add constraint PK_Department_DepId primary key(DepId)
--为EmpName增加非空约束
alter table Employee alter column EmpName varchar(50) not null
--为EmpName增加唯一键约束
alter table Employee add constraint UQ_Employee_EmpName unique(EmpName)
--删约束
alter table Employee drop constraint UQ_Employee_EmpName
--为性别增加默认约束,是默认值为"男"
alter table Employee add constraint DF_Employee_EmpGender default('男') for EmpGender
--为年龄增加检测约束 0—120含0和120
alter table Employee add constraint CK_Employee_EmpAge check(EmpAge>=0 and EmpAge<=120)
--为性别增加检查约束非男即女
alter table Employee add constraint CK_Employee_EmpGender check(EmpGender='男' or EmpGender='女')
--为员工表增加外键约束
--首先设置部门表中的DepId为主键,外键不能为空
alter table Department add constraint PK_Department_DepId primary key(DepId)
--然后写约束
alter table Employee add constraint FK_Employee_EmpDepartmentId foreign key(EmpDepartmentId) references Department(DepId)on delete cascade
alter table Employee drop constraint FK_Employee_EmpDepartmentId
--一条语句删除多条约束,约束名用逗号隔开
alter table Employee drop constraint FK_Employee_EmpDepartmentId,
CK_Employee_EmpAge,
UQ_Employee_EmpName
--1条语句为表增加多个约束
alter table Employee add constraint
UQ_Employee_EmpName
unique(EmpName),
constraint
CKSSS
check(Emp>=0 and EmpAge<=150)
非空约束
主键约束(PK) primary key constraint 唯一且不为空
唯一约束 (UQ)unique constraint 唯一,允许为空,但只能出现一次
默认约束 (DF)default constraint 默认值
检查约束 (CK)check constraint 范围以及格式限制
外键约束 (FK)foreign key constraint 表关系
增加外键约束时,设置级联更新、级联删除:
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
二.手动生约束
--手动添加主键的约束
alter table Employee add constraint PK_Employee_EmpId primary key(EmpId)
alter table Department add constraint PK_Department_DepId primary key(DepId)
--为EmpName增加非空约束
alter table Employee alter column EmpName varchar(50) not null
--为EmpName增加唯一键约束
alter table Employee add constraint UQ_Employee_EmpName unique(EmpName)
--删约束
alter table Employee drop constraint UQ_Employee_EmpName
--为性别增加默认约束,是默认值为"男"
alter table Employee add constraint DF_Employee_EmpGender default('男') for EmpGender
--为年龄增加检测约束 0—120含0和120
alter table Employee add constraint CK_Employee_EmpAge check(EmpAge>=0 and EmpAge<=120)
--为性别增加检查约束非男即女
alter table Employee add constraint CK_Employee_EmpGender check(EmpGender='男' or EmpGender='女')
--为员工表增加外键约束
--首先设置部门表中的DepId为主键,外键不能为空
alter table Department add constraint PK_Department_DepId primary key(DepId)
--然后写约束
alter table Employee add constraint FK_Employee_EmpDepartmentId foreign key(EmpDepartmentId) references Department(DepId)on delete cascade
alter table Employee drop constraint FK_Employee_EmpDepartmentId
--一条语句删除多条约束,约束名用逗号隔开
alter table Employee drop constraint FK_Employee_EmpDepartmentId,
CK_Employee_EmpAge,
UQ_Employee_EmpName
--1条语句为表增加多个约束
alter table Employee add constraint
UQ_Employee_EmpName
unique(EmpName),
constraint
CKSSS
check(Emp>=0 and EmpAge<=150)
相关文章推荐
- 如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
- 如何用java连接各种类型的数据库
- 如何将excel 数据库表结构生成powerdesign物理模型
- 如何直接下载保存在Oracl数据库中Blob字段的文件(不生成临时文件)???
- 如何根据hibernate的实体类和实体类配置文件生成数据库的表
- 如何用Powerdesigner的PDM(物理数据模型)生成数据库
- 如何利用Hibernate配置文件生成数据库
- [VB.NET]100分求:如何从数据库取出数据并生成表格显示数据?
- 数据库视图+如何删除没有主键约束名的约束。
- SQL Server 2008 转换为 SQL 2005 数据库 脚本生成方式(解决主键、索引、标识等数据库约束丢失)
- 如何控制code-first生成的数据库表名的单复数
- 如何将数据库的表导出生成Excel?
- pd连接数据库生成pd图/各种数据库相互转换(以oracle->mysql为例)/导出成各种数据库脚本
- 在jsp中如何有JDBC连接各种数据库之Oracle
- 如何使用Visual Studio 2010在数据库中生成随机测试数据
- [原创]如何收缩数据库日志与脚本生成!
- 如何查看数据库的各种数据文件?
- 如何利用数据库建立Union 约束
- hibernate对各种数据库主键的生成策略
- 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)