MySQL列类型分为3大类:数值类型、日期和时间类型、字符串类型。
一、数值类型
如无特别说明 , M 表示最大显示宽度。最大有效显示宽度是255 。显示宽度与存储大小或类型包含的值的范围无关。
定义 | 存储需求 | 数据范围 | 说明 | |
无符号 | 有符号 | |||
BIT[(M )] | 约( M +7)/8B | 位字段类型。M 表示每个值的位数,范围为从1 到64; M 默认值为1 。 | ||
TINYINT[(M )] [UNSIGNED] [ZEROFILL] | 1B | 0 ~255 | -128 ~127 | 很小的整数。 |
BOOL ,BOOLEAN | TINYINT(1) 的同义词。zero 值为false;非zero 值为true。 | |||
SMALLINT[(M )] [UNSIGNED] [ZEROFILL] | 2B | 0 ~65535 | -32768 ~32767 | 小的整数。 |
MEDIUMINT[(M )] [UNSIGNED] [ZEROFILL] | 3B | 0 ~16777215 | -8388608 ~8388607 | 中等大小的整数。 |
INT[(M )] [UNSIGNED] [ZEROFILL] | 4B | 0 ~4294967295 | -2147483648 ~2147483647 | 普通大小的整数。 |
INTEGER[(M )] [UNSIGNED] [ZEROFILL] | INT 的同义词。 | |||
BIGINT[(M )] [UNSIGNED] [ZEROFILL] | 8B | 0 ~18446744073709551615 | -9223372036854775808 ~9223372036854775807 | 大整数。 |
FLOAT[(M ,D )] [UNSIGNED] [ZEROFILL] | 4B | 1.175494351E-38 ~3.402823466E+38 | -3.402823466E+38 ~-1.175494351E-38 、0 | 小( 单精度) 浮点数。 M 是小数纵位数,D 是小数点后面的位数。如果M 和D 被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7 位小数位。 |
DOUBLE[(M ,D )] [UNSIGNED] [ZEROFILL] | 8B | |||
DOUBLE PRECISION[(M ,D )] [UNSIGNED] [ZEROFILL] , REAL[(M ,D )] [UNSIGNED] [ZEROFILL] | DOUBLE 的同义词。 | |||
FLOAT(p ) [UNSIGNED] [ZEROFILL] | 如果0 <= p <= 24 为4 B, 如果25 <= p <= 53 为8 B | 浮点数。p 表示精度(以位数表示),但MySQL 只使用该值来确定是否结果列的数据类型为FLOAT 或DOUBLE 。如果p 为从0 到24 ,数据类型变为没有M 或D 值的FLOAT 。如果p 为从25 到53 ,数据类型变为没有M 或D 值的DOUBLE 。结果列范围与本节前面描述的单精度FLOAT 或双精度DOUBLE 数据类型相同。 | ||
DECIMAL[(M [,D ])] [UNSIGNED] [ZEROFILL] | 变长 | |||
DEC[(M [,D ])] [UNSIGNED] [ZEROFILL] , NUMERIC[(M [,D ])] [UNSIGNED] [ZEROFILL] , FIXED[(M [,D ])] [UNSIGNED] [ZEROFILL] | DECIMAL 的同义词。 |
二、日期和时间类型
定义 |
存储需求 |
支持的范围 |
“ 零 ”值 |
说明 |
DATETIME | 8B | '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59' |
'0000-00-00 00:00:00' |
同时包含日期和时间信息; 允许保存日/ 月和日是零的日期。 |
DATE | 3B | '1000-01-01' ~ '9999-12-31' |
'0000-00-00' |
仅日期值; 允许保存日/ 月和日是零的日期。 |
TIMESTAMP | 4B | 不能早于1970 或晚于2037 |
00000000000000 |
列类型的属性不固定,取决于MySQL 版本和服务器运行的SQL 模式。 |
TIME | 3B | '-838:59:59' ~ '838:59:59' |
'00:00:00' |
以'HH:MM:SS' 格式检索和显示TIME 值。 无效TIME 值被转换为'00:00:00'。 |
YEAR | 1B | 1901 ~ 2155 |
0000 |
表示年。 单字节类型。 以YYYY 格式检索和显示YEAR 值。 非法YEAR 值被转换为0000 。 |
1. 每个时间类型有一个有效值范围和一个“零 ”值,当指定不合法的MySQL 不能表示的值时使用“零 ”值。
如果不想在日期中出现零,可以使用NO_ZERO_IN_DATE SQL 模式。
2. 如果试图插入一个不合法的日期,MySQL 将给出警告或错误。
3. 可以使用ALLOW_INVALID_DATES SQL 模式让MySQL 接受某些日期。
4. 允许将'0000-00-00' 保存为“伪日期”( 如果不使用NO_ZERO_DATE SQL 模式) ,这在某些情况下比使用NULL 值更方便( 并且数据和索引占用的空间更小) 。
5. 可以使用任何常见格式指定DATETIME 、DATE 和TIMESTAMP 值:
'YYYY-MM-DD HH:MM:SS' 或'YY-MM-DD HH:MM:SS' 格式的字符串。
'YYYY-MM-DD' 或'YY-MM-DD' 格式的字符串。
'YYYYMMDDHHMMSS' 或'YYMMDDHHMMSS' 格式的没有间割符的字符串。
'YYYYMMDD' 或'YYMMDD' 格式的没有间割符的字符串。
YYYYMMDDHHMMSS 或YYMMDDHHMMSS 格式的数字。
YYYYMMDD 或YYMMDD 格式的数字。
无效DATETIME 、DATE 或者TIMESTAMP 值被转换为相应类型的“零 ”值。
6. 可以用各种格式指定TIME 值:
'D HH:MM:SS.fraction' 格式的字符串。
'HHMMSS' 格式的没有间割符的字符串。
HHMMSS 格式的数值。
超出TIME 范围但合法的值被裁为范围最接近的端点。
三、字符串类型:
定义 |
存储需求 |
长度 | 存储(值) | 说明 |
CHAR(M ) |
M 个字节,0 <= M <= 255 |
列长度固定为创建表时声明的长度。 长度可以为从0 到255 的任何值。 |
当保存CHAR 值时,在它们的右边填充空格以达到指定的长度。 |
声明的长度表示你想要保存的最大字符数。 当检索到CHAR 值时,尾部的空格被删除掉。 在存储或检索过程中不进行大小写转换。 |
VARCHAR(M ) |
L +1 个字节,其中L <= M 且0 <= M <= 65535 |
列中的值为可变长字符串。 长度可以指定为0 到65,535 之间的值。 |
值保存时不进行填充,只保存需要的字符数,另加一个字节来记录长度( 如果列声明的长度超过255 ,则使用两个字节) 。 |
声明的长度表示你想要保存的最大字符数。 |
BINARY(M ) |
M 个字节,0 <= M <= 255 |
长度是字节长度。 |
保存BINARY 值时,在它们右边填充值以达到指定长度。 |
存储二进制字符串。 插入值时在右侧添加0x00 on ,并且选择时不删除尾部的字节。 比较时所有字节很重要,包括ORDER BY 和DISTINCT 操作。 |
VARBINARY(M ) |
L +1 个字节,其中L <= M 且0 <= M <= 255 |
长度是字节长度。 |
|
存储二进制字符串。 插入时不填充字符,选择时不裁剪字节。 比较时所有字节很重要,包括ORDER BY 和DISTINCT 操作。 |
BLOB |
L +2 个字节,其中L < 216 |
有4 种BLOB 类型:TINYBLOB 、BLOB 、MEDIUMBLOB 和LONGBLOB 。 它们只是可容纳值的最大长度不同。 |
二进制大对象,可以容纳可变数量的数据。 | 没有字符集,并且排序和比较基于列值字节的数值值。 |
TEXT |
L +2 个字节,其中L < 216 |
有4 种TEXT 类型:TINYTEXT 、TEXT 、MEDIUMTEXT 和LONGTEXT 。 这些对应4 种BLOB 类型,有相同的最大长度和存储需求。 |
非二进制字符串( 字符字符串) 。 | 有一个字符集,并且根据字符集的 校对规则对值进行排序和比较。 |
TINYBLOB , TINYTEXT |
L +1 个字节,其中L < 28 |
|||
MEDIUMBLOB , MEDIUMTEXT |
L +3 个字节,其中L < 224 |
|||
LONGBLOB , LONGTEXT |
L +4 个字节,其中L < 232 |
|||
ENUM('value1 ','value2 ',...) |
1 或2 个字节,取决于枚举值的个数( 最多65,535 个值) |
是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。 |
枚举最多可以有65,535 个元素。 |
|
SET('value1 ','value2 ',...) |
1 、2 、3 、4 或者8 个字节,取决于set 成员的数目( 最多64 个成员) |
是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。 | 最多可以有64 个不同的成员。 |
其它数据库与MySQL的类型对应关系:
其它数据库类型 |
MySQL 类型 |
BOOL , |
TINYINT |
BOOLEAN |
TINYINT |
CHAR VARYING(M ) |
VARCHAR(M ) |
DEC |
DECIMAL |
FIXED |
DECIMAL |
FLOAT4 |
FLOAT |
FLOAT8 |
DOUBLE |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT3 |
MEDIUMINT |
INT4 |
INT |
INT8 |
BIGINT |
LONG VARBINARY |
MEDIUMBLOB |
LONG VARCHAR |
MEDIUMTEXT |
LONG |
MEDIUMTEXT |
MIDDLEINT |
MEDIUMINT |
NUMERIC |
DECIMAL |
相关推荐
MySQL 5.1是MySQL数据库管理系统的一个重要版本,它在5.0的基础上进行了多项改进和增强,为开发者提供了更高效...这个“mysql5.1详解简体中文版”的教程文件,将帮助读者深入理解这些概念,提升数据库管理和开发技能。
前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 ...11.6. 选择正确的列类型
6. **XML支持**:MySQL5.1开始支持XML数据类型和函数,方便XML数据的存储和处理,提升了数据库与XML应用的集成能力。 7. **触发器和存储过程**:这些高级SQL特性使得MySQL5.1更接近于一个完整的数据库解决方案,...
11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. 逻辑操作符 12.2. 控制流程函数 12.3. 字符串函数 12.3.1. 字符串...
MySQL5.1是MySQL数据库管理系统的一个重要版本,它包含了丰富的SQL语法和管理工具,使得数据库的管理和操作更为便捷。以下是一些MySQL5.1常用语法的详细说明: 1. **数据库操作**: - `SHOW DATABASES;`:用于列出...
MySQL 5.1是MySQL数据库管理系统的一个重要版本,它提供了许多功能和改进,为开发者和数据库管理员提供了更高效、更灵活的数据存储与管理环境。本参考手册将详细讲解MySQL 5.1的关键特性、语法、配置以及最佳实践。 ...
MySQL 5.1支持多种数据类型,如数值类型(INT、FLOAT、DOUBLE)、字符串类型(VARCHAR、TEXT)、日期时间类型(DATE、TIME、DATETIME)以及二进制类型(BLOB、VARBINARY)。选择合适的数据类型对于优化存储和查询...
综上所述,这份“mysql5.1 官方中文文档”涵盖了MySQL 5.1的核心特性和使用方法,无论是初学者还是经验丰富的开发者,都能从中受益匪浅。通过仔细阅读和实践,你可以全面了解MySQL 5.1并提升你的数据库管理技能。
11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. 逻辑操作符 12.2. 控制流程函数 12.3. 字符串函数 12.3.1. 字符串...
11.7. 使用来自其他数据库引擎的列类型 12. 函数和操作符 12.1. 操作符 12.1.1. 操作符优先级 12.1.2. 圆括号 12.1.3. 比较函数和操作符 12.1.4. 逻辑操作符 12.2. 控制流程函数 12.3. 字符串函数 12.3.1. ...
MySQL 5.1支持多种数据类型,如数值类型(INT、FLOAT、DECIMAL等)、字符串类型(VARCHAR、TEXT等)、日期时间类型(DATE、TIME、TIMESTAMP等)。创建表时需合理选择数据类型,以节省存储空间和提高查询效率。此外,...
这份“mysql5.1中文帮助手册”对于那些希望深入理解和学习MySQL的用户来说,是一份非常宝贵的资源。以下将从几个主要方面详细介绍MySQL 5.1中的关键知识点。 1. **SQL语言基础**:MySQL 5.1支持标准的SQL语句,包括...
这个压缩包“mysql5.1.zip_Alpha”包含的是MySQL 5.1的参考手册,特别指出的是,这里的版本号是5.1.2-alpha,这意味着这是一个早期的Alpha测试版本,可能包含了最新的特性,但同时也可能存在较多的不稳定因素。...
4. **数据类型与函数**:手册详细列出了MySQL 5.1支持的数据类型,包括数值型、字符串型、日期时间型等,并介绍了各种内置函数,如数学函数、字符串函数、日期时间函数等。 5. **视图与触发器**:视图是数据库中的...
4. **数据类型**:手册列出了MySQL 5.1支持的各种数据类型,如整数类型(INT、BIGINT等)、浮点数类型(FLOAT、DOUBLE等)、字符串类型(CHAR、VARCHAR等)以及日期和时间类型。 5. **存储引擎**:MySQL 5.1支持...
MySQL 5.1是MySQL数据库管理系统的一个重要版本,它提供了丰富的功能和性能优化,适合于各种规模的应用场景。本手册将深入探讨MySQL 5.1的相关知识点,旨在帮助用户理解和掌握这一版本的核心特性。 1. **MySQL概述*...
MySQL 5.1是MySQL数据库管理系统的一个重要版本,发布于2006年,它带来了许多新特性、改进和性能优化。本手册旨在为用户提供关于MySQL 5.1的全面指导,包括安装、配置、使用以及管理数据库的各种操作。以下是一些...