最全mysql数据类型梳理汇总

2023-12-07数据库
5

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

The End

相关推荐

liunx mysql root账户提示:Your password has expired. To log in yo
liunx mysql root账户提示:Your password has expired. To log in you must change it using a client that supports expired passwords,要怎么操作呢? 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动...
2024-12-24 数据库
149

快速解决PostgreSQL中的Permission denied问题
下面是针对PostgreSQL中的权限问题的完整攻略。...
2023-12-07 数据库
3413

MySQL时间类型和模式详情
MySQL是一种流行的关系型数据库系统,它提供了多种时间类型和模式,用于存储和处理时间数据。本文将详细介绍MySQL时间类型和模式的详细攻略。...
2023-12-07 数据库
15

VMware中安装CentOS7(设置静态IP地址)并通过docker容器安装mySql数据库(超详细教程)
首先在官网下载CentOS7镜像,并在VMware虚拟机中新建一台CentOS7虚拟机,将镜像挂载到虚拟机中并启动。...
2023-12-07 数据库
11

SpringBoot项目报错:”Error starting ApplicationContext̷
首先,当我们使用Spring Boot开发项目时,可能会遇到Error starting ApplicationContext错误,一般这种错误是由于配置文件、依赖包或者代码逻辑等原因引起的。下面我将提供一条包含两条详细示例说明的完整攻略,用来解决上述问题。...
2023-12-07 数据库
489

Postgresql 赋予用户权限和撤销权限的实例
下面我将详细讲解如何为PostgreSQL数据库中的用户授予权限和撤销权限,包括两个实例。...
2023-12-07 数据库
30