数字类型

日期类型

字符串类型

CHAR和VARCHAR

表列数和行大小限制

MySQL每个表的硬限制为4096列,但对于给定的表,有效最大值可能更小。确切的列限制取决于几个因素:

表的最大行大小限制列的数量(也可能是size),因为所有列的总长度不能超过此大小。

各列的存储要求限制了适合给定最大行大小的列数。某些数据类型的存储要求取决于存储引擎,存储格式和字符集等因素。

存储引擎可能会施加额外的限制来限制表列数。例如, InnoDB每个表的限制为1017列。

即使存储引擎能够支持更大的行,MySQL表的内部限制最大行大小为65,535字节。BLOB和TEXT列只对行大小限制贡献9到12个字节,因为它们的内容与行的其余部分分开存储。

InnoDB中对innodb_page_size(4KB,8KB,16KB和32KB)的设置,表的最大行大小略小于半页。例如,对于默认的16KB InnoDB页面大小,最大行大小略小于8KB 。

比如:

-- 此时最大行大小为66000,大于规定的65535
CREATE TABLE `test_max_row_size` (a VARCHAR(10000),b VARCHAR(10000),c VARCHAR(10000),d VARCHAR(10000),e VARCHAR(10000),f VARCHAR(10000),g VARCHAR(6000)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
> 1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
> 时间: 0.004s

报错是因为最大行大小的限制是所有列共享,而不是对单独列的限制。

BINARY和VARBINARY

BLOB和TEXT

ENUM和SET

-- SET类型,元素个数最大为64个
CREATE TABLE `test_set` (a SET('a001','a002','a003','a004','a005','a006','a007','a008','a009','a0010','a0011','a0012','a0013','a0014','a0015','a0016','a0017','a0018','a0019','a0020','a0021','a0022','a0023','a0024','a0025','a0026','a0027','a0028','a0029','a0030','a0031','a0032','a0033','a0034','a0035','a0036','a0037','a0038','a0039','a0040','a0041','a0042','a0043','a0044','a0045','a0046','a0047','a0048','a0049','a0050','a0051','a0052','a0053','a0054','a0055','a0056','a0057','a0058','a0059','a0060','a0061','a0062','a0063','a0064')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

测试一下这两个类型

CREATE TABLE `test_enum_set` (a SET('A','B','C'),b ENUM('男','女')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO test_enum_set VALUES('A,B','男')
> Affected rows: 1
> 时间: 0.009s

如果你插入的值不在set之列,报错

INSERT INTO test_enum_set VALUES('D','男')
> 1265 - Data truncated for column 'a' at row 1
> 时间: 0s

如果你插入的值不在enum之列,也报错

INSERT INTO test_enum_set VALUES('C','人妖')
> 1265 - Data truncated for column 'b' at row 1
> 时间: 0s

对于set而言,插入重复的会过滤掉,不然怎么能叫set呢

INSERT INTO test_enum_set VALUES('A,A,A','女')
> Affected rows: 1
> 时间: 0.008s

数据类型存储要求

数字类型前面已经提到了,这里不再赘述。

时间类型

枚举和集合类型

如果你想要表格的文件,我已经打包好了:https://github.com/Mysakura/DataFiles

那个 .pos 文件可以导入https://www.processon.com/ 来查看

MySQL8 全部类型相关推荐

  1. 【Java开发】2021最新最全的Java开发工程师学习路线

    2021最新最全的Java开发学习路线 阶段一 (夯实基础) 一.Java基础语法 二.Java面向对象编程 三.Java核心类库 四.XML与JSON 五.算法与数据结构 六.数据库 七.JDBC技 ...

  2. 最新最全MySQL 8知识,关注这篇就够了!

    目录 一.开胃菜:认识MySQL 1.1 安装MySQL 1.2 使用MySQL 之登录与退出命令 1.3 使用MySQL 之常见到的符号 1.4 使用MySQL 之修改MySQL 提示符 1.5 S ...

  3. 《疯狂Java讲义》(第5版) 作者李刚(待重新排版)

    第1章 Java语言概述与开发环境 1.1 Java语言的发展简史 JDK1.0 : Sun在1996年年初发布了JDK 1.0,该版本包括两部分:运行环境(即JRE)和开发环境(即JDK).运行环境 ...

  4. mysql8.0日期类型_mysql8.0.19基础数据类型详解

    mysql基础数据类型 mysql常用数据类型概览 ![1036857-20170801181433755-146301178](D:\笔记\mysql\复习\1036857-201708011814 ...

  5. MySQL8.0.27 修改编码类型(utf8mb3)

    文章目录 前言 一.运行环境 二.更换步骤 1.查看编码类型 2.更改配置文件 前言 笔者最近在完成课程实验作业使用MySQL时需要修改编码类型为utf8,但是由于版本为8.0.27,搜寻到的操作建议 ...

  6. mysql8.0日期类型_MySQL8.0中的日期类数据及其函数

    1.日期类数据类型 类型ZERO值有效值其他 DATE '0000-00-00' '1000-01-01'~'9999-12-31' 允许使用字符串或数字向date类型的列赋值 TIME '00:00 ...

  7. mysql8.0日期类型_Mysql学习-数据类型(日期时间类型)

    日期时间类型 a.如果表示年月日,通常用DATE表示 b.如果表示年月日时分秒,通常用DATETIME表示 c.如果表示时分秒,通常同TIME表示 日期和时间类型 字节 最小值 最大值 DATE 4 ...

  8. mysql8.0.19中在navicat客户端中int、bigint等类型设置长度保存后为0

    官网相关资料: MySQL Server 8.0.17 deprecated the display width for the TINYINT, SMALLINT, MEDIUMINT, INT, ...

  9. 从mysql8.0读取数据并形成pandas dataframe类型数据,精确定位行列式中的元素,并读取...

    from pandas import * import pandas as pd from sqlalchemy import create_engine engine = create_engine ...

最新文章

  1. 分享27个最新国外超酷单页面网站设计
  2. oracle 表空间的相关操作
  3. Java当中的IO一
  4. 几种服务器端IO模型的简单介绍及实现(转载)
  5. 流传在程序员中的传说,你知道几个?
  6. 单片机课程设计数字心率计_如何选购合适的PH计
  7. 多层陶瓷电容器用处_陶瓷电容器的用途有哪几种?
  8. vs2012 出现 无法启动IIS express的解决方案
  9. HDOJ 汉诺塔系列(递推分析)
  10. 记一次坑爹的广工校赛
  11. 盘古开源:中央网信办发布“十四五”国家信息化规划,数字化春风吹遍全国
  12. Java人事管理系统设计
  13. iPhone13全系列参数对比
  14. DDoS deflate 解决服务器被DDOS攻击的问题
  15. 微信炸弹不在服务器,微信隐藏“沙雕”功能!炸弹+“便便”炸飞聊天框
  16. auto 和 auto
  17. excel熵值法计算权重_熵值法的Excel基本步骤
  18. mysql 隐式提交事务_MySQL的SQL语句 -事务性语句和锁定语句(2)- 致使隐式提交的语句...
  19. 开启sketchup超速云渲染模式,文末附彩蛋!
  20. Python 字典中的Values() ,Keys(),Iteams()方法

热门文章

  1. OPPO Find X继任者来了!Find Z曝光:搭载骁龙855
  2. vscode如何添加头部注释、作者注释
  3. java多线程新特性
  4. git add 所有修改文件_Git 技术干货!工作中quot;Gitquot;的使用实践和常用命令合集!
  5. Qt实践录:非窗体代码片段
  6. 如何在 GitHub 上高效搜索开源项目(转载)
  7. 【java】java 模拟 实现一个 ThreadPoolExecutor
  8. 【ElasticSearch】如何使用 ElasticSearch 搜索单词的一部分 模糊搜索 正则匹配 前缀匹配
  9. 【前端】设计更好的数据表
  10. 【ElasticSearch】Es 源码之 UsageService 源码解读