#青训营 x 字节后端训练营# 一点不快乐之MySQL数据库
字符串类型
CHAR 和 VARCHAR 类型:保存字符串的数据类型
CHAR类型的长度是你定义多少就显示多少,比如你声明一个 CHAR(20) 的字符串类型,那么每个字符串占用 20 字节,占用M字节,M 的取值范围是 0 - 255
VARCHAR是可变长的字符串,范围是 0 - 65535,在字符串检索的时候,CHAR 会去掉尾部的空格,而 VARCHAR 会保留这些空格create table vctest1 (vc varchar(6),ch char(6));
insert into vctest1 values("abc ","abc ");
select length(vc),length(ch) from vctest1;
vc的长度是5,ch的长度是3,varchar 会保留最后的空格,char 会去掉最后的空格
BINARY 和 VARBINARY 类型
包含二进制字符串而不包含非二进制字符串,最大长度和 CHAR 与 VARCHAR 是一样的,只不过他们是定义字节长度
BLOB类型
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB
TEXT 类型
也包含4种类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT
ENUM 类型
枚举类型,它的范围需要在创建表时显示指定,对 1 - 255 的枚举需要 1 个字节存储;对于 255 - 65535 的枚举需要 2 个字节存储。ENUM 会忽略大小写,在存储时都会转换为大写。
SET 类型
SET 对于每 0 - 8 个成员,分别占用 1 个字节,最大到 64 ,占用 8 个字节
Set 和 ENUM 除了存储之外,最主要的区别在于 Set 类型一次可以选取多个成员,而 ENUM 则只能选一个。