MySQL支持的数据类型主要有:数值类型、时间/日期类型和字符串类型
1. 整数类型
2. 浮点数和定点数类型
3. 日期和时间类型
4. 字符串类型
实例讲解及分析
CREATE TABLE str_db( a CHAR(4), b VARCHAR(4) ); INSERT str_db VALUES('hhhh', 'hh'); INSERT str_db VALUES('你好呀你', '你好呀你'); -- insert str_db VALUES('hhhhX', 'hhhh'); -- 出错, 无论是前者多于4个字符还是后者都不行 SELECT LENGTH(a) FROM str_db; // 4 & 12 ---------------- 在CMD中修改RESULT字符集(默认GBK) set session character_set_results=utf16; SELECT LENGTH(a), CHAR_LENGTH(a) FROM str_db; -- 4 & 12SELECT CHAR_LENGTH(a) FROM str_db; // 4 & 4
两个结果均为 4 & 12,应该是说明了length对字符串返回的是存储的字符串实际占用了的内存空间,CHAR(n)既声明了其所能存储的字符数也声明了其占用的空间(与字符集有关),当然,CHAR类型使用的是固定长度空间,即便字符串没有使用其全部空间
而CHAR_LENGTH返回的是实际字符数