父子关系,
或者
一对多
关系。
可以通过
创建外键的方式,
在
父表
与
子表之间,
创建一个关联关系。
例如:
--
创建测试主表.
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,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)