MySQL是一种广泛使用的关系型数据库管理系统,支持多种数据类型,用于定义表中的列。以下是MySQL中常用的数据类型及其详细解释:
1. 数值类型
整数类型:
TINYINT
:非常小的整数,范围为-128到127(有符号)或0到255(无符号)。SMALLINT
:小的整数,范围为-32768到32767(有符号)或0到65535(无符号)。MEDIUMINT
:中等大小的整数,范围为-8388608到8388607(有符号)或0到16777215(无符号)。INT
或INTEGER
:标准整数,范围为-2147483648到2147483647(有符号)或0到4294967295(无符号)。BIGINT
:大整数,范围为-9223372036854775808到9223372036854775807(有符号)或0到18446744073709551615(无符号)。
浮点数类型:
FLOAT
:单精度浮点数。DOUBLE
或DOUBLE PRECISION
:双精度浮点数。DECIMAL
或NUMERIC
:定点数,用于存储精确的小数。
2. 字符串类型
CHAR
:固定长度的字符串,最大长度为255个字符。VARCHAR
:可变长度的字符串,最大长度为65535个字符。TEXT
:用于存储大文本,最大长度为65535个字符。MEDIUMTEXT
:用于存储更大的文本,最大长度为16777215个字符。LONGTEXT
:用于存储非常大的文本,最大长度为4294967295个字符。
3. 日期和时间类型
DATE
:日期值,格式为’YYYY-MM-DD’。TIME
:时间值,格式为’HH:MM:SS’。DATETIME
:日期和时间值,格式为’YYYY-MM-DD HH:MM:SS’。TIMESTAMP
:时间戳,范围从’1970-01-01 00:00:01’ UTC到’2038-01-19 03:14:07’ UTC。YEAR
:年份值,格式为’YYYY’。
4. 二进制类型
BINARY
:固定长度的二进制字符串。VARBINARY
:可变长度的二进制字符串。BLOB
:用于存储二进制数据,最大长度为65535个字节。MEDIUMBLOB
:用于存储更大的二进制数据,最大长度为16777215个字节。LONGBLOB
:用于存储非常大的二进制数据,最大长度为4294967295个字节。
5. 枚举和集合类型
ENUM
:枚举类型,允许在列中存储一个预定义的值列表中的一个值。SET
:集合类型,允许在列中存储一个或多个预定义的值列表中的值。
示例
CREATE TABLE example (
id INT PRIMARY KEY,
name VARCHAR(100),
age TINYINT UNSIGNED,
birth_date DATE,
salary DECIMAL(10, 2),
status ENUM('active', 'inactive')
);
这个语句创建了一个名为example
的表,包含以下列:
id
:整数类型,主键。name
:可变长度字符串,最大长度为100。age
:无符号小整数。birth_date
:日期类型。salary
:定点数,总长度为10,小数部分长度为2。status
:枚举类型,允许的值为’active’或’inactive’。
总结
MySQL提供了丰富的数据类型,用于存储不同类型的数据。选择合适的数据类型对于数据库的性能和存储效率至关重要。理解每种数据类型的特点和适用场景,可以帮助设计高效、可靠的数据库结构。