1.域完整性
域完整性是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。
2.实体完整性
实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。
3.参照完整性
参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。
如果是父子关系,
或者
一对多
关系。
可以通过
创建外键的方式,
在
父表
与
子表之间,
创建一个关联关系。
例如:
--
创建测试主表.
ID
是主键.
CREATE
TABLE
test_main
(
id
INT
NOT
NULL,
value
VARCHAR(10),
PRIMARY
KEY(id)
)
--
创建测试子表.
CREATE
TABLE
test_sub
(
id
INT
NOT
NULL,
main_id
INT
,
value
VARCHAR(10),
PRIMARY
KEY(id)
)
--
插入测试主表数据.
INSERT
INTO
test_main(id,
value)
VALUES
(1,
'ONE')
INSERT
INTO
test_main(id,
value)
VALUES
(2,
'TWO')
--
插入测试子表数据.
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(1,
1,
'ONEONE')
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(2,
2,
'TWOTWO')
SQL>
--
创建外键(默认选项)
SQL>
ALTER
TABLE
test_sub
ADD
CONSTRAINT
main_id_cons
FOREIGN
KEY
(main_id)
REFERENCES
test_main
Table
altered.
SQL>
SQL>
--
测试删除主表数据.
将出错
ORA-02292:
违反完整约束条件
SQL>
DELETE
2
test_main
3
WHERE
4
ID
=
1
DELETE
*
ERROR
at
line...如果是
父子关系,
或者
一对多
关系。
可以通过
创建外键的方式,
在
父表
与
子表之间,
创建一个关联关系。
例如:
--
创建测试主表.
ID
是主键.
CREATE
TABLE
test_main
(
id
INT
NOT
NULL,
value
VARCHAR(10),
PRIMARY
KEY(id)
)
--
创建测试子表.
CREATE
TABLE
test_sub
(
id
INT
NOT
NULL,
main_id
INT
,
value
VARCHAR(10),
PRIMARY
KEY(id)
)
--
插入测试主表数据.
INSERT
INTO
test_main(id,
value)
VALUES
(1,
'ONE')
INSERT
INTO
test_main(id,
value)
VALUES
(2,
'TWO')
--
插入测试子表数据.
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(1,
1,
'ONEONE')
INSERT
INTO
test_sub(id,
main_id,
value)
VALUES
(2,
2,
'TWOTWO')
SQL>
--
创建外键(默认选项)
SQL>
ALTER
TABLE
test_sub
ADD
CONSTRAINT
main_id_cons
FOREIGN
KEY
(main_id)
REFERENCES
test_main
Table
altered.
SQL>
SQL>
--
测试删除主表数据.
将出错
ORA-02292:
违反完整约束条件
SQL>
DELETE
2
test_main
3
WHERE
4
ID
=
1
DELETE
*
ERROR
at
line
1:
ORA-02292:
integrity
constraint
(HR.MAIN_ID_CONS)
violated
-
child
record
found
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)