数据库中的约束

 我们在创建数据库的时候,创建表式非常简单的工作,但是,当你往表中加一些约束的时候,或许就要发愁了,因为一些约束的格式比较复杂,从而,我们每次写的时候,都需要去查工具。庆幸的事,最近刚刚总结了一下,在这里,拿出来给大家分享一下。
 我们经常用到的有这么几种约束,Primary key约束,Foreign key约束,Unique约束,Check约束、Default约束。
 一,我们来看一下Primary key约束吧!PRIMARY KEY 约束定义表中构成主键的一列或多列,一个表只能有一个 PRIMARY KEY 约束,指定为 PRIMARY KEY 的列中的值必须是唯一的 ,包含在 PRIMARY KEY 约束中的列不能接受 NULL值 。
 语法:
CONSTRAINT constraint_name PRIMARY KEY 用来指定一个有名的主键
PRIMARY KEY 在创建表的时候指定一个主键,在字段后面
CONSTRAINT constraint_name PRIMARY KEY (column_list)多个主键()有名字
PRIMARY KEY (column_list)在创建表的时候指定多个主键。
 二、与Primary Key
 相对应的就是Foreign key约束。一般情况下,在Microsoft SQL Server关系型数据库管理系统中,表和表之间经常存在着大量的关系,这些关系都是通过定义主键约束和外键约束实现的。但是有一个问题,就是删除的时候,是否是级联删除。具体如下:
 语法:
-- 在CREATE TABLE语句中定义只有一个列的外键约束
FOREITN KEY REFERENCES referenced_table_name (referenced_column)
ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
ON UPDATE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
 三、Unique约束
 UNIQUE约束指定表中某一个列或多个列不能有相同的两行或两行以上的数据存在。这种约束通过实现唯一性索引来强制实体完整性。当表中已经有了一个主键约束时,如果需要在其他列上实现实体完整性,又因为表中不能有两个或两个以上的主键约束,所以只能通过创建UNIQUE约束来实现。
 语法:
CONSTRAINT constraint_name UNIQUE
UNIQUE
CONSTRAINT constraint_name UNIQUE (column_list)
UNIQUE (column_list)
 四、Check约束
 CHECK约束用来限制用户输入某一个列的数据,即在该列中只能输入指定范围的数据。CHECK约束的作用非常类似于外键约束,两者都是限制某个列的取值范围,但是外键是通过其他表来限制列的取值范围,CHECK约束是通过指定的逻辑表达式来限制列的取值范围。
 语法:
CONSTRAINT constraint_name CHECK (logical_expression)
CHECK (logical_expression)
 注意:CHECK 约束限制在 INSERT 和 UPDATE 语句期间用户可输入特定列中的数据值 ,每列可以定义多个CHECK约束,在同一个表格中可以引用列,不能包含子查询。
 五、Default约束
 当使用INSERT语句插入数据时,如果没有为某一个列指定数据,那么DEFAULT约束就在该列中输入一个值。
 语法:
-- 在CREATE TABLE语句的列的属性中
CONSTRAINT constraint_name DEFAULT constant_expression
DEFAULT constant_expression
-- 在ALTER TABLE语句的ADD子句中
CONSTRAINT constraint_name DEFAULT constant_expression FOR column_name
DEFAULT constant_expression FOR column_name
 最后,我觉得,要想熟练掌握,就要靠我们平时在建表的时候多动手,少用图形界面,呵呵!

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章