Mysql学习之constraint/key/primary key/unique/foreign key/constraint的关系

zz/2024/4/20 0:26:27

1.constraint就是约束的意思,在MySQL中约束的表现形式有:not null/ primary key/unique隐含有约束功能。

2.如果为一个字段创建了约束,除非这个字段是not null ,否则就是为了这个字段即创建了约束又创建了索引,也就是说primary key为主键创建了约束和索引,unique也是一样。

但是当primary key 与constraint 关键字搭配使用的时候,将会忽视constraint 所创建的约束名与索引,其约束名与索引名皆为primary,比如:create table jc_one (id int ,names varchar(10) ,primary key(id))和create table jc_one (id int ,names varchar(10) ,constraint   my_self_index primary key(id))执行结果是一样的,因此在使用primary key的时候就不需要使用constraint了。

而unique 则不一样,如果unique不与constraint 搭配使用,则约束与索引名都默认为字段名称,而当使用unique与constraint 配合使用时,其约束名称与索引名称结尾constraint定义的一样,create table jc_one (id int ,names varchar(10) ,unique(id))的约束名与索引为id,而create table jc_one (id int ,names varchar(10) ,constraint my_self_key unique (id))索引名与约束名都是my_self_key。

注:如何验证以上结论呢,在mysql下的有个information_schema的数据库,该数据库下有个table_constraints表与 STATISTICS表,这两张表里分别存放着数据库中所有表的约束名与索引名,所以我们可以通过查看这两个表的变化,去查看结果

3.key与index 一样,只创建索引,不创建约束

4.foreign key 是建立外键关系,其与constraint搭配使用也是一样的,当然如果你不使用constraint的话,数据库会自动为你生成一个默认的约束名称与索引名称。


http://www.ngui.cc/zz/2700328.html

相关文章

基于jdk8的集合源码学习(二):List集合家族研究(AbstractList)

List集合继承关系如图,我们将根据这层关系进行自上而下的分析,分析每个类出现的原因,拥有哪些方法,这些方法底层是如何实现的: 学习一:List接口与AbstractCollection的区别: 从这个继承关系图中…

Spring的BeanFactory重要属性之PropertyEditor,如何bean的属性转换

PropertyEditor是什么? PropertyEditor是JavaBean规范里,提供的一个高级接口,该接口提供了一些方法规范,这些方法可以将JavaBean的外部数据String类型的数据,转换成JavaBean的内部属性值。PropertyEditorSupport是什么…

传统企业如何搭上互联网+的大船

 2014年被称为互联网元年,自2000年互联网泡沫之后,互联网再次开始成为商界关注的热点话题,互联网也被上升到国家战略高度。唯恐被时代抛弃的传统企业也纷纷加入互联网大军,进行一系列业务调整和策略改革。…

ServerSAN解析(四):FusionStorage存储与计算分合灵活部署

 FusionStorage也是款可以部署在X86服务器上的种分布式块存储软件,利用服务器的本地HDD、SSD等介质组织成一个大规模存储资源池,对上层的应用和虚拟机提供标准的iSCSI块存储接口。FusionStorage软件支持主流的服务器产品&#x…

EMC联邦帝国前世今生

 说起存储,我们不得不说EMC这一存储帝国的霸主,从初创公司到目前的行业领导者,其远见和创新一直被后来者模仿,也赢得世人称赞。还记得上个世纪七八十年代,IBM大型机控制整个存储市场,所有存储都是配套大型机;为此IBM推出磁盘存储系统,整个系统存储容量几百M,但其重…

虚拟化三剑客专题-VMware(上)

 什么是VMware vSphere vSphere是VMware推出的基于云的新一代数据中心虚拟化套件,提供了虚拟化基础架构、高可用性、集中管理、监控等一整套解决方案。 VMware vSphere 主要组成 ESX/ESXi: 物理服务器的虚拟化层,它将…

VMware用技术浇灌生态之花

 今天决定和大家聊一下VMware方案和认证体系,因为我对虚拟化的了解就是从VMware开始。虽然近几年VMware历经多次策略调整和人事变迁,但是无论在EMC联邦还是在Dell领带下独立运作,VMware在虚拟化和私有云领域的领导地位依然无法撼动。作为一个纯软件公司,VMware通…

Docker这么火,但你对它的原生网络知多少?

 ICT架构师技术交流 分析和交流ICT行业最前沿技术,分享更多云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识,旨在知识交流、开放共享和共同进步。 在云计算架构设计中,最复杂且最重要的组件就是…

【备份专题】虚拟机备份原理和架构

 虚拟机备份原理和架构 ICT架构师技术交流 分析和交流ICT行业最前沿技术,分享更多存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识,旨在知识交流、开放共享和共同进步。 虚拟化备份技术最早是由VMware提供和发起的,随着虚拟化应用在企业和各个行业的普及,主…

[福利] 告诉你什么叫别人家的架构师

本文选自QCon对QCon北京2016大会的一些总结,虽然大会已经落幕,但大会中涉及很多架构方面的话题,希望能够给参会者带来一些参考和启发。点击阅读原文下载QCon大会技术架构相关资料。 通常,当我们看到别人家的架构师,以及…