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

MySQL 约束介绍

约束 限定某个某个字段引用完整性 从,必须引用/参考主表主键唯一约束 在创建约束时,如果不给约束命名,默认名不是列名,而是自动产生一个键名(例如student_ibfk...创建(CREATE)时就指定约束的话,先创建主表,再创建从时,先删从先删除外约束),再删除主表 从主表参照列名字可以不相同,但是数据类型必须一样,逻辑意义一致 在“...] FOREIGN KEY(从某个字段) REFERENCES 主表名(参考字段) ); #(从某个字段)数据类型必须主表名(参考字段)数据类型一致,逻辑意义也一样...#(从某个字段)字段名可以主表名(参考字段)字段名一样,也可以不一样 -- FOREIGN KEY: 在级指定子表 -- REFERENCES: 标示在父 约束等级 Cascade...not null No action方式:如果子表中有匹配记录,则不允许对父对应候选进行update/delete操作 Restrict方式:同no action, 都是立即检查约束(如果没有指定等级

1.6K41
您找到你想要的搜索结果了吗?
是的
没有找到

【读书笔记】《 Hadoop构建数据仓库实践》第2章

一个中允许有多个候选。 (3)主键 唯一标识记录候选主键是唯一、非空没有被选做主键候选称为备用。...(4) 一个一个多个集合,这些匹配某些其他(也可以是同一个)候选。注意外引用不一定是主键,但一定是候选。当一出现在两张时候,它通常代表两张表记录之间关系。...视图是虚拟,它只是一个查询语句逻辑定义,其中并没有物理存储数据。 (2)参照完整性 如果存在外,则键值必须主表某些记录候选键值相同,或者值必须全部为空。...在图2-1,员工所属分公司是。该值要么是分公司分公司编号值,要么是空(如新员工已经加入了公司,但还没有分派到某个具体分公司时)。...ERD传统上高度规范化关系模型联系密切,但该技术在维度模型广泛使用。在维度模型ERD,实体由事实和维度组成,关系体现为在事实引用维度主键

92420

【MySQL】04_约束

可以作用在多个列上,不与一起,而是单独定义 级约束级约束区别 位置 支持约束类型 是否可以起约束名 后面 语法都支持,但没有效果 不可以 所有下面 默认和非空不支持,其他支持 可以...FOREIGN KEY 约束 别名:约束 主表和从/父和子表 主表(父):引用参考(子表):引用别人,参考别人 例如:员工员工所在部门这个字段值要参考部门:...例如:学生、课程、选课表:选课表学生和课程要分别参考学生和课程,学生和课程是主表,选课表是从。 特点: 从,必须引用/参考主表主键唯一约束。为什么?...,然后才可以删除主表数据 在“从”中指定约束,并且一个可以建立多个约束 从主表参照列名字可以不相同,但是数据类型必须一样,逻辑意义一致。...null,但是要注意子表不能为not null No action方式 :如果子表中有匹配记录,则不允许对父对应候选进行update/delete操作 Restrict方式 :同no action

2.4K20

软考高级:超候选主键概念和例题

(Super Key) 超是数据库能够唯一标识每条记录属性集合。它可以是一个,也可以是多个组合。超作用是确保数据每一行数据都可以唯一地识别。...主键(Primary Key) 主键是从一个多个候选中选出一个,用于唯一标识每条记录。每个只能有一个主键主键值不能重复,也不能为NULL。...这里课程ID在选课表中就是一个,它引用了课程主键。 接下来,我将根据这些概念出 6 道相关选择题,并在最后给出答案和详细讲解。... 答案讲解 答案:C. 超。超是能够唯一标识每条记录属性集合,可能包括一个多个字段。 答案:B. 候选候选是最小,不能再分割。 答案:A. 一个。每个只能有一个主键。...选择主键时考虑是唯一性、稳定性和简洁性,颜色主键选择无关。 答案:B. 建立之间逻辑关系。用于建立两个之间关系,保证引用数据完整性。 答案:D.

8400

MySQL数据库:数据完整性及约束应用

