MySQL字符串和二进制

为了存储字符串、图片和声音等数据,MysqL提供了字符串和二进制类型。

数据类型

CHAR——用于表示固定长度的字符串

VARCHAR——用于表示可变长度的字符串

BINARY——用于表示固定长度的二进制数据

VARBINARY——用于表示可变长度的二进制数据

BOLB——用于表示二进制大数据

TEXT——用于表示大文本数据

ENUM——表示枚举类型,只能存储一个枚举字符串值

SET——表示字符串对象,可以有零或多个值

BIT——表示位字段类型

CHAR和VARCHAR类型

都用来存储字符串

VARCHAR,可以存储可变长度的字符串

CHAR,存储定长字符串

定义如下

CHAR (M)或者VARCHAR (M)

M指的是字符串的最大长度

比如

插入值’ab’

CHAR (4),需要4个字节

VARCHAR (4),需要3个字节

当数据为CHAR (M)类型时,不管插入值的长度是多少,所占用的存储空间都是M个字节。

当为VARCHAR (M)类型时,所占用的字节数为实际长度加1。

BINARY和VARBINARY类型

类似于CHAR和VARCHAR

用来表示二进制数据

定义如下

BINARY (M)或者VARBINARY (M)

M指的是二进制数据的最大字节长度

注意

BINARY类型的长度是固定的,如果数据的长度不足最大长度,在后面用”\0”补齐。

比如,数据类型为BINARY (3),当插入a时,实际存储的是”a\0\0”

TEXT类型

用于表示大文本数据

比如,文章内容评论

类型分为4中,如下

TINYTEXT

取值范围:0~255字节

TEXT

取值范围:0~65535字节

MEDIUMTEXT

取值范围:0~16777215字节

LONGTEXT

取值范围:0~4294967295字节

BLOB类型

一种特殊的二进制类型

用于表示数据量很大的二进制数据

比如,图片、PDF文档等

分为4种,如下

TINYBLOB

取值范围:0~255字节

BLOB

取值范围:0~65535字节

MEDIUMBLOB

取值范围:0~16777215字节

LONGBLOB

取值范围:0~4294967295字节

BLOB和TEXT区别

BLOB类型数据,根据二进制编码进行比较和排序

TEXT类型数据,根据文本模式进行比较和排序

ENUM类型

枚举类型

定义如下

ENUM (‘值1’,’值2’,’值3’,……,’值N’)

上述的(‘值1’,’值N’)称为枚举列表

ENUM类型的数据,只能从枚举列表中取,而且,只能取一个

枚举列表中的值都有一个顺序编号,存入的是这个顺序编号,而不是列表的值

SET类型

用于表示字符串对象

它的值可以有0个,或多个。

SET类型的定义和ENUM类型类似

SET (‘值1’,’值N’)

与ENUM类型相同

(‘值1’,’值N’)列表中的每个值,都有一个顺序编号,MysqL中存储的是这个编号,而不是列表中的值

BIT类型

用于表示二进制

定义如下

BIT (M)

M表示每个值的位数,范围为1~64

注意

如果分配的BIT (M)的数据长度小于M,在数据的左边用0补齐

比如

BIT (6)类型的插入值为’101’,实际存储为’000101’

相关文章

目录MySQL卸载环境查看是否已安装MySQL卸载mysql服务查看是否...
目录数据类型数据类型分类数值类型以TINYINT认识整型族有符号...
目录表的约束空属性非空约束(NOT NULL Constraint)默认值定...
目录函数时间日期函数:字符串函数数学函数其他函数 函数 时间...
目录使用C语言连接库的安装C APImysql_initmysql_real_conne...
目录用户用户管理查询所有用户查看当前用户查看当前连接数创...