SQL FOREIGN KEY 约束

SQL FOREIGN KEY 约束SQLFOREIGNKEY约束一个表中的forgeignkey指向另一个表中的uniquekey(唯一约束的键)通过一个实例来解释外键。请看下面两个表:”persons”表:p_id lastname fristname address city1 Hansen Ola Timoteivn10 Sandnes2 Svendson Tove Borgvn23 Sandnes3 Pettersen Kari Storgt20 Stavanger”orders”表:o_

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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注