MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL 数据类型

数据类型指定了特定的数据类型,例如整数,浮点数,布尔值等。它还标识了该类型的可能值,操作可以在该类型上执行的操作以及该类型的值的存储方式。在MySQL中,每个数据库表都有许多列,并且每个列包含特定的数据类型。
我们可以确定MySQL中具有以下特征的数据类型:
它代表的值的类型(固定或可变)。 它占用的存储空间取决于这些值是固定长度还是可变长度。 其值可以建立索引或不建立索引。 MySQL如何执行特定数据类型的值的比较。
MySQL支持各种类别中的许多 SQL 标准数据类型。它使用许多不同的数据类型,这些数据类型可以分为以下几类: 数字,日期和时间,字符串类型,空间类型和 JSON 数据类型。

数字数据类型

MySQL具有所有必需的SQL数字数据类型。这些数据类型可以包括精确的数字数据类型(例如,整数,十进制,数字等),以及近似的数字数据类型(例如,浮点数,实数和双精度)。它还支持BIT数据类型来存储位值。在MySQL中,数字数据类型分为两类,有符号的和无符号的(比特数据类型除外)。
下表包含 MySQL :
数据类型语法 说明
TINYINT 这是一个非常小的整数,可以带符号或无符号。如果是带符号的,则允许的范围是-128到127、如果是无符号的,则允许的范围是0到255、我们可以指定最多4位数字的宽度。存储需要1个字节。
SMALLINT 这是一个可以签名或不签名的小整数。如果是带符号的,则允许的范围是-32768到32767、如果是无符号的,则允许的范围是0到65535、我们可以指定最多5位数字的宽度。存储需要2个字节。
MEDIUMINT 它是一个中等大小的整数,可以带符号或无符号。如果是带符号的,则允许的范围是-8388608到8388607、如果没有带符号的,则允许的范围是0到16777215、我们可以指定最多9位数字的宽度。它需要3个字节来存储。
INT 它是一个普通大小的整数,可以带符号或无符号。如果是带符号的,则允许的范围是-2147483648到2147483647、如果没有带符号的,则允许的范围是0到4294967295、我们可以指定11位数字的宽度。存储需要4个字节。
BIGINT 这是一个大整数,可以带符号或无符号。如果签名,则允许范围是-9223372036854775808至9223372036854775807、如果未签名,则允许范围是0至18446744073709551615、我们可以指定20位数字的宽度。存储需要8个字节。
FLOAT(m,d) 这是一个不能无符号的浮点数。您可以定义显示长度(m)和小数位数(d)。这不是必需的,默认值为10,2,其中2是小数位数,而10是数字总数(包括小数位数)。对于浮点型,小数精度可以达到24位。存储需要2个字节。
DOUBLE(m,d) 这是一个不能取消签名的双精度浮点数。您可以定义显示长度(m)和小数位数(d)。这不是必需的,它将默认为16,4,其中4是小数位数。小数精度可以达到53个位的两倍。 Real是double的同义词。存储需要8个字节。
DECIMAL(m,d) 不能解签名的解压缩浮点数。在未压缩的十进制中,每个十进制对应一个字节。需要定义显示长度(m)和小数位数(d)。数字是十进制的同义词。
BIT(m) 用于将位值存储到表列中。在此,M确定每个值的位数,范围为1到64、
BOOL 它仅用于真假条件。它认为数值1为true,0为false。
BOOLEAN 类似于BOOL。

日期和时间数据类型:

此数据类型用于表示时间值,例如日期,时间,日期时间,时间戳和年份。每个时间类型都包含值,包括零。当我们插入无效值时,MySQL无法表示它,然后使用零值。
下表说明了MySQL支持的所有日期和时间数据类型:
语法 大小 说明
YEAR[(2|4)] 年份值是2位或4位。 默认为4位数字。存储需要1个字节。
DATE 值的范围从"1000-01-01"到"9999-12-31"。 显示为"yyyy-mm-dd"。存储需要3个字节。
TIME 值的范围从'-838:59:59'到'838:59:59'。 显示为"HH:MM:SS"。存储需要3个字节再加上小数秒。
DATETIME 值的范围从" 1000-01-01 00:00:00"到" 9999-12-31 23:59:59"。 显示为"yyyy-mm-dd hh:mm:ss"。存储需要5个字节加上小数秒的时间。
TIMESTAMP(m) 值的范围是从1970年1月1日00:00:01(UTC)到" 2038-01-19 03:14:07"(TC)。 显示为"YYYY-MM-DD HH:MM:SS"。存储需要4个字节加上小数秒的时间。

