关于SQL Server数据表的五种约束
来源:互联网 发布:蜂窝数据各app关不了 编辑:程序博客网 时间:2024/04/29 14:14
1、主键约束(PRIMARY KEY)
主键约束可以在表中定义一个主键值,它可以唯一确定表中每一条记录,每个表中只能有一个主键约束(只能有一个主键约束的意思并不是说受主键约束的列只能有一个),并且受主键约束的列不能为空值。如果主键约束定义在不止一列上,则某一列中的值可以存在重复,但是受主键约束的所有列的组合值必须唯一。
2、唯一性约束(UNIQE)
唯一性约束确保在非主键列中不输入重复的值。用于指定一个或多个列的组合具有唯一性,以防止在列中输入重复的值。可以在一个表中定义多个唯一性约束,但是只能定义一个主键约束。唯一性约束允许空值,但是当和参与唯一性约束的任何值一起使用时,每列只允许一个空值。
3、检查约束
检查约束对于输入列或者整个表中的值设置检查条件,可以限制输入值,以保证数据库之间的完整性。检查约束通过数据的逻辑表达式来确定有效值。例如:定义一个age年龄字段,可以通过创建CHECK约束条件,将age字段里面的值的范围限定在0到150之间(age >=0 AND age<=150)。
- 每个字段只能设置一个检查约束。
- 检查约束中不能包含子查询。
- 一个列级检查约束只能与限制的字段有关,一个表级检查约束只能与限制的表中的字段有关。
4、默认约束
默认约束指定在插入操作中如果没有提供输入值时,系统会自动制定插入值,即使该值是NULL。当必须向表中加载一行数据但是不知道某一列的值,或者是该值尚不存在时,此时可以使用默认值约束。
5、外键约束
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。比如说:create table t_group ( id int not null, name varchar(30), primary key (id) ); insert into t_group values (1, 'Group1'); insert into t_group values (2, 'Group2');create table t_user ( id int not null, name varchar(30), groupid int, primary key (id), foreign key (groupid) references t_group(id) on delete cascade on update cascade ); insert into t_user values (1, 'qianxin', 1); --可以插入 insert into t_user values (2, 'yiyu', 2); --可以插入 insert into t_user values (3, 'dai', 3); --错误,无法插入,用户组3不存在,与参照完整性约束不符 insert into t_user values (1, 'qianxin', 1); insert into t_user values (2, 'yiyu', 2); insert into t_user values (3, 'dai', 2); delete from t_group where id=2; --导致t_user中的2、3记录级联删除 update t_group set id=2 where id=1; --导致t_user中的1记录的groupid级联修改为2
0 0
- 关于SQL Server数据表的五种约束
- sql的五种约束
- SQL server 创建与删除数据库,数据表,约束的创建与删除语法
- 关于信息重复SQL SERVER所加的检查约束
- 关于ACCESS数据转为SQL SERVER数据表
- sql server 2005 的约束
- SQL Server数据库的约束
- 数据表的约束
- 关于sql数据库的约束
- 导出sql server数据表的详细结构
- SQL Server 2005导出数据表的内容
- SQL server数据库的数据表、字段查询
- SQL Server数据表管理
- sql server 数据表类型
- Asp.net中关于excel文件批量导入SQL Server数据表
- sql 五种约束 规则 默认值
- 关于数据表的一些SQL语句
- SQL Server中约束的介绍
- java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- 树状数组求区间和
- Java实现二维数组的转置
- Java中普通代码块,构造代码块,静态代码块区别及代码示例 [已删除]
- php运行出现Call to undefined function curl_init()
- 关于SQL Server数据表的五种约束
- python 内置变量
- 事物配置
- L1-009. N个数求和
- 19-每天一个Linux命令 find
- EL表达式的关系运算
- 【Java】SSH框架功能实现 —— 一条功能线代码浅析
- 自我研究使用jenkins做持续集成测试
- JNI 学习笔记