沃梦达 / IT编程 / 数据库 / 正文

最全mysql数据类型梳理汇总

MySQL是目前最流行的关系型数据库之一,MySQL支持的数据类型非常丰富,本篇攻略将从以下几个方面详细讲解MySQL的数据类型:

最全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的各种数据类型以及其使用方法和示例。不同的数据类型适用于不同的业务场景,希望读者能在实际开发中选择合适的数据类型,提高数据库的性能和稳定性。

本文标题为:最全mysql数据类型梳理汇总