SQL(11)_FOREIGN KEY 约束
当某天
雨点轻敲你窗
当风声吹乱你构想
可否抽空想这张旧模样
原创作者:是飘飘呀!
博客地址:https://blog.csdn.net/weixin_44216392
FOREIGN KEY 约束(外键约束)
一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。也叫外键约束
先来看两个表,再继续学习外键约束
表tb2
表tb2_fk_test
- 首先可以看到表tb2_fk_test中的p_id指向的是tb2的p_id列的;
- “tb2” 表中的 “p_id” 列是 “tb2” 表中的 PRIMARY KEY。
- “tb2_fk_test” 表中的 “p_id” 列是 “tb2_fk_test” 表中的 FOREIGN KEY。
- FOREIGN KEY 约束用于预防破坏表之间连接的行为。
- FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。当我们执行insert into 语句时,在外键列插入非指向tb2的主键列的时候会报错;如下图,在tb2的p_id列是没有值为6的行,执行之后直接哦豁(表示很遗憾);
那么我们现在来看看外键约束是怎么实现的呢?
- 我们可以在创建表的时候添加外键约束也就是使用create table的时候,举个栗子:
-- MySQL
create table tb2_fk_test(
f_id int not null,
f_Text varchar (255),
p_id int,
primary key (f_id),
foreign key (p_id) references tb2(p_id)
);--SQL Server
create table tb2_fk_test(
f_id int not null, --f_id int not null primary key,这样也可以,不过命名是随机的
f_Text varchar (255),
constraint pk_tb2_fk_testID primary key (f_id),
p_id int foreign key references tb2(p_id)
);
如果需要定义由多个列组成的外键约束,那么可以这么写。
--MySQL / SQL Server / Oracle
create table tb3_fk_test(
f_id int not null,
f_Text varchar (255),
p_id int,
constraint pk_tb3_fk_testID primary key (f_id),
constraint fk_tb3_fk_testID foreign key (p_id) references tb2(p_id)
);
当我们的表已经被创建后,可以直接通过alter…add关键字进行外键约束的设置;
--MySQL / SQL Server / Oracle
alter table tb4_fk_test add constraint fk_tb4 foreign key (f_id) references tb2(p_id)
删除已创建的外键约束则使用alter…drop关键字
--MySQL
alter table tb4_fk_test drop foreign key fk_tb4
--SQL Server / Oracle
alter table tb4_fk_test drop constraint fk_tb4
-- 这两句还是有所区别的呢
SQL(11)_FOREIGN KEY 约束相关推荐
- SQL语法之FOREIGN KEY 约束
SQL学习 学习SQL语法 SQL语法 SQL学习 FOREIGN KEY 约束 SQL FOREIGN KEY Constraint on CREATE TABLE SQL Server / Ora ...
- SQL学习之primary key约束
目录 参考源 SQL primary key 约束 primary key create table 时的 SQL primary key 约束 MySQL / SQL Server / Oracle ...
- SQL学习之foreign key约束
目录 参考源 SQL foreign key 约束 FOREIGN KEY 作用 create table 时的 SQL foreign key 约束 MySQL SQL Server / Oracl ...
- SQL FOREIGN KEY 约束
一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY. 让我们通过一个例子来解释外键.请看下面两个表: "Persons" 表: "Orders& ...
- SQL Server中的约束:SQL NOT NULL,UNIQUE和SQL PRIMARY KEY
This article explains the SQL NOT NULL, Unique and SQL Primary Key constraints in SQL Server with ex ...
- SQL语法之PRIMARY KEY 约束
SQL学习 学习SQL语法 SQL语法 SQL学习 SQL PRIMARY KEY 约束 SQL PRIMARY KEY Constraint on CREATE TABLE SQL PRIMARY ...
- sql学习-Constraints(约束)(primary key、 foreign key、check、default)
CONSTRAINTS 约束 介绍 SQL 约束用于规定表中的数据规则. 如果存在违反约束的数据行为,行为会被约束终止. 约束可以在创建表时规定(通过 CREATE TABLE 语句): 或者在表创建 ...
- SQL PRIMARY KEY 约束
SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...
- sql的外键约束和主键约束_SQL主键约束用示例解释
sql的外键约束和主键约束 A primary key is a column or a set of columns that uniquely identifies each row in a t ...
- CHIL-SQL-PRIMARY KEY 约束
SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录. 主键必须包含唯一的值. 主键列不能包含 NULL 值. 每个表都应该有一个主键,并且每个表只能有一个主 ...
最新文章
- 从纸钱包,带你走进贴心的BCH!
- python统计并输出文件的行数_python实用统计文件行数 类似wc命令
- 《Excel与VBA开发》一书上市时间
- exchange server 2003 安装过程中的一个问题
- BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)
- MATLAB代写要求应该怎么写,matlab/simulink程序代写
- mockJs文档(一)
- [react] 举例说明useState
- 详细描述三个适于瀑布模型的项目_信息系统项目管理师-第二三章:信息系统项目管理基础与立项管理2...
- Go 并发编程 — 深入浅出 sync.Pool ,最全的使用姿势,最深刻的原理
- Oracle的dbms_jobs 自动计划
- 井电双控智能缴费管理系统、水井管理、报警管理、费用管理、实时查询、信息配置、模块配置、智能报表、水表、抄表、井电、电表、用水分析、水电、灌溉用水、绿化用水、农业用水、智慧水电、水利
- Web API 处理机制剖析 --- 拨开迷雾看本质
- Median of Two Sorted Array leetcode java
- android编程入门
- DMA控制器8237A
- 如何用matlab求解多变量非线性回归,matlab多元非线性回归教程
- RN vivo访问相册失败 warning : User cancelled image selection
- 什么是 MAC 地址?
- android图片做平移动画,Android中用Matrix实现ImageView里的图片平移和缩放动画