MySQL 教程

MySQL 教程 MySQL 简介 MySQL 管理系统

MySQL SQL 语句

MySQL SQL MySQL SELECT MySQL WHERE MySQL AND, OR, NOT MySQL ORDER BY MySQL INSERT INTO MySQL NULL Values MySQL UPDATE MySQL DELETE MySQL LIMIT MySQL MIN 和 MAX MySQL COUNT, AVG, SUM MySQL LIKE MySQL 通配符 MySQL IN MySQL BETWEEN MySQL 别名 MySQL 联接 MySQL INNER JOIN MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN MySQL 自联接 MySQL UNION MySQL GROUP BY MySQL HAVING MySQL EXISTS MySQL ANY, ALL MySQL INSERT SELECT MySQL CASE MySQL Null 函数 MySQL 注释 MySQL 运算符

MySQL 数据库

MySQL 创建数据库 MySQL 删除数据库 MySQL 创建表 MySQL 删除表 MySQL 更改表 MySQL 约束 MySQL Not Null MySQL Unique MySQL Primary Key MySQL Foreign Key MySQL Check MySQL Default MySQL Create Index MySQL 自动增量 MySQL 日期 MySQL 视图

MySQL 参考手册

MySQL 数据类型 MySQL 函数

MySQL 实例

MySQL 实例 MySQL 测验 MySQL 练习


MySQL 数据类型

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


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 不支持两位数格式的年份。