数据完整性 1.域完整性:---------匹配完整性:非空、缺省 字段/ 2.实体完整性:-------匹配完整性:主键、唯一 记录/行 3.引用完整性:-------匹配完整性: 之间...约束:constraint MySQL约束分类 主键:primary key 唯一:unique 非空:not null 缺省:default :foreign key 主键、唯一...、都会自动创建索引 主键:一个只能有一个主键,其可以对应一个字段,也可以对应多个字段(组合主键) 唯一:也成为候选主键(跟主键区别在于可以存储null值) :来源于主表主键唯一...key(对应字段) references 主表(主键字段唯一字段) 创建组合主键 primary key (字段1,字段2) 对于已经存在,创建唯一约束 alter table 名 add...删除指定名称索引 alter table 名 drop index 索引名称; 提醒:对于有主外关联,删除数据,如果无删除级联操作,那么删除主表数据之前,必须先删除从对应数据

1.5K30

SQL命令 CREATE TABLE(五)

但是,可以引用RowID(ID)标识。在任何情况下,引用都必须存在于引用,并且必须定义为唯一引用字段不能包含重复值NULL。...如果指定没有定义主键,则默认为为指定定义IDENTITY。 如果指定没有定义主键,也没有定义标识,则默认为RowID。...要定义,用户必须对引用引用具有REFERENCES特权。如果通过动态SQLxDBC执行CREATE TABLE,则需要REFERENCES权限。...如果字段没有默认值,它将被设置为NULL。需要注意是,在包含缺省值条目的引用必须存在一行。 CASCADE -删除引用行时,将检查所有引用,以查看是否有任何行引用要删除行。...这意味着INSERTUPDATE操作可能会为字段指定一个引用行不对应值。NOCHECK关键字还阻止执行引用操作子句。SQL查询处理器可以使用来优化之间联接。

1.7K50

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

not NULL; 删除自增列,仍然时主键,但是没有自增长功能 4、复合主键 使用创建主键。...四、参照完整性 1、参照完整性简介 MySQL参照完整性一般是通过MySQL(foreign key)实现(仅innoDB支持)所引用必须是主键。...如果约束指定了参照动作,主表记录做修改,删除,从引用会做相应修改,不修改,拒绝修改设置为默认值。 引用列名必须是主键,且在删除引用时必须删除引用关系或者删除当前。...级联动作设置为NO ACTION,如果子表中有匹配记录,则不允许对父对应候选进行update/delete操作。...,将子表上匹配记录设为null ,要注意子表不能为not null。

1.9K20

数据治理专业认证CDMP学习笔记(思维导图知识点)- 第五章数据建模设计篇

三元关系:涉及三个实体关系。 Foreign Key:在物理模型建模中表示关系,在数据库建立来定义关系。 【属性】 属性 Attribute:定义、描述度量实体某个方面的性质。...属性在图中是在实体矩形内用列表描述。实体属性物理展现为、视图、文档、图形文件、字段、标记节点等。 标识符 Identifiers,,是唯一标识实体实例一个多个属性集合。...主键:被选择为实体唯一标识符候选。备用:是一个候选,虽唯一,但没有被选为主键,可用于查找特定实体实例。 独立实体:其主键仅包含只属于该实体属性,用矩形符号表示。...渐变类维度根据变化速率和类型来管理变 化,主要变化有覆盖、新行、新。 雪花模型 Snowflaking:将星型模型平面、单、维度结构规范为相应组件层次结构网 络结构。...第二范式 2NF:每个实体都有最小主键,每个属性都依赖于完整主键。 第三范式 3NF:每一实体都没有隐藏主键,属性都不依赖于键值任何属性(仅依赖于完整主键)。

1.6K20

MySQL-多表操作

它用于返回关键字(LEFT JOIN)左中所有的记录,以及右符合连接条件记录。当左某行记录在右没有匹配记录时,右表相关记录将会设为NULL。...当右某行记录在左没有匹配记录时,左相关记录将设为空值。...约束 添加约束 键指的是-一个引用另一个引用应该具有主键约束唯一性约束, 从而保证数据一-致性 和完整性。 ➢引用称为主表。...tbl_ name表示主表,主表后参数列表“index_ col_ name,…"表示主键约束唯一-性约束字段。...➢具有关联数据,可以通过连接查询方式获取,并且在没有添加约束时,关联数据插入、更新和删除操作互不影响。

3.2K20

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

