最全MySQL数据类型梳理汇总
MySQL是目前最流行的关系型数据库之一,MySQL支持的数据类型非常丰富,本篇攻略将从以下几个方面详细讲解MySQL的数据类型:
- 数据类型分类
- 整数类型
- 小数类型
- 日期和时间类型
- 字符串类型
- 二进制数据类型
- 枚举类型和集合类型
在本篇攻略中,我们将对每一种数据类型进行详细的讲解并提供示例说明,以帮助读者更好地了解MySQL的数据类型。
数据类型分类
MySQL的数据类型可以分为以下几类:
- 整数类型
- 小数类型
- 日期和时间类型
- 字符串类型
- 二进制数据类型
- 枚举类型和集合类型
每一种数据类型都有其特定的存储方式、取值范围、默认值等属性,下面将对每一种数据类型进行详细讲解。
整数类型
MySQL支持的整数类型有以下几种:
- TINYINT: 占用1字节,取值范围为-128~127或0~255。
- SMALLINT: 占用2字节,取值范围为-32768~32767或0~65535。
- MEDIUMINT: 占用3字节,取值范围为-8388608~8388607或0~16777215。
- INT或INTEGER: 占用4字节,取值范围为-2147483648~2147483647或0~4294967295。
- BIGINT: 占用8字节,取值范围为-9223372036854775808~9223372036854775807或0~18446744073709551615。
下面是一条创建表格时使用整数类型的示例SQL语句:
CREATE TABLE user (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
age TINYINT(3) UNSIGNED DEFAULT 0,
salary BIGINT(20) NOT NULL DEFAULT 0
);
小数类型
MySQL支持的小数类型有以下几种:
- FLOAT: 单精度浮点数,占用4字节,取值范围为-3.402823466E+38~3.402823466E+38。
- DOUBLE或REAL: 双精度浮点数,占用8字节,取值范围为-1.7976931348623157E+308~1.7976931348623157E+308。
- DECIMAL或NUMERIC: 定点数,可指定精度,例如DECIMAL(5,2)表示占用5字节,小数点后有2位。
下面是一条创建表格时使用小数类型的示例SQL语句:
CREATE TABLE product (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
price FLOAT(6, 2) DEFAULT 0.00,
discount DECIMAL(10, 2) NOT NULL DEFAULT 1.00
);
日期和时间类型
MySQL支持的日期和时间类型有以下几种:
- DATE: 格式为YYYY-MM-DD,范围为'1000-01-01'~'9999-12-31'。
- TIME: 格式为HH:MM:SS,范围为'-838:59:59'~'838:59:59'。
- DATETIME: 格式为YYYY-MM-DD HH:MM:SS,范围为'1000-01-01 00:00:00'~'9999-12-31 23:59:59'。
- TIMESTAMP: 格式与DATETIME相同,范围为'1970-01-01 00:00:01'~'2038-01-19 03:14:07'。
- YEAR: 格式为YYYY或YY,范围为1901~2155或70~69。
下面是一条创建表格时使用日期和时间类型的示例SQL语句:
CREATE TABLE order (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
order_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
字符串类型
MySQL支持的字符串类型有以下几种:
- CHAR: 定长字符串,占用固定字节数,最大长度为255个字符。
- VARCHAR: 变长字符串,占用实际长度+1字节,最大长度为65535个字符。
- TINYTEXT: 占用1字节,最大长度为255个字符。
- TEXT: 占用2字节,最大长度为65535个字符。
- MEDIUMTEXT: 占用3字节,最大长度为16777215个字符。
- LONGTEXT: 占用4字节,最大长度为4294967295个字符。
下面是一条创建表格时使用字符串类型的示例SQL语句:
CREATE TABLE message (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) DEFAULT '',
content TEXT not null
);
二进制数据类型
MySQL支持的二进制数据类型有以下几种:
- BINARY: 定长二进制数据,占用固定字节数,最大长度为255字节。
- VARBINARY: 变长二进制数据,占用实际长度+1字节,最大长度为65535字节。
- TINYBLOB: 占用1字节,最大长度为255字节。
- BLOB: 占用2字节,最大长度为65535字节。
- MEDIUMBLOB: 占用3字节,最大长度为16777215字节。
- LONGBLOB: 占用4字节,最大长度为4294967295字节。
下面是一条创建表格时使用二进制数据类型的示例SQL语句:
CREATE TABLE image (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) DEFAULT '',
data LONGBLOB not null
);
枚举类型和集合类型
MySQL支持的枚举类型和集合类型有以下几种:
- ENUM: 枚举类型,可存储多个值,每个值用单引号括起来,值之间用逗号分隔,最大长度为65535字节。
- SET: 集合类型,可存储多个值,每个值用单引号括起来,值之间用逗号分隔,最大长度为64字节。
下面是一条创建表格时使用枚举类型和集合类型的示例SQL语句:
CREATE TABLE info (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
sex ENUM('male', 'female') not null,
interest SET('sports', 'reading', 'music') not null
);
总结
通过本篇攻略,我们详细讲解了MySQL的各种数据类型以及其使用方法和示例。不同的数据类型适用于不同的业务场景,希望读者能在实际开发中选择合适的数据类型,提高数据库的性能和稳定性。
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!