菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

MySQL 教程

MySQL HOME MySQL Intro MySQL RDBMS

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 and MAX MySQL COUNT, AVG, SUM MySQL LIKE MySQL Wildcards MySQL IN MySQL BETWEEN MySQL Aliases MySQL Joins MySQL INNER JOIN MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN MySQL Self Join MySQL UNION MySQL GROUP BY MySQL HAVING MySQL EXISTS MySQL ANY, ALL MySQL INSERT SELECT MySQL CASE MySQL Null Functions MySQL Comments MySQL Operators

MySQL 数据库

MySQL Create DB MySQL Drop DB MySQL Create Table MySQL Drop Table MySQL Alter Table MySQL Constraints MySQL Not Null MySQL Unique MySQL Primary Key MySQL Foreign Key MySQL Check MySQL Default MySQL Create Index MySQL Auto Increment MySQL Dates MySQL Views

MySQL References

MySQL Data Types MySQL Functions

MySQL Examples

MySQL Examples MySQL Editor MySQL Quiz MySQL Exercises MySQL Certificate

 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 用于 BLOBs(二进制大对象)。最大长度:255 字节。
TINYTEXT 存储最大长度为 255 个字符的字符串。
TEXT(size) 存储最大长度为 65,535 字节的字符串。
BLOB(size) 用于 BLOBs(二进制大对象)。存储最多 65,535 字节的数据。
MEDIUMTEXT 存储最大长度为 16,777,215 个字符的字符串。
MEDIUMBLOB 用于 BLOBs(二进制大对象)。存储最多 16,777,215 字节的数据。
LONGTEXT 存储最大长度为 4,294,967,295 个字符的字符串。
LONGBLOB 用于 BLOBs(二进制大对象)。存储最多 4,294,967,295 字节的数据。
ENUM(val1, val2, val3, ...) 一种字符串对象,只能包含一个值,该值是从可能值列表中选择的。您可以在 ENUM 列表中列出最多 65,535 个值。如果插入了不在列表中的值,则会插入一个空值。值按您输入的顺序排序。
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参数指定。
DOUBLE PRECISION(size, d)  
DECIMAL(size, d) 精确的定点数。总位数由size指定。小数点后的位数由d参数指定。size 的最大值为 65。d 的最大值为 30。size 的默认值为 10。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 不支持两位数格式的年份。

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持