在输入删除数据记录时,这种引用关系也不能破坏,这就是引用完整性,它作用是确保在所有具有相同意义字段值一致,不能引用不存在值。引用完整性实施方法是添加PRIMARY KEY 约束。...(3)对表之间及之间关系控制,包括约束(FOREIGN KEY)。...例如,在“成绩”“课程编号”对应“课程”“课程编号”;在“课程”“教师编号”对应“教师”“教师编号”。 3. 主键约束 主键,又称主码,是中一组合。...举例说明 在 Hotel 数据库,定义客户信息数据userinfo,假设没有主键id,为了唯一确定一个客户信息,可以把name、tel联合起来作为主键。...举例说明 在company数据库,删除Roominfo定义

81220

MySQL 数据类型属性 约束 三大范式

mysql约束主要包括主键约束、约束、唯一约束、非空约束、默认值约束。 1、主键约束 (primary key) 唯一标识一行和作为一个可以有效引用对象。...注:主键约束字段不能为空 2、约束(foreign key) 约束保证了数据库各个数据数据一致性和正确性。...简单讲就是 a 一个字段 引用 b主键字段 则引用该数据这个字段字段组合就称为。 3、唯一约束(unique) 一个数据只能有一个主键。...第二范式: 满足第一范式后,要求中所有都必须依赖于主键,而不能有任何一主键没有联系。 即一张描述一件事情。...第三范式: 保证每都和主键直接相关 第三范式又和第二范式相关,用第三范式定义描述第三范式就是,数据库如果不存在非关键字段任一候选关键字段传递函数依赖则符合第三范式,所谓传递函数依赖指的是如果存在

1.2K20

SQL重要知识点梳理!

MySQL数据库-基础知识 1.说说主键、超候选差别并举例 超(super key): 在关系能唯一标识元组属性集称为关系模式。...候选:不含有多余属性,比如(学号)、(身份证号)都是候选,又比如R1学号这一个属性就可以唯一标识元组了,而有没有性别这一属性对是否唯一标识元组没有任何影响!...主键:就是用户从很多候选选出来一个就是主键,比如你要求学号是主键,那么身份证号就不可以是主键了! :宿舍号就是学生信息。 2.为什么一般用自增列作为主键?...触发器能够拒绝回退那些破坏相关完整性变化,取消试图进行数据更新事务。当插入一个与其主键匹配外部时,这种触发器会起作用。 4.什么是存储过程?优缺点是什么?函数区别是什么?...第二范式:(确保都和主键相关)在一个数据库,一个只能保存一种数据,不可以把多种数据保存在同一张数据库,数据表里非主属性都要和这个数据候选有完全依赖关系。

79320

2022年Java秋招面试必看 | MySQL调优面试题

6、主键候选有什么区别? 表格每一行都由主键唯一标识,一个只有一个主键主键也是候选。按照惯例, 候选可以指定为主键, 并且可以用于任何引用。...图片 34、为得字段选择合适得数据类型 图片 35、存储时期 图片 36、对于关系型数据库而言,索引是相当重要概念,请回答 图片 37、解释 MySQL 连接、内连接自连接区别 图片 38、...REGEXP 是模式匹配,其中匹配模式在搜索值任何位置。 51、CHAR 和 VARCHAR 区别? 图片 52、字符串类型可以是什么? 图片 53、如何获取当前 Mysql 版本?...57、主键候选有什么区别? 表格每一行都由主键唯一标识,一个只有一个主键主键也是候选。按照惯例,候选可以指定为主键,并且可以用于任何引用。...每当行更改时,时间戳字段将获取当前时间戳。 65、设置为 AUTO INCREMENT 时,如果在达到最大值,会发生什么情况? 它会停止递增,任何进一步插入都将产生错误,因为密钥已被使用。

2.8K30

从MySQL主键为何单调递增说起

主键(primary key),一 (一组),其值能够唯一区分每个行。唯一标识每行这个(这组)称为主键主键用来表示一个特定行。...没有主键,更新删除特定行很困难,因为没有安全方法保证只涉及相关行而不误伤其他行! 主键索引自动创建,如果不自增就会造成频繁页分裂,导致性能降低。...一个属性可以为作为一个超,多个属性组合在一起也可以作为一个超。超包含候选主键候选 是最小超,即没有冗余元素。... 在一个存在另一个主键称此 主键选择 数据库每一条记录都需要有一个唯一标识,依据数据库第二范式,数据库每一个中都需要有一个唯一主键,其他数据元素和主键一一对应。...而对于用户来说,我们需要考虑是作为主键业务字段是否能够唯一标识一个人,一个人可以有多个email和手机号,一旦出现变更email或者手机号情况,就需要变更所有引用信息,所以使用email或者手机作为主键是不合适

