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’,’值2’,’值3’,……,’值N’)称为枚举列表
ENUM类型的数据,只能从枚举列表中取,而且,只能取一个
枚举列表中的值都有一个顺序编号,存入的是这个顺序编号,而不是列表的值

SET类型

用于表示字符串对象
它的值可以有0个,或多个。
SET类型的定义和ENUM类型类似
SET (‘值1’,’值2’,’值3’,……,’值N’)
与ENUM类型相同
(‘值1’,’值2’,’值3’,……,’值N’)列表中的每个值,都有一个顺序编号,MySQL中存储的是这个编号,而不是列表中的值

BIT类型

用于表示二进制
定义如下
BIT (M)
M表示每个值的位数,范围为1~64
注意
如果分配的BIT (M)的数据长度小于M,在数据的左边用0补齐
比如
BIT (6)类型的插入值为’101’,实际存储为’000101’

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值