MySQL8 数据类型

MySQL8 数据类型,MySQL8教程,介绍 MySQL8 常用的数据类型等。

【全栈教程】:https://try8.cn/article
教程目录:
教程内容:
最近更新:2023-04-17

一、MySQL8 数字数据类型

MySQL 支持所有标准的 SQL 数字数据类型,这些包括精确值数字数据类型(INTEGER、 SMALLINT、 DECIMAL和 NUMERIC),以及近似值数字数据类型(FLOAT、 REAL和 DOUBLE PRECISION)。


1.1、BIT

比特值数据类型,取值范围从 1 到 64;默认值为:1。

create table tb_name(col_name bit(1));  // BIT 数据类型示例


1.2、INT

整数数据类型,SQL 标准有:INTEGER、SMALLINT,MySQL8 有:TINYINT、MEDIUMINT 和 BIGINT 等扩展类型。

  • TINYINT: 1字节存储,取值(-128,127)
  • SMALLINT: 2字节存储,取值(-32768, 32767)
  • MEDIUMINT: 3字节存储,取值(-8388608,8388607)
  • INT: 4字节存储,取值(-2147483648,2147483647)
  • BIGINT: 8字节存储,取值(-2`63,2`63-1)


1.3、DECIMAL

DECIMAL 数据类型 和 NUMERIC 数据类型都用于存储精确的数字值。最大位数为 65,当精度很重要时使用这些类型,例如货币。在 MySQL 中,NUMERIC 和 DECIMAL 是一样的,因此 DECIMAL 同样适用于 NUMERIC。

try8 decimal(5,2)  //DECIMAL 示例,存储范围:-999.99 到 999.99


1.4、FLOAT

FLOAT 数据类型 和 DOUBLE 数据类型都用于存储近似数字值。MySQL 对单精度值使用四个字节,对双精度值使用八个字节。从 0 到 23 的精度产生一个 4 字节的单精度列。从 24 到 53 的精度会产生一个 8 字节的双精度列。

float(5,2)  //示例取值范围:-999.99 至 999.99,最大:(255,30)
double(5,2)  //示例取值范围:-999.99 至 999.99,最大:(255,30)


二、MySQL8 日期时间数据类型

表示日期和时间的数据类型有:DATE、TIME、DATETIME、TIMESTAMP 和 YEAR。对于日期和时间数据类型,零值很特殊,您可以使用如下值存储它们,或者使用更容易编写的 0 值来执行操作。

  • DATE: 0000-00-00;
  • TIME: 00:00:00;
  • DATETIME: 0000-00-00 00:00:00;
  • TIMESTAMP: 0000-00-00 00:00:00;
  • YEAR: 0000。


2.1、DATE

DATE 数据类型表示日期但是没有时间部分的值,它允许使用字符串或数字,支持的格式为: 'YYYY-MM-DD',取值范围:'1000-01-01' 至 '9999-12-31' 。

create table tb_name (col_name date);  //DATE 数据类型示例


2.2、DATETIME

DATETIME 数据类型表示日期和时间组合,格式为:'YYYY-MM-DD hh:mm:ss[.fraction] ,fraction 为 0 - 6 的可选值,默认 0, DATETIME 取值范围: '1000-01-01 00:00:00.000000' 至 '9999-12-31 23:59:59.999999' 。


2.3、TIMESTAMP

TIMESTAMP 数据类型表示日期和时间组合,取值范围:'1970-01-01 00:00:01.000000' UTC 至 '2038-01-19 03:14:07.999999' UTC 。该时间戳与 DATETIME 不同,支持存储时区。


2.4、TIME

TIME 数据类型表示一个时间。取值范围:'-838:59:59.000000' 至 '838:59:59.000000'。允许使用字符串或数字将值分配给列,格式为:'hh:mm:ss[.fraction] 。


2.5、YEAR

YEAR 数据类型表示 4 位数格式的年份。格式为:YYYY。


三、MySQL8 字符串数据类型

MySQL8 字符串数据类型有:CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。


3.1、CHAR

CHAR 数据类型是一个固定长度的字符串,在存储时总是用空格向右填充到指定的长度,它是 CHARACTER 的简写, 取值范围为:0~255 。定义CHAR(0) 时仅占用一位并且只能取值 NULL 和 ''(空字符串)的列。


3.2、VARCHAR

VARCHAR 数据类型表示为可变长度的字符串,取值范围: 0 到 65535。


3.3、BINARY

BINARY 数据类型类似于 CHAR,但存储的是二进制字节字符串。


3.4、VARBINARY

VARBINARY 数据类型类似于VARCHAR,但存储二进制字节字符串。


3.5、BLOB

BLOB 数据类型表示二进制字符串,有四种,TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB,其长度不同。

  • TINYBLOB:255字节
  • BLOB:65K
  • MEDIUMBLOB:16M
  • LONGBLOB:4G


3.6、TEXT

TEXT 数据类型表示字符串,有四种,TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT,其长度不同。

  • TINYTEXT:255字节
  • TEXT:65K
  • MEDIUMTEXT:16M
  • LONGTEXT:4G


3.7、ENUM

ENUM 数据类型表示枚举。用于存储一个字符串对象, 值在内部表示为整数,最多可以有 65535 个不同的元素。

create table tb_name (col_name enum ('a', 'b', 'c'));  //ENUM 数据类型示例
insert into tb_name (col_name) values ('a'),('b'),('c');
select col_name from tb_name where col_name = 'a';


3.8、SET

SET 数据类型表示字符串对象,可以有零个或多个值,值在内部表示为整数,最多可以有 64 个不同的成员。

create table tb_name (col_name set('a', 'b', 'c'));  //SET 数据类型示例
insert into tb_name (col_name) values ('a');
insert into tb_name (col_name) values ('a,b,c');


四、MySQL8 空间数据类型

MySQL 具有对应于 OpenGIS 类的空间数据类型。MySQL8 空间数据类型包含单个几何值:GEOMETRY、POINT、LINESTRING、POLYGON 。

create table tb_name (col_name GEOMETRY);  //GEOMETRY 数据类型示例


五、MySQL8 JSON数据类型

MySQL 支持通过长 JSON 定义数据类型,可以高效访问 JSON(JavaScript 对象表示法)文档中的数据。与直接存储 JSON 格式的字符串相比,该数据类型具有很多优势如:方便查询、验证错误、优化存储结构等。

create table tb_name (col_name json);  // JSON 数据类型示例
insert into tb_name values ('{"key1": "value1", "key2": "value2", "key3": "value3"}');


六、MySQL8 数据类型 总结

MySQL8教程 - MySQL8 数据类型,主要用于介绍 MySQL 和 MySQL8 数据库,从 MySQL8 数字数据类型开始,逐步到 MySQL8 JSON数据类型等,通篇实用易懂,让 MySQL8 入门更加快速和简单。


《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。