mysql学习教程,从入门到精通,MySQL数据类型基础教程(4)

60 篇文章 0 订阅
44 篇文章 0 订阅

1、MySQL 数据类型基础教程文档

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

1.1、数字数据类型

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列中,则会产生错误。
它提供了最佳的存储格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值