随笔 - 136, 文章 - 0, 评论 - 14, 阅读 - 13万
  首页  :: 新随笔  :: 管理
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

MySQL 8.0支持哪些数据类型?

Posted on   高&玉  阅读(423)  评论(0编辑  收藏  举报

数值数据类型

整数类型:

  • TINYINT: 微型整数类型;占用1 bytes空间;有符号支持的范围:-128 ~ 127; 无符号支持的范围:0 ~ 255
  • SMALLINT: 小型整数类型;占用2 bytes空间;有符号支持的范围:-32768 ~ 32767;无符号支持的范围:0 ~ 65535
  • MEDIUMINT:中型整数类型;占用3 bytes空间;有符号支持的范围:-8388608 ~ 8388607;无符号支持的范围:0 ~ 16777215
  • INT,INTEGER:常规整数类型;占用4 bytes空间;有符号支持的范围:-2147483648 ~ 2147483647;无符号支持的范围:0 ~ 4294967295
  • BIGINT:大型整数类型;占用8 bytes空间;有符号支持的范围:-2^63^ ~ 2^63^-1;无符号支持的范围:0 ~ 2^64^-1

小数类型:

  • FLOAT:浮点数数据类型;FLOAT(n):如果0 <= n <= 24占用4 bytes,如果25 <= b <= 53占用8 bytes;FLOAT:不指定位数个数则可占用4 bytes;FLOAT(M,N):M表示总位数,N表示小数位数。
  • DOUBLE [PRECISION],REAL:双精度小数类型;占用8 bytes;DOUBLE(M,N):M表示总位数,N表示小数位数;REAL已经被弃用。
  • DECIMAL(M,D), NUMERIC(M,D):小数数据类型;占用0 ~ 8 bytes;DECIMAL(M,N):M表示总位数,N表示小数位数。

BIT类型:

  • BIT(M):存储BIT值的数据类型,M的取值范围是1 ~ 64;占用(M+7)/8 bytes

date和time数据类型

  • DATE:存储日期,格式为:yyyy-mm-dd;MySQL 5.6.4版本之前占用3 bytes,MySQl 5.6.4版本之后占用3 bytes
  • TIME:存储时间,格式为:HH:MM:SS;MySQL 5.6.4版本之前占用3 bytes,MySQL 5.6.4版本之后占用3 ~ 6 bytes
  • YEAR:存储年份,格式为:yyyy;占用1 bytes
  • DATETIME:存储日期与时间,格式为yyyy-mm-dd HH:MM:SS,MySQL 5.6.4版本之前占用8 bytes,MySQL 5.6.4版本之后占用5 ~ 8 bytes
  • TIMESTAMP:存储日期与时间,格式为yyyy-mm-dd HH:MM:SS,存储的时间范围是1970年1月1日到2023年1月19日;MySQL 5.6.4版本之前占用4 bytes,MySQL 5.6.4版本之后占用4 ~ 7 bytes

字符数据类型

  • CHAR:定长字符类型;允许存储0 ~ 255个字符;字符集不同每个字符占用的空间不同(假设1个字符占用 W bytes),所以CHAR(M)占用M * W bytes空间。
  • VARCHAR:可变长度字符类型;允许存储0 ~ 65535个字符;如果存储 0 到 255 个字符,占用L + 1 bytes空间。如果列值占用> 255 bytes,则占用L + 2 bytes空间。
  • BINARY:定长二进制字符类型;允许存储0 ~ 255个字符,占用0 <= M <= 255 bytes空间。
  • VARBINARY:可变长度字符类型;允许存储0 ~ 65535个字符;如果存储 0 到 255 个字符,占用L + 1 bytes空间。如果列值占用> 255 bytes,则占用L + 2 bytes空间。
  • TINYBLOB,TINYTEXT:微型大对象数据类型;列字符串实际占用空间L < 2^8^ bytes,则占用L + 1 bytes空间。
  • MEDIUMBLOB,MEDIUMTEXT:中型大对象类型;列字符串实际占用空间L < 2^24^ bytes,则占用L + 3 bytes空间。
  • BLOB,TEXT:常规大对象数据类型;列字符串实际占用空间L < 2^16^ bytes,则占用L + 2 bytes空间。
  • LONGBLOB,LONGTEXT:大型大对象数据类型;列字符串实际长度L < 2^32^ bytes,则占用L + 4 bytes空间。
  • ENUM:枚举字符类型;ENUM('value1','value2',...),1 bytes, 2 bytes取决于枚举值的数量(最大支持65535个值)。
  • SET: 集合字符类型;SET('value1','value2',...),1 bytes,2 bytes,3 bytes,4 bytes,8 bytes,取决于集合成员的数量(最多支持64个成员)。

备注:

  • nonbinary类型:M表示字符个数;
  • binary类型:M表示字符串占用的bytes值。
  • L表示字符串占用的bytes值。

地理空间数据类型

地理空间数据类型请参考:MySQL 8.0: Spatial Data Types

JSON数据类型

JSON数据类型请参考:MySQL 8.0: The JSON Data Type


参考:

相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示