SQL FOREIGN KEY 约束
一个表中的 forgeign key 指向另一个表中的 unique key (唯一约束的键)
通过一个实例来解释外键。请看下面两个表:
“persons”表:
p_id lastname fristname address city
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
“orders”表:
o_id orderno p_id
1 77895 3
2 44678 3
3 22456 2
4 24562 1
请注意,”orders”表中得’p_id’列指向”persons”表中的’p_id’列。
“persons”表中的’p_id’列是”persons”表中的primary key。
“orders”表中的’p_id’列是’orders’表中的primary key。
foreign key 约束用于预防破坏表之间的连接的行为。
foreign key 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
create table persons -----创建表persons
(
p_id int,
lastname varchar(255),
fristname varchar(255),
address varchar(255),
city varchar(255)
)
select * from persons
insert into persons(p_id,lastname,fristname,address,city)
values
('1','Hansen','Ola','Timoteivn 10','Sandnes'),
('2','Svendson','Tove','Borgvn 23','Sandnes'),
('3','Pettersen','Kari','Storgt 20','Stavanger')
create table orders ---创建表orders
(
o_id int,
orderno varchar(255),
p_id varchar(255)
)
select * from orders
insert into orders(o_id,orderno,p_id)
values
('1','77895','3'),
('2','44678','3'),
('3','22456','2'),
('4','24562','1')
alter table Persons ---添加not null约束
alter column p_id int not null
alter table persons ---添加primary key主键
add primary key (p_id)
alter table orders ---添加not null约束
alter column o_id int not null
alter table orders ---添加primary key主键
add primary key(o_id)
CREATE TABLE 时的SQL FOREIGN KEY 约束
下面的SQL在”orders”表在创建时在 ‘p_id’ 列上创建 foreign key 约束:
CREATE TABLE orders1
(
o_id int not null primary key,
orderno int not null,
p_id int foreign key references persons(p_id)
)
列 数据类型 foreign key references 关联的表(列)
如需命名 foreign key 约束,并定义多个列的 foreign key 约束,请使用下面的SQL 语法:
CREATE TABLE orders2
(
o_id int not null,
orderno int not null,
p_id int,
primary key (o_id),
CONSTRAINT yuesu FOREIGN KEY (p_id)
REFERENCES persons (p_id)
)
ALTER TABLE 时的 SQL FOREIGN KEY 约束
当”orders3″表已被创建时,如需在’p_id’列创建 foreign key 约束,请使用下面的SQL:
ALTER TABLE orders3
ADD FOREIGN KEY (p_id)
REFERENCES persons (p_id)
如需命名 foreign key 约束,并定义多个列的 foreign key 约束,请使用下面的SQL 语法:
ALTER TABLE orders4
ADD CONSTRAINT yuesu
FOREIGN KEY (p_id)
REFERENCES PERSONS(p_id)
撤销 FOREIGN KEY 约束
如需撤销foreign key 约束,请使用下面的SQL :
ALTER TABLE orders4
DROP CONSTRAINT yuesu
创建外键约束的方式
在创建表的时候指定外键约束
CREATE TABLE 表名
(
column1 datatype null/not null,
column2 datatype null/not null,
......
CONSTRAINT 外键约束名 FOREIGN KEY (column1,column2,...column_n)
REFERENCE 外键依赖的表 (column1,column2...column_n)
ON DELETE CASCADE ---级联删除
)
在创建表后增加外键约束
ALTER TABLE 表名
ADD CONSTRAINT 外键约束名
FOREIGN KEY (column1,column2,...column_n)
REFERENCES 外键所依赖的表(column1,column2...column_n)
ON DELETE CASCADE ---级联删除
使用工具plsql来新增外键约束
注意,在创建外键约束时,必须先创建外键约束所依赖的表,并且该列为该表的主键。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37414.html