如何分析数据库表之间的关联关系

如何分析数据库表之间的关联关系,第1张

如果是

父子关系

或者

一对多

关系。

可以通过

创建外键的方式,

父表

子表之间,

创建一个关联关系。

例如:

--

创建测试主表.

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

1、创建产品及订单两张测试表,

create table test_product(prodid number, prodname varchar2(200))

create table test_order(orderid number, prodid number)

2、插入产品表测试数据

insert into test_product values(1001,'玩具')

insert into test_product values(1002,'书本')

insert into test_product values(1003,'收集')

3、插入订单表测试数据

insert into test_order values(1,1001)

insert into test_order values(2,1002)

insert into test_order values(3,1001)

insert into test_order values(4,1001)

4、编写sql,关联产品表prodid与订单表prodid,

select * from TEST_order t, test_product b

where t.prodid = b.prodid,


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

原文地址: https://outofmemory.cn/sjk/6770022.html

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

发表评论

登录后才能评论

评论列表(0条)

保存