MySQL基础教程:字符串类型
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询MySQL基础教程:字符串类型,MySQL提供的字符串类型包括CHAR、VARCHAR、BLOB、TEXT、ENUM和SET。对这些类型作一个简要的叙述如下:
CHAR(M) [BINARY]
一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。在MySQL3.23以前的版本,M的范围是1 ~ 255个字符,在MySQL3.23版中,M值的范围是0 ~ 255个字符.当值被检索时,空格尾部被删除。CHAR类型在排序和比较时不区分大小写,除非给出BINARY关键词。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。 CHAR(0) 可以用于在希望定义一个列,但由于尚不知道其长度,所以不想给其分配空间的情况下,CHAR(0) 列作为占位符很有用处。以后可以用 ALTER TABLE 来加宽这个列。
存储需求:M字节
[NATIONAL] VARCHAR(M) [BINARY]
一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ~ 255个字符。 VARCHAR类型在排序和比较时不区分大小写,除非给出BINARY关键词。VARCHAR是CHARACTER VARYING一个缩写。
存储需求:L+1字节(L是存储实际值需要的长度,1为存储该值实际长度)
TINYBLOB、TINYTEXT
一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。
存储需求:L+1字节
BLOB、TEXT
一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。
存储需求:L+2字节
MEDIUMBLOB、MEDIUMTEXT
一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。
存储需求:L+3字节
LONGBLOB、LONGTEXT
一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。
存储需求:L+4字节
ENUM('value1','value2',...)
枚举。一个仅有一个值的字符串对象,这个值式选自与值列表'value1'、'value2', ...,或NULL。一个ENUM最多能有65535不同的值。
存储需求:1或2字节
SET('value1','value2',...)
一个集合。能有零个或多个值的一个字符串对象,其中每一个必须从值列表'value1', 'value2', ...选出。一个SET最多能有64个成员。
存储需求:1、2、3、4或8字节
在某种意义上,串实际是一种非常“通用”类型,因为可用它们来表示任意值,不仅仅是字符串。例如,可用串类型来存储二进制数据,如图像、视频或音频。
对于所有串类型,都要剪裁过长的值使其适合于相应的串类型。但是串类型的取值范围很不同,有的取值范围很小,有的则很大。取值大的串类型能够存储近 4GB 的数据。因此,应该使串足够长以免您的信息被切断(由于受客户机/服务器通信协议的最大块尺寸限制,列值的最大限额为 24MB)。
另外,对于串类型,在比较时是忽略大小写的,使用BINARY关键字,则比较时采用ASCII码的方式,即不再忽略大小写。可以使用BINARY的串类型为CHAR和VARCHAR。