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的关系相关推荐

  1. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别?各适用于什么场合?

    一.MySQL索引类型 MySql常见索引类型有:主键索引.唯一索引.普通索引.全文索引.组合索引 PRIMARY KEY(主键索引)  ALTER TABLE `table_name` ADD PR ...

  2. mysql一对一外键约束_MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表...

    我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id会有一个或者同n个相同字段,这样就导致数据表结构数据重复冗余, 冗余还无所谓,关键是如果我要改其中一个相同的字段信息,其 ...

  3. mysql外键约束cascade_mysql外键约束foreign key ON DELETE CASCADE ON UPDATE CASCADE

    正 文: 一,什么是foreign key,及其完整性 个人觉得,foreign key就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强.关于完整 ...

  4. android sqlite foreign key,SQLite外键(Foreign Key) 的使用例子

    从SQLite 3.6.19 开始支持 外键约束. sqlite> PRAGMA foreign_keys; 0 sqlite> PRAGMA foreign_keys = ON; sql ...

  5. 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)

    1. 数据库有六大约束 主键(primary key) 外键(foreign key):被参照的键必须有唯一约束或是主键 非空(not null) 默认(default) 检查(check):orac ...

  6. mysql外键_MySQL外键约束(FOREIGN KEY)

    MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用.对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表). 外键用 ...

  7. mysql外键名_MySQL外键(foreign key)使用及说明详解

    外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...

  8. mysql 说明外码_MySQL外键(foreign key)使用及说明详解

    外键也称之为外键约束: foreign key 外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键. 外键所在的表称之为子表(附表); 外键所指向的主键所在的 ...

  9. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合

    normal 普通索引   unique 唯一的,不允许重复的索引 该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl 全文搜索的索引 FULLTEXT 用于搜索 ...

最新文章

  1. 外贸网络推广浅谈蜘蛛抓取频次的原则跟哪些有关?
  2. 面试题SMKJ——no.1
  3. shell脚本详解(十二)——Here Document免交互及Expect自动化交互
  4. java中如何将JScrollPane的垂直滚动条自动移动到最下端
  5. 网络发展之网络电话应用
  6. mysql建表后添加约束_MYSQL建表完成之后添加约束
  7. 中文知识图谱研讨会的学习总结 (上) 图谱引入、百度知心、搜狗知立方
  8. 免费的银行联行号查询/接口
  9. Javascript农历与公历相互转换
  10. pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed
  11. java:程序包XXX不存在
  12. uniapp+unicloud开发微信小程序流程
  13. ipv6默认网关怎么打开。有偿。
  14. 科技新品 | 第一视角沉浸式飞行无人机;全球首款可折叠165英寸电视;新一代增强现实智能眼镜...
  15. trackmaker翻译_水工词汇翻译
  16. 分享:SET“红绳”悬吊运动训练的基本概念
  17. Kubernetes CKAD 1.20 - 真题 (第2题) - 全网
  18. 卧听夏蝉---如何在论文中优雅的插入代码
  19. esp8266 继电器接线图_[ESP8266]ESP8266 NodeMCU+电磁继电器 简易物联网控制 详细制作过程...
  20. 硬盘使用时间可以改吗,怎么样修改呢?

热门文章

  1. 新电脑的正确打开方式——(近万字图文并茂详细分步骤讲解)【万一那天你就有新电脑了呢】包括个性化·等你来解锁哦
  2. 【TARS】初识TARS
  3. CUDA:工作负载遵循CPU预处理->GPU处理->CPU后处理的形式的实例
  4. 融云 | 企业通讯录的设计与实现
  5. 导入技能要素三大类_导入技能的构成要素
  6. Ubuntu 编译jdk源码
  7. libp2p kad 迭代查询
  8. CTP穿透式监管怎么实现代码, 穿透测试API
  9. deepin安装配置jdk环境变量
  10. 如何在UnrealEngine虚幻引擎中加载Web页面