在数据库中数据之间的关联关系有哪几种,试举例说明

在数据库中数据之间的关联关系有哪几种,试举例说明,第1张

关系完整性主要包括域完整性、实体完整性和参照完整性三种。

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6777160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存