字符串

类型 说明 N的含义 是否有字符集 最大长度
CHAR(N) 定长字符 字符 255
VARCHAR(N) 变长字符 字符 16384
BINARY(N) 定长二进制字符 字节 255
VARBINARY(N) 变长二进制字符 字节 16384
TINYBLOB 二进制大对象 字节 256
BLOB 二进制大对象 字节 16k
MEDIUMBLOB 二进制大对象 字节 16M
LONGBLOB 二进制大对象 字节 4G
TINYTEXT 大对象 字节 256
TEXT 大对象 字节 16k
MEDIUMTEXT 大对象 字节 16M
LONGTEXT 大对象 字节 4G

提醒

  • BLOB、TEXT列创建索引时必须指定索引前缀长度

    mysql> create table  t4(a int primary key, b text,key(b));
    ERROR 1170 (42000): BLOB/TEXT column 'b' used in key specification without a key length
    
    mysql> create table  t4(a int primary key, b text,key(b(32)));
    Query OK, 0 rows affected (0.09 sec)
    
  • VARCHAR、VARBINARY前缀长度是可选的
  • BLOB、TEXT不能有默认值
  • BLOB、TEXT列排序时只能使用该列的前max_sort_length字节

字符集

  • character set: a set of symbols and encodings
  • 常见:utf8, utf8mb4, gbk, gb18030
  • ci: 忽略大小写
    • 使用utf8_binutf8mb4_bin来区分大小写

查看支持的字符集

mysql> show charset;

诡问

N代表什么?

char(10)插入中文"刘聪"会填充什么?

results matching ""

    No results matching ""