2K30

SQL岗位30个面试题,SQL面试问题及答案「建议收藏」

Join用于从相关行和检索数据。它在两个多个之间工作,并且它从两个返回至少一个匹配。...SQL中有不同类型: · SuperKey(超级密钥)——一个多个密钥集合定义为超级密钥,它用于唯一地标识记录。主键,唯一和备用是超级子集。...· PrimaryKey(主键)——它是一个多个字段集合。它们不接受空值和重复值。并且只存在一个主键。...· ForeignKey()——在一个定义主键并在另一个定义字段标识为。...· CandidateKey(候选密钥)——在任何情况下,如果需要,任何候选密钥都可以作为主键。 · CompoundKey(复合)——此键是候选主键组合。

4.2K31

第13章_约束

# 6.4 特点 (1)从,必须引用 / 参考主表主键唯一约束 ​ 为什么?...,需要先删除从依赖该记录数据,然后才可以删除主表数据 (6)在 “从” 中指定约束,并且一个可以建立多个约束 (7)从主表参照列名字可以不相同,但是数据类型必须一样,...)字段名可以主表名(参考字段)字段名一样,也可以不一样 -- FOREIGN KEY: 在级指定子表 -- REFERENCES: 标示在父 create table dept...action方式 :如果子表中有匹配记录,则不允许对父对应候选进行 update/delete 操作 Restrict方式 :同 no action, 都是立即检查约束 Set...# 6.10 阿里开发规范 【 强制 】不得使用级联,一切概念必须在应用层解决。 说明:(概念解释)学生 student_id 是主键,那么成绩 student_id 则为

34430

干货 | 新手请速戳!30个精选SQL面试问题Q&A集锦

什么是SQLJoins(连接)? Join用于从相关行和检索数据。它在两个多个之间工作,并且它从两个返回至少一个匹配。...SQL中有多少Key(),它们如何工作? SQL中有不同类型: SuperKey(超级密钥)——一个多个密钥集合定义为超级密钥,它用于唯一地标识记录。...主键,唯一和备用是超级子集。 PrimaryKey(主键)——它是一个多个字段集合。它们不接受空值和重复值。并且只存在一个主键。...ForeignKey()——在一个定义主键并在另一个定义字段标识为。...CandidateKey(候选密钥)——在任何情况下,如果需要,任何候选密钥都可以作为主键。 CompoundKey(复合)——此键是候选主键组合。

1.4K10

MySQL 面试题

在数据库主键(Primary Key)和候选(Candidate Key)都是用于唯一标识行,但它们有以下不同点: 定义: 候选:一个一个多个,可以唯一标识每一行。...一个可能有多个候选主键:从候选中选出来一个,用作唯一表示。只能有一个主键。 数量: 一个可以有多个候选,但只能有一个主键。...主键作用是提供一种快速和可靠方法来识别行,并在之间建立关系(如)。 索引: 主键自动称为一个索引,用以提高查询性能。 候选也可以索引,但并不是自动过程,需要手动设置。...关系: 只有主键才能其他用作建立引用约束。 候选除非被选作主键,否则不会用于建立关系。 简而言之,候选是拥有唯一识别能力总成,其中一个被选作主键用于唯一确定每一行。...如果数据库支持全连接的话,结果集将包含两个所有记录,并且没有匹配记录将用NULL填充相应

12210

MySQL 约束

约束 约束用于建立之间关系,确保引用另一个值时完整性。 约束经常和主键约束一起使用,用来确保数据完整性,即保证该字段值必须来自于主表关联值。...在从添加约束,用于引用主表值。 例如,在员工信息,员工所属部门是一个,因为该字段是部门主键。...(key_part,…):这是主键列表。在括号列出了构成主键一个多个主键是用于唯一标识每一行一个多个组合。这些值必须唯一且不为空。...例如,在员工信息,员工所属部门是一个,因为该字段是部门主键。...确保新约束原始关联引用关联匹配

18110
领券