字符串数据类型:

字符串数据类型用于保存纯文本和二进制数据,例如文件,图像等。MySQL可以执行搜索并根据模式匹配(例如LIKE运算符,正则表达式等)对字符串值进行比较。
下表说明了MySQL支持的所有字符串数据类型:
语法 大小 说明
CHAR(size) 最大长度为255个字符。 大小是要存储的字符数。定长字符串。在右边填充空格以等于大小的字符。
VARCHAR(size) 最大长度为255个字符。 大小是要存储的字符数。可变长度的字符串。
TINYTEXT(size) 最大长度为255个字符。 这里的大小是要存储的字符数。
TEXT(size) 最大大小为65,535个字符。 这里的大小是要存储的字符数。
MEDIUMTEXT(size) 最大大小为16,777,215个字符。 这里的大小是要存储的字符数。
LONGTEXT(size) 最大大小为4GB或4,294,967,295个字符。 这里的大小是要存储的字符数。
BINARY(size) 最大长度为255个字符。 这里的大小是要存储的二进制字符数。定长字符串。在右边填充空格以等长字符。
(在MySQL 4.1.2中引入)
VARBINARY(size) 最大长度为255个字符。 大小是要存储的字符数。可变长度的字符串。
(在MySQL 4.1.2中引入)
ENUM 需要1或2个字节,具体取决于枚举值的数量。一个ENUM最多可以有65,535个值。 它是枚举的缩写,表示每个列可能具有指定的可能值之一。它使用数字索引(1、2、3 ...)表示字符串值。
SET 需要1、2、3、4或8个字节,具体取决于集合成员的数量。它最多可以存储64个成员。 它可以容纳零个或多个,或任意数量的字符串值。必须从创建表时指定的预定义值列表中选择它们。

二进制大对象数据类型(BLOB):

MySQL中的BLOB是一种数据类型,可以容纳可变数量的数据。根据可容纳的最大长度,将它们分为四种不同的类型。
下表显示了MySQL支持的所有Binary Large Object数据类型:
语法 大小
TINYBLOB 它最多可以容纳255个字节。
BLOB(size) 最大容量为65,535个字节。
MEDIUMBLOB 它最多可以容纳16,777,215字节。
LONGBLOB 最大容量为4GB或4,294,967,295字节。

空间数据类型

这是一种特殊的数据类型,用于保存各种几何和地理值。它对应于OpenGIS类。下表显示了MySQL支持的所有空间类型:
数据类型 说明
GEOMETRY 它是一个点或点的集合,可以容纳具有位置的任何类型的空间值。
POINT 几何图形中的点表示单个位置。它存储X,Y坐标的值。
POLYGON 这是一个表示多面几何的平面。它可以由零个或多个内部边界和仅一个外部边界定义。
LINESTRING 它是具有一个或多个点值的曲线。如果仅包含两个点,则始终代表线。
GEOMETRYCOLLECTION 它是一种几何,具有零个或多个几何值的集合。
MULTILINESTRING 这是一个多曲线几何,其中包含线串值。
MULTIPOINT 它是多个点元素的集合。在这里,该点不能以任何方式连接或排序。
MULTIPLYGON 这是一个多表面对象,代表多个多边形元素的集合。这是一种二维几何。

JSON数据类型

MySQL从版本v5.7.8开始支持本机JSON数据类型。这种数据类型使我们能够快速有效地存储和访问JSON文档。
与在字符串列中存储JSON格式的字符串相比,JSON数据类型具有以下优点:
它提供JSON文档的自动验证。如果我们将无效文档存储在JSON列中,则会产生错误。 它提供了最佳的存储格式。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4