SQL语言基础:SQL中的数据完整性约束用法
前言
数据库的完整性是指数据库正确性和相容性,是防止合法用户使用数据库时向数据库加入不符合语义的数据,从而保证了数据库中的数据是正确的,避免非法的更新操作。
1、主键约束
1.1 完整性约束条件
完整性约束条件作用的对象有关系、元组、列三种。
1.2 完整性控制
主要有三个方面的功能:定义功能、检测功能、处理功能。检查是否违背完整性约束的时机有立即执行约束、延时执行约束。最重要的完整性约束条件是实体完整性、参照完整性。
1.3 实体完整性 Primary Key
在关系中只能有一个主键。声明主键调入方法:
-
1、将 Primary Key 保留字加在属性类型之后。
比如 Sno char(10) Primary Key
-
2、在属性列表中引入一个新元素,该元素包含保留字 Primary Key 和圆括号括起来的形成该键的属性或属性组列表。
比如:
Primary Key (Sno)
1.4 外键(Foreign Key) 约束
语法格式:Foreign Key (属性名) references 表名 (属性名)[ON DELETE][CASCADE][SET NULL]
说明:
-
Foreign Key 定义那些列为外码 ;
-
references 指明外码属于哪个表的主码 ;
-
ON DELETE CASCADE 指明删除记录同时删除关系中的记录;
-
SET NULL 表示置为空值方式。
比如:Foreign Key Sno references Student (Sno)
1.5 属性值上的约束
主要包括:
-
not null 不为空
-
unique 唯一约束
-
check 设定属性值需要满足的条件 。
比如:age Number(3) check (age>0 and age <180)
1.6 全局约束
全局约束是值一些比较复杂的完整性约束,这些约束涉及多个属性间的联系或多个不同关系间的联系。有基于元组的检查子句、断言。
1、基于元组的检查子句
主要是针对单个关系的元组加以约束。方法是在关系定义中的任何地方加上关键字Check和约束条件。
比如年龄在1到170之间,Check(age>=1 and age<=170)
2、基于断言的语法格式
格式:Create Assertion <断言名>Check)(<条件>)
例子:
- 点赞
- 收藏
- 关注作者
评论(0)