首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则

SQL FOREIGN KEY 约束 SQL FOREIGN KEY 约束用于防止破坏表之间关系的操作。FOREIGN KEY 是一张表中的字段(或字段集合),它引用另一张表中的主键。...FOREIGN KEY 约束防止将无效数据插入到外键列中,因为它必须是父表中包含的值之一。...int FOREIGN KEY REFERENCES Persons(PersonID) ); 要允许对 FOREIGN KEY 约束进行命名,并在多列上定义 FOREIGN KEY 约束,请使用以下...在 ALTER TABLE 时使用 SQL FOREIGN KEY 要在表已经创建的情况下在 "PersonID" 列上创建 FOREIGN KEY 约束,请使用以下 SQL: 对于 MySQL / SQL...); 删除 FOREIGN KEY 约束 要删除 FOREIGN KEY 约束,请使用以下 SQL: 对于 MySQL: ALTER TABLE Orders DROP FOREIGN KEY FK_PersonOrder

25710

『数据库』这篇数据库的文章真没人看--数据库完整性

➢ 完整性:真实地反映现实世界 数据的完整性和安全性是两个不同概念 数据的完整性 ➢防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据 ➢防范对象:不合语义的、不正确的数据 数据的安全性...参照完整性 一、参照完整性定义 关系模型的参照完整性定义 ➢ 在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码 ➢ 用REFERENCES短语指明这些外码参照哪些表的主码 【...NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno, Cno), /*在表级定义实体完 整性*/ FOREIGN KEY (Sno) REFERENCES Student...如果不满足则操作被拒绝执行 完整性约束命名子句 CONSTRAINT 约束 CONSTRAINT 约束条件名> [PRIMARY KEY短语 |FOREIGN KEY短语 |CHECK短语]...本数据库专栏是由爱吃老谈酸菜的DV一同完成的,博客链接在主页友链,是我的好哥们✈ Name:风骨散人,目前是一名双非在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    sql server 2008 数据库的完整性约束

    (2)如果现有表的某列与另一个表已有的PRIMARY KEY约束或UNIQUE约束相关联,则可向现有表添加FOREIGN KEY约束。 (3)对已有的FOREIGN KEY约束进行修改或删除。...使用FOREIGN KEY约束,应注意的几个问题: (1)每个表最多可以有253个FOREIGN KEY约束。...(2)FOREIGN KEY约束只能参照同一个数据库中的表,而不能参照其他数据库中的表。 (3)FOREIGN KEY子句中的列数目和每个列指定的数据类型必须和REFERENCES子句中的列相同。...(4)FOREIGN KEY约束不能自动创建索引。 (5)在临时表中,不能使用FOREIGN KEY约束。 (6)如果一个外键没有对应的主键值,则不能插入带该值的行。...(1)标识种子 (2)标识增量 (3)标识列的数据类型 四、完整性约束命名子句 完整性约束命名子句的格式: CONSTRAINT 约束条件名>[PRIMARY KEY短语|FOREIGN KEY

    2.3K40

    MySQL约束

    约束是按照约定(特定)条件限制,管束等意思。约束的作用是添加、删除。 在数据库中对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。...1.2、约束作用 对表中的数据进行限制,保证数据的正确性、有效性和完整性。一个表如果添加了约束,不正确的数据将无法插入到表中。约束在创建表的时候添加比较合适。...2.1、主键约束格式 格式1: 字段名 字段类型 primary key #在create table 语句中设置主键 格式2: alter table 数据库表名 add primary key(...格式一: [constraint][外键约束名称] foreign key(外键字段名) references 主表名称(主键字段名); #在create table时设置 案例: 创建一个班级表...格式: alter table 从表 drop foreign key 外键约束名称; 案例: 删除stu1中的外表关联 mysql> alter table stu1 drop foreign key

    6.6K10

    数据库学习笔记(三)

    ,也就是防止数据库中存在不正确的数据 防范对象:不合语义的、不正确的数据 数据的安全性 保护数据库,防止恶意的破坏和非法的存取 防范对象:非法用户和非法操作 1.2 实体参照性 1.2.1 实体完整性定义...(Sno, Cno) # 属性组定义为主码,只能在表级定义主码 ); 1.3 参照完整性 1.3.1 参照完整性定义 在建表时用 foreign key短语定义哪些列是外码 用 references...primary key(Sno, Cno), foreign key(Sno) references Student(Sno), foreign key(Cno) references Course...constraint 约束条件名> 约束条件> 完整性约束条件包括 not null、unique、primary key 短语、foreign key 短语、check 短语等 create...断言创建之后,任何对断言中涉及的关系的操作都会触发关系数据库管理系统对断言的检查,任何使断言不为真值的操作都会被拒绝执行 1.6.1 创建断言的语句格式 create assertion

    71220

    MySQL数据库的设计和命令行模式下建立详细过程

    (3)MySQL中有三种Key和一个Index: Primary Key(主键), Unique Key(唯一键),Foreign Key(外键)和 Index(索引)。...外键(Foreign Key):表的外键是另一表的主键, 外键可以有重复, 可以是空值。 唯一键( Unique Key):唯一标识一条记录,不能有重复,可以为空。...唯一键可以起到唯一约束的作用,当然主键也可以起到唯一约束的作用。当然我们可以不建立唯一键和主键,直接为指定的数据表的列添加唯一约束。唯一约束保证指定列的值不能重复。...KEY(studentNo) REFERENCES student(ISBN) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY(courseNo...搜索 [4]MySQL引擎 [5]MySQL中的四种Key [6]SQL的主键和外键约束 [7]唯一索引和唯一约束有什么区别

    2.1K00

    【MySQL】008-表的约束

    一、概述 1、概念 对表里的数据进行限定,保证数据的正确性、有效性和完整性; 2、分类 ①主键约束:primary key ②非空约束:not null ③唯一约束:unique ④外键约束:foreign...) ); 注意:添加语句时主键的内容填入NULL即可,会根据上一个主键的值进行自动增加 3、删除自动增长和创建表后自动增长,同非空约束和唯一约束; 六、外键约束 1、描述 个人理解:加入一个部门的员工表...2、在创建表时添加外键 语法格式: create table 表名( ......INT, dep_id INT, -- 外键对应的从表的主键(一般都是对应主键) CONSTRAINT stu_p_id_fk FOREIGN KEY (dep_id) REFERENCES...KEY 外键名称; 4、创建表后添加外键 ALTER TABLE 主表名 ADD constraint 外键名称 foreign key (外键列名称) references 从表名称(关联的从表列(

    6910

    不是吧,阿Sir,MySQL约束你竟然还不懂!

    SQL 语言通过定义一个关系所对应的基本表来完成关系模式的定义,其语句格式为: CREATE TABLE 表名( [约束条件>], [ <...C:具体操作 指定主键约束,使用的是 PRIMARY KEY 关键字 一般来说,主键约束主要用在创建表时,指定约束的方式有两种: ① 定义在列后 CREATE TABLE students ( sid..., CONSTRAINT sc_sid FOREIGN KEY (sid) REFERENCES students(sid), CONSTRAINT sc_cid FOREIGN KEY...这个时候学生表以及课程表,就同选课表之间形成了关系,可视化软件编辑插入的时候,就会默认的给出一些可插入的选择,这是软件基于你设置的外键关系而自动寻找的 ? 创建表后又怎么操作呢?...先给出基本格式: ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE

    57510

    MySQL操作之数据定义语言(DDL)(二)

    create database test; 查看数据库的定义的信息 删除数据库(drop): drop database web_2; 使用数据库(use): use 数据库名 修改数据库编码格式(改为..., #分类ID ) 建表时复制另一表数据 create table emp1 as select * from employees; 查看表列表(show): show tables; 查看建表信息...约束条件 说明 Primary Key 主键约束,用于唯一标识对应的记录 Foreign Key 外键约束 Not Null 非空约束 Unique 唯一性约束 Default 默认值约束,用于设置字段的默认值...4.1、主键约束(Primary Key) 为了快速的查询表中某条信息,设置主键来实现。...example03 ( id INT PRIMARY KEY, name VARCHAR ( 32 ) UNIQUE ) 4.4 默认约束(DEFAULT) 用于给数据库中的字段指定默认值。

    24220

    数据库主键和外键

    主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 该字段没有重复值,但可以有一个空值 作用: 用来保证数据完整性 用来和其他表建立联系用的...创建外键: ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列...支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值....CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的....PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束.

    2.4K20

    数据库的完整性

    数据的完整性和安全性是两个不同概念 数据的完整性 防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据 防范对象:不合语义、不正确的数据 数据的安全性 保护数据库 防止恶意的破坏和非法的存取...一、实体完整性 1.实体完整性的定义 关系模型的实体完整性: CREATE TABLE 中用 PRIMARY KEY 定义 ->单属性构成的码有两种说明方法 * 定义为列级约束条件 * 定义为表级约束条件...) 或者等于S中某个元组的主码值 2.关系模型的参照完整性定义 在CREATE TABLE 中一百个 FOREIGN KEY 短语定义哪些列为外码。...CHAR(9) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) FOREIGN KEY...FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) ) 3.参照完整性检查和违约处理 参照完整性检查

    1.1K90

    《MySQL入门很轻松》第5章:数据完整性及其分类

    (3)对表之间及列之间关系的控制,包括外键约束(FOREIGN KEY)。...(2)数据的存储必须确保同一表格数据之间的和谐关系。例如,“成绩”表中的“学号”字段列中的每一个学号对应一个学生,不可能将其学号对应多个学生。 (3)数据的存储必须确保维护不同表之间的和谐关系。...创建表时创建主键的方法是在数据列的后面直接添加关键字PRIMARY KEY,语法格式如下: 字段名 数据类型 PRIMARY KEY 主要参数介绍如下。 字段名:表示要添加主键约束的字段。...语法格式如下: PRIMARY KEY[字段1,字段2,…,字段n] 主要参数介绍如下: PRIMARY KEY:表示所添加约束的类型为主键约束。 字段n:表示要添加主键的多个字段。...通过 DROP语句删除PRIMARY KEY 约束的语法格式如下: ALTER TABLE table_name DROP PRIMARY KEY; 主要参数介绍如下: table_name:要删除的主键约束的表名

    87420

    2024Mysql And Redis基础与进阶操作系列(4)作者——LJS

    FOREIGN KEY 约束 1.1 作用 限定某个表的某个字段的引用完整性。 例如:员工表的员工所在部门的选择,必须在部门表能找到对应的部分。...字段2 数据类型, [CONSTRAINT 约束名称>] FOREIGN KEY(从表的某个字段) references 主表名(被参考字段) ); //(从表的某个字段)...格式 ALTER TABLE 从表名 ADD [CONSTRAINT 约束名] FOREIGN KEY (从表的字段) REFERENCES 主表名(被引用 字段) [on update xx][on...): a foreign key constraint fails(外键约束失败) (`atguigudb`....,则不允许对父表对应候选键进行update/delete操作 Restrict方式 同no action, 都是立即检查外键约束 Set default方式 (在可视化工具SQLyog中可能显示空白)父表有变更时

    11310

    MySQL从删库到跑路_高级(一)——数据完整性

    B、域完整性:限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则)。...四、参照完整性 1、参照完整性简介 MySQL参照完整性一般是通过MySQL外键(foreign key)实现的。 外键(仅innoDB支持)所引用表的列必须是主键。...Restrict动作同no action,都是立即检查外键约束。...删除score表的外键约束 ALTER TABLEscoreDROP FOREIGN KEYscore_fk; 增加score表的sid列外键约束 ALTER TABLE `score` ADD CONSTRAINT...删除成绩表的外键约束 ALTER TABLEscoreDROP FOREIGN KEYscore_fk; 增加成绩表的sid列外键约束,参照动作为set null ALTER TABLEscoreADD

    1.9K20

    MySQL数据查询之多表查询

    foreign key 定义:就是表与表之间的某种约定的关系,由于这种关系的存在,能够让表与表之间的数据,更加的完整,关连性更强。...NO ACTION 3.CASCADE 4.SET NULL RESTRICT 同no action, 都是立即检查外键约束 NO ACTION 如果子表中有匹配的记录,则不允许对父表对应候选键进行update...注意:如果左表与右表的情况反之.则关系为 多对一 关系.约束关系为:左表foreign key 字段, 对应右表普通字段....约束关系为:左表foreign key字段上 添加唯一(unique)约束, 对应右表 关联字段. 或者:右表foreign key字段上 添加唯一(unique)约束, 对应右表 关联字段....通过在从表的外键字段上添加唯一约束(unique)来实现一对一表关系.

    8.2K20

    MySql数据库约束

    选择适合的数据类型确保一个数据值满足条件   b. 外键(Foreign Key)约束   c. 编写触发器   d....  c. foreign key   d. default   e. not null 1....对于主键约束耳音,其默认约束名为PRIMARY,而对于Unique Key约束而言,默认约束名和列名一样,当然也可以人为的指定Unique Key的名字,Foreign Key约束似乎会有一个比较神秘的默认名称...key的约束 mysql> create table p( -> id int, -> u_id int, -> primary key(id), -> foreign...对错误数据的约束   在某些默认设置下,MySql数据库允许非法或不正确的数据的插入或更新,又或者可以在数据库内部将其转化为一个合法的值,如向not null的字段插入一个null值,MySql数据库会将其更改为

    1.2K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券