Mysql学习之constraint/key/primary key/unique/foreign key/constraint的关系
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的话,数据库会自动为你生成一个默认的约束名称与索引名称。
Mysql学习之constraint/key/primary key/unique/foreign key/constraint的关系相关推荐
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?
一.MySQL索引类型 MySql常见索引类型有:主键索引.唯一索引.普通索引.全文索引.组合索引 PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PR ...
- mysql一对一外键约束_MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表...
我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id会有一个或者同n个相同字段,这样就导致数据表结构数据重复冗余, 冗余还无所谓,关键是如果我要改其中一个相同的字段信息,其 ...
- mysql外键约束cascade_mysql外键约束foreign key ON DELETE CASCADE ON UPDATE CASCADE
正 文: 一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强.关于完整 ...
- android sqlite foreign key,SQLite外键(Foreign Key) 的使用例子
从SQLite 3.6.19 开始支持 外键约束. sqlite> PRAGMA foreign_keys; 0 sqlite> PRAGMA foreign_keys = ON; sql ...
- 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...
- mysql外键_MySQL外键约束(FOREIGN KEY)
MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用.对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表). 外键用 ...
- mysql外键名_MySQL外键(foreign key)使用及说明详解
外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...
- mysql 说明外码_MySQL外键(foreign key)使用及说明详解
外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合
normal 普通索引 unique 唯一的,不允许重复的索引 该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl 全文搜索的索引 FULLTEXT 用于搜索 ...
最新文章
- 外贸网络推广浅谈蜘蛛抓取频次的原则跟哪些有关?
- 面试题SMKJ——no.1
- shell脚本详解(十二)——Here Document免交互及Expect自动化交互
- java中如何将JScrollPane的垂直滚动条自动移动到最下端
- 网络发展之网络电话应用
- mysql建表后添加约束_MYSQL建表完成之后添加约束
- 中文知识图谱研讨会的学习总结 (上) 图谱引入、百度知心、搜狗知立方
- 免费的银行联行号查询/接口
- Javascript农历与公历相互转换
- pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed
- java:程序包XXX不存在
- uniapp+unicloud开发微信小程序流程
- ipv6默认网关怎么打开。有偿。
- 科技新品 | 第一视角沉浸式飞行无人机;全球首款可折叠165英寸电视;新一代增强现实智能眼镜...
- trackmaker翻译_水工词汇翻译
- 分享:SET“红绳”悬吊运动训练的基本概念
- Kubernetes CKAD 1.20 - 真题 (第2题) - 全网
- 卧听夏蝉---如何在论文中优雅的插入代码
- esp8266 继电器接线图_[ESP8266]ESP8266 NodeMCU+电磁继电器 简易物联网控制 详细制作过程...
- 硬盘使用时间可以改吗,怎么样修改呢?