从Mysql 5.7文件:

  • 如果键是PRI,则列是主键或多列主键中的列之一。
  • 如果键是UNI,则该列是唯一索引的第一列。(唯一索引允许多个空值,但可以通过检查Null字段来判断该列是否允许空。)
  • 如果键为MUL,则该列是非唯一索引的第一列,其中允许在列中多次出现给定值。

例子:

此示例既没有PRI、MUL,也没有UNI:

mysql> create table penguins (foo INT);
Query OK, 0 rows affected (0.01 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo   | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

MUL的示例:

mysql> create table penguins (foo INT, index(foo));
Query OK, 0 rows affected (0.01 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo   | int(11) | YES  | MUL | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

具有主键的列。

mysql> create table penguins (foo INT primary key);
Query OK, 0 rows affected (0.02 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo   | int(11) | NO   | PRI | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

具有唯一键的列Uni:

mysql> create table penguins (foo INT unique);
Query OK, 0 rows affected (0.01 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo   | int(11) | YES  | UNI | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

具有MUL:

mysql> create table penguins (foo INT, bar INT, index(foo, bar));
Query OK, 0 rows affected (0.01 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo   | int(11) | YES  | MUL | NULL    |       |
| bar   | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

每个列都有MUL。

mysql> create table penguins (foo INT, bar int, index(foo), index(bar));
Query OK, 0 rows affected (0.01 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo   | int(11) | YES  | MUL | NULL    |       |
| bar   | int(11) | YES  | MUL | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

第一列中具有MUL:

mysql> create table penguins (foo INT, bar INT, baz INT, INDEX name (foo, bar, baz));
Query OK, 0 rows affected (0.01 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| foo   | int(11) | YES  | MUL | NULL    |       |
| bar   | int(11) | YES  |     | NULL    |       |
| baz   | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)

带有外键引用但主键的表是MUL

mysql> create table penguins(id int primary key);
Query OK, 0 rows affected (0.01 sec)mysql> create table skipper(id int, foreign key(id) references penguins(id));
Query OK, 0 rows affected (0.01 sec)mysql> desc skipper;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  | MUL | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> desc penguins;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | NO   | PRI | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

参考资料:在MySQL中,MUL、PRI和UNI有什么区别? - 问答 - 云+社区 - 腾讯云 (tencent.com)

在MySQL中,MUL、PRI和UNI有什么区别?相关推荐

  1. Mysql 中 MUL,UNI,MUL 简单释义

    在MySQL中MUL.PRI和UNI是什么? 从Mysql 5.7文件: 如果键是PRI,则列是主键或多列主键中的列之一. 如果键是UNI,则该列是唯一索引的第一列.(唯一索引允许多个空值,但可以通过 ...

  2. php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解

    本篇文章介绍了MySQL中普通索引和唯一索引的区别,讲解很详细,希望对学习MySQL的朋友有帮助! 需要注意的是: redo log中的数据,可能还没有 flush 到磁盘,磁盘中的 Page 1 和 ...

  3. MySQL中索引与视图的用法与区别详解

    索引与视图是我们在日常使用mysql必不可少的一部分,最近在学习中看到一本书中关于这方法写的不错,所以这篇文章主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关资料,需要的朋友可以参考借鉴, ...

  4. MySQL+create+base,MySQL中CREATE DATABASE和CREATE SCHEMA的区别

    MySQL中CREATE DATABASE和CREATE SCHEMA的区别 create schema 是创建模式 create database 是创建数据库 但进入MySQL不用选择任何数据库即 ...

  5. mysql中 REPLACE INTO 和 INSERT INTO 的区别

    mysql中 REPLACE INTO 和 INSERT INTO 的区别 REPLACE INTO 和 INSERT INTO 功能类似,都是像表中插入数据,不同点在于:REPLACE INTO 首 ...

  6. mysql中的where和having子句的区别

    mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句 ...

  7. MySQL中char,varchar和text的区别

    MySQL中char,varchar和text的区别 java程序中的string类型,在mysql数据表中可以有三种对应的类型:char,varchar和text. char,varchar和tex ...

  8. android float类型保留两位小数_你知道MySQL中Decimal类型和Float Double的区别吗?

    出处:cnblogs.com/panchanggui/p/10766607.html MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,flo ...

  9. mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别

    转载地址: https://www.cnblogs.com/exmyth/p/3616672.html 在mysql中存在着各种utf8编码格式,如下表: 1)utf8_bin 2)utf8_gene ...

最新文章

  1. 常用元素位置与大小总结
  2. 00asp.net_js前后台代码互访
  3. 进程与线程||线程应用:异步调用||多线程与单线程
  4. linux基础命令_Linux命令基础大全
  5. 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!
  6. ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
  7. Python连接telnet客户端连接服务端程序
  8. java utf8转iso8859-1_Java字符编码处理(UTF-8/ISO-8859-1)之一 –读文本文件乱码问题 | 学步园...
  9. 港中文开源 | 融合视频目标检测与单目标、多目标跟踪
  10. oracle下载配置文件,oracle 11G、12C BBED 配置和库文件下载!
  11. WPS2012交叉引用技巧,word比wps这点强更新參考文献
  12. spring4声明式事务mdash;02 xml配置方式
  13. 以下哪些可以成为html文件的扩展名_今天在我的visual studio code里装了以下插件,现在用着很爽...
  14. 酷酷跑真有java游戏吗_JAVA版光影分享【仅此一次】下
  15. 倪捷:智能语音扩展数字化服务
  16. html如何将文字生成图片,文字转图片工具,文字图片生成器,把几句话做陈图片
  17. 《哪来的天才》读书笔记
  18. 计算器算贝塞尔公式_绝版应用!超级好用的计算器!
  19. 光标大小怎么调_cad十字光标和坐标系,你必知的几个小技巧!
  20. win7系统下联想thinkpad x220笔记本电脑关闭触摸板

热门文章

  1. 聚焦数字经济 共商数字机遇 中科物联与圣笛数控再添新伙伴
  2. Navicat之服务器监控,进行查询进程监控
  3. 判断一个数字,判断这个数字是奇数还是偶数 打印出来
  4. 机器视觉(1)-- 视觉伺服控制系统简介
  5. 中文手写数据生成基于paddleocr和textrenderer-大幅提高中文识别准确率
  6. 云主机发展市场风起云涌
  7. ]!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
  8. 某盾验证加密参数分析——cb,data参数(终篇)
  9. 北京化工大学计算机复试题,北京化工大学考研复试物理化学题库
  10. 电子签名、电子签章、电子印章