数据类型

收藏179

阅读2628

更新时间2025-08-20

列的数据类型定义了该列可以保存的值:整数、字符、货币、日期和时间、二进制等。


MySQL 数据类型(8.0 版)

数据库表中的每一列都必须有名称和数据类型。

SQL 开发人员必须在创建表时决定将在每列中存储的数据类型。 数据类型是 SQL 了解每列中预期的数据类型的指南,它还标识 SQL 将如何与存储的数据交互。

在 MySQL 中有三种主要的数据类型:字符串、数字、日期和时间。

字符串数据类型

数据类型 描述
CHAR(size) 一个固定长度的字符串(可以包含字母、数字和特殊字符)。 size 参数指定以字符为单位的列长度 - 可以从 0 到 255。默认为 1
VARCHAR(size) 可变长度字符串(可以包含字母、数字和特殊字符)。 size 参数指定字符的最大列长度 - 可以从 0 到 65535
BINARY(size) 等于 CHAR(),但存储二进制字节字符串。 size 参数以字节为单位指定列长度。默认为 1
VARBINARY(size) 等于 VARCHAR(),但存储二进制字节字符串。 size 参数指定最大列长度(以字节为单位)。
TINYBLOB 对于 BLOB(二进制大对象)。最大长度:255 字节
TINYTEXT 保存一个最大长度为 255 个字符的字符串
TEXT(size) 保存一个最大长度为 65,535 字节的字符串
BLOB(size) 对于 BLOB(二进制大对象)。最多可容纳 65,535 字节的数据
MEDIUMTEXT 保存最大长度为 16,777,215 个字符的字符串
MEDIUMBLOB 对于 BLOB(二进制大对象)。最多可容纳 16,777,215 字节的数据
LONGTEXT 保存最大长度为 4,294,967,295 个字符的字符串
LONGBLOB 对于 BLOB(二进制大对象)。最多可容纳 4,294,967,295 字节的数据
ENUM(val1, val2, val3, ...) 只能有一个值的字符串对象,从可能值列表中选择。您最多可以在一个 ENUM 列表中列出 65535 个值。如果插入的值不在列表中,则将插入一个空白值。 这些值按您输入的顺序排序
SET(val1, val2, val3, ...) 可以有 0 个或多个值的字符串对象,从可能的值列表中选择。一个 SET 列表中最多可以列出 64 个值


数值数据类型

数据类型 描述
BIT(size) 位值类型。每个值的位数在 size 中指定。 size 参数可以保存从 1 到 64 的值。size 的默认值为 1。
TINYINT(size) 一个非常小的整数。有符号范围是-128 到 127。无符号范围是 0 到 255。size 参数指定最大显示宽度(即 255)
BOOL 零被认为是false,非零值被认为是true。
BOOLEAN 等同 BOOL
SMALLINT(size) 一个小整数。有符号范围是 -32768 到 32767。无符号范围是 0 到 65535。size 参数指定最大显示宽度(即 255)
MEDIUMINT(size) 一个中等整数。有符号范围是 -8388608 到 8388607。无符号范围是 0 到 16777215。size 参数指定最大显示宽度(即 255)
INT(size) 一个中等整数。有符号范围是 -2147483648 到 2147483647。无符号范围是 0 到 4294967295。size 参数指定最大显示宽度(即 255)
INTEGER(size) 等于 INT(size)
BIGINT(size) 一个大整数。有符号范围是-9223372036854775808到9223372036854775807。无符号范围是0到18446744073709551615。size参数指定最大显示宽度(即255)
FLOAT(size, d) 一个浮点数。 size 中指定了总位数。小数点后的位数在 d 参数中指定。此语法在 MySQL 8.0.17 中已弃用,并将在未来的 MySQL 版本中删除
FLOAT(p) 一个浮点数。 MySQL 使用 p 值来确定是使用 FLOAT 还是 DOUBLE 作为结果数据类型。如果 p 是从 0 到 24,则数据类型变为 FLOAT()。如果 p 是从 25 到 53,则数据类型变为 DOUBLE()
DOUBLE(size, d) 一个正常大小的浮点数。 size 中指定了总位数。 d参数中指定小数点后的位数
双精度(size, d)  
DECIMAL(size, d) 一个精确的定点数。 size 中指定了总位数。小数点后的位数在 d 参数中指定。 size 的最大数为 65。d 的最大数为 30。size 的默认值为 10。< em>d 为 0。
DEC(size, d) 等于 DECIMAL(size,d)

注意:所有数字数据类型都可能有一个额外的选项:UNSIGNED 或 ZEROFILL。如果添加 UNSIGNED 选项,MySQL 不允许该列使用负值。如果添加 ZEROFILL 选项,MySQL 还会自动将 UNSIGNED 属性添加到列中。

日期和时间数据类型

数据类型 描述
DATE 日期。格式:YYYY-MM-DD。支持的范围是从 '1000-01-01' 到 '9999-12-31'
DATETIME(fsp) 日期和时间组合。格式:YYYY-MM-DD hh:mm:ss。支持的范围是从"1000-01-01 00:00:00"到"9999-12-31 23:59:59"。 在列定义中添加 DEFAULT 和 ON UPDATE 以获得自动初始化并更新到当前日期和时间
TIMESTAMP(fsp) 时间戳。 TIMESTAMP 值存储为自 Unix 纪元 ('1970-01-01 00:00:00' UTC) 以来的秒数。格式:YYYY-MM-DD hh:mm:ss。支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC。 可以使用列定义中的 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 指定自动初始化和更新到当前日期和时间
TIME(fsp) 一次。格式:hh:mm:ss。支持的范围是从 '-838:59:59' 到 '838:59:59'
YEAR 四位数格式的年份。允许采用四位数格式的值:1901 到 2155 和 0000。 MySQL 8.0 不支持两位数格式的年份。

相关

视频

RELATED VIDEOS

更多

免费

MySQLi面向过程极速入门
中级 MySQLi面向过程极速入门

127669次学习

收藏

免费

MySQLi面向对象编程极速入门

免费

MySQL权威开发指南(教程)

免费

MySQL高级进阶视频教程
高级 MySQL高级进阶视频教程

122147次学习

收藏

免费

肖文吉Oracle视频教程
初级 肖文吉Oracle视频教程

72226次学习

收藏

免费

魔乐科技oracle视频教程
初级 魔乐科技oracle视频教程

54966次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.4万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71.1万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.8万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

34万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号