在MySQL中,MUL、PRI和UNI有什么区别?
从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有什么区别?相关推荐
- Mysql 中 MUL,UNI,MUL 简单释义
在MySQL中MUL.PRI和UNI是什么? 从Mysql 5.7文件: 如果键是PRI,则列是主键或多列主键中的列之一. 如果键是UNI,则该列是唯一索引的第一列.(唯一索引允许多个空值,但可以通过 ...
- php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解
本篇文章介绍了MySQL中普通索引和唯一索引的区别,讲解很详细,希望对学习MySQL的朋友有帮助! 需要注意的是: redo log中的数据,可能还没有 flush 到磁盘,磁盘中的 Page 1 和 ...
- MySQL中索引与视图的用法与区别详解
索引与视图是我们在日常使用mysql必不可少的一部分,最近在学习中看到一本书中关于这方法写的不错,所以这篇文章主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关资料,需要的朋友可以参考借鉴, ...
- MySQL+create+base,MySQL中CREATE DATABASE和CREATE SCHEMA的区别
MySQL中CREATE DATABASE和CREATE SCHEMA的区别 create schema 是创建模式 create database 是创建数据库 但进入MySQL不用选择任何数据库即 ...
- mysql中 REPLACE INTO 和 INSERT INTO 的区别
mysql中 REPLACE INTO 和 INSERT INTO 的区别 REPLACE INTO 和 INSERT INTO 功能类似,都是像表中插入数据,不同点在于:REPLACE INTO 首 ...
- mysql中的where和having子句的区别
mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句 ...
- MySQL中char,varchar和text的区别
MySQL中char,varchar和text的区别 java程序中的string类型,在mysql数据表中可以有三种对应的类型:char,varchar和text. char,varchar和tex ...
- android float类型保留两位小数_你知道MySQL中Decimal类型和Float Double的区别吗?
出处:cnblogs.com/panchanggui/p/10766607.html MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,flo ...
- 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 ...
最新文章
- 常用元素位置与大小总结
- 00asp.net_js前后台代码互访
- 进程与线程||线程应用:异步调用||多线程与单线程
- linux基础命令_Linux命令基础大全
- 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!
- ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
- Python连接telnet客户端连接服务端程序
- java utf8转iso8859-1_Java字符编码处理(UTF-8/ISO-8859-1)之一 –读文本文件乱码问题 | 学步园...
- 港中文开源 | 融合视频目标检测与单目标、多目标跟踪
- oracle下载配置文件,oracle 11G、12C BBED 配置和库文件下载!
- WPS2012交叉引用技巧,word比wps这点强更新參考文献
- spring4声明式事务mdash;02 xml配置方式
- 以下哪些可以成为html文件的扩展名_今天在我的visual studio code里装了以下插件,现在用着很爽...
- 酷酷跑真有java游戏吗_JAVA版光影分享【仅此一次】下
- 倪捷:智能语音扩展数字化服务
- html如何将文字生成图片,文字转图片工具,文字图片生成器,把几句话做陈图片
- 《哪来的天才》读书笔记
- 计算器算贝塞尔公式_绝版应用!超级好用的计算器!
- 光标大小怎么调_cad十字光标和坐标系,你必知的几个小技巧!
- win7系统下联想thinkpad x220笔记本电脑关闭触摸板
热门文章
- 聚焦数字经济 共商数字机遇 中科物联与圣笛数控再添新伙伴
- Navicat之服务器监控,进行查询进程监控
- 判断一个数字,判断这个数字是奇数还是偶数 打印出来
- 机器视觉(1)-- 视觉伺服控制系统简介
- 中文手写数据生成基于paddleocr和textrenderer-大幅提高中文识别准确率
- 云主机发展市场风起云涌
- ]!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
- 某盾验证加密参数分析——cb,data参数(终篇)
- 北京化工大学计算机复试题,北京化工大学考研复试物理化学题库
- 电子签名、电子签章、电子印章