decimal:定点数类型,底层实际上采用字符串形式存储数字。语法:decimal(m, d),例如:decimal(3, 2)表示3个有效数字,2个小数(有效数字最多65个,小数位最多30个)。
char(m)
m表示列长,范围是0~255个字符。保存时,在右侧填充空格以达到指定长度。例如,char(4)定义了一个固定长度的字符串列,包含的字符个数最大为4。当插入字符长度大于4,则报错(除非超过4个长度之后都是空格字符,则空格字符会自动被删除用来保证插入的成功)
在InnoDB中存储char(m)类型数据时,如果数据实际占用空间不到m字节,则会使用空格填充到m,是将数据填充到m字节,而不是m字符。如果存储数据虽然字符数不到m,但占用空间已经超过m字节,则InnoDB不会再填充空格
varchar(m) m长度65535字节。例如,varchar(50)定义了一个最大长度为50的字符串,如果插入字符串只有10个,则实际存储的字符串为10个字符和一个字符串结束字符。varchar最大实际长度由最长行大小和使用字符集确定,而实际占用空间为字符串实际长度加1
如果字段可存储的最大空间超过65535,则在SQL Mode严格模式下,SQL会报错,在非严格模式下,MySQL会自动将类型转换为Text
VARCHAR类型不会自动截断插入数据中尾部空格,也不会往字段尾部里填充空格
text类型
tinytext 表示长度为255字符的text列
text 表示长度为65535字符的text列
mediumtext 表示长度为16777215字符的text列
longtext 表示长度为 4294967295 或 4GB 字符的text列
enum类型 语法:<字段名> enum('值1', '值2', ...)。该字段插入值时,只能是指定的枚举值
set类型 语法:<字段名> set('值1', '值2', ...)。该字段插入值时,只能是指定的值。注意:值不可重复
BLOB类型:二进制大对象,可以存储图片、声音、视频等文件:
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!