mysql 开发基础系列4 字符数据类型
字符串类型
1.1 CHAR 和VARCHAR 类型
CHAR 列的长度固定为创建表时声明的长度,VARCHAR 列中的值为可变长字符串。在检索的时候,CHAR 列删除了尾部的空格,而VARCHAR 则保留这些空格。(在sqlserver里都是长度2)
CREATE TABLE vc (v VARCHAR(4), c CHAR(4)); INSERT INTO vc VALUES ('ab ', 'ab '); SELECT LENGTH(v),LENGTH(c) FROM vc;
1.2 BINARY 和VARBINARY 类型
BINARY 和VARBINARY 类似于CHAR 和VARCHAR,不同的是它们包含二进制字符串。
CREATE TABLE t (c BINARY(3)); INSERT INTO t VALUES('a');
1.3 ENUM 类型 (ENUM 中文名称叫枚举类型) 插入1为M,2为F, 3则报错。 数字序号对应着字段数。
CREATE TABLE t1 (gender ENUM('M','F')); -- 插入枚举类型的四种值 INSERT INTO t1 VALUES('M'),('1'),('f'),(NULL); SELECT * FROM t1;
可以看出ENUM 类型是忽略大小写的
1.4 SET 类型
Set 和ENUM 除了存储之外,最主要的区别在于Set 类型一次可以选取多个成员。 一行不会插入重复值如: a,d,a 保存后为a,d
CREATE TABLE t3 (col SET ('a','b','c','d')); INSERT INTO t3 VALUES('a,b'),('a,d,a'),('a,b'),('a,c'),('a'); SELECT * FROM t3;