全国咨询/投诉热线:400-618-9090

首页技术文章正文

MySQL字符串和二进制数据类型介绍

更新时间:2019-11-21 来源:黑马程序员 浏览量:

为了存储字符串、图片和声音等数据,MySQL提供了字符串和二进制类型。下面列举了MYSQL中的字符串和二进制类型。

1574323906793_MySQL数据库-二进制类型.jpg

上面列举的字符串和二进制类型中,不同数据类型具有不同的特点,接下来,针对这些数据类型一一介绍。

CHAR和VARCHAR类型

CHAR和VARCHAR类型都用来表示字符串数据,不同的是,VARCHAR可以存储可变长度的字符串在MySQL中,定义CHAR和VARCHAR类型的方式如下所示:

CHAR(M) 或者 VARCHAR(M)

上面的的定义方式中,M指的是字符串的最大长度。为了帮助读者更好地理解CHAR和VARCHAR之间的区别,下面以CHAR(4)和VARCHAR(4)为例进行说明,具体如下。

1574323929528_CHAR和VARCHAR.jpg

从上面图中可以看出,当数据为CHAR(4)类型时,不管插入值的长度是多少,所占用的存储空间都是4个字节。而VARCHAR(4)所对应的数据所占用的字节数为实际长度加1。

BINARY和 VARBINARY类型

BINARY和 VARBINARY类型类似于CHAR和VARCHAR,不同的是,它们所表示的是二进制数据。定义 INARY和 VARBINARY类型的方式如下所

BINARY(M) EX VARBINARY (M)

在上述格式中,M指的是二进制数据的最大字节长度。

需要注意的是,BINARY类型的长度是固定的,如果数据的长度不足最大长度,将在数据的后面用“\0”补齐,最终达到指定长度。例如,指定数据类型为BINARY(3),当插入a时,实际存储的数据为“a0\0”,当插入ab时,实际存储的数据为“ab\0”。


TEXT类型

TEXT类型用于表示大文本数据,例如,文章内容、评论等,它的类型分为4种,具体如下所示。

BL0B类型

BLOB类型是一种特殊的二进制类型,它用于表示数据量很大的二进制数据,例如图片、PDF文档等。BLOB类型分为四种,具体如下所示。

需要注意的是,BL0B类型与TX类型很相似,但BL0B类型数据是根据二进制编码进行比较和排序,而仼XT类型数据是根据文本模式进行比较和排序。

ENM类型

ENUM类型又称为枚举类型,定义ENM类型的数据格式如下所示:

ENUM(‘值1', ’值2’, ’值33’ ,…, ’值n’)

在上述格式中,(‘值1', ’值2’, ’值33’ ,…, ’值n’)称为枚举列表,ENM类型的数据只能从枚举列表中取,并且只能取一个。需要注意的是,枚举列表中的每个值都有一个顺序编号,MySQL中存入的就是这个顺序编号,而不是列表中的值。


SET类型

SET类型用于表示字符串对象,它的值可以零个或多个,SET类型数据的定义格式与ENUM类型类似,具体语法格式如下所示:

SET(‘值1’,’值2’,’值3’,...,’值n’)

与ENUM类型相同,(‘值1’,’值2’,’值3’,...,’值n’)列表中的每个值都有一个顺序编号,MySQL中存入的也是这个顺序编号,而不是列表中的值。

BIT类型

BIT类型用于表示二进制数据。定义BIT类型的基本语法格式如下所示:


BIT(M)

在上述格式中,M用于表示每个值的位数,范围为1~64。需要注意的是,如果分配的BIT(M)类型的数据长度小于M,将在数据的左边用0补齐。例如,为BIT(6)分配值b‘101’的效果与分配b“000101’相同。

猜你喜欢:
MySQL安装教程

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名