MYSQL数据类型

131 阅读2分钟

整数类型:

image.png

定点数

例如:price DECIMAL(5,2) 5代表十进制数字总的位数,2表示小数点后面的位数 它的基本范围为(-999.99,999.99)

浮点数

image.png

BIT

image.png

CHAR / VARCHAR

CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数。它是一个长度,编码集不同,每个字符长度也不同,所以后面的参数允许的最大值也不同。例如,CHAR(30)可以占用30个字符。默认长度都为255。

​CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉,所以,我们在存储时字符串右边不能有空格,即使有,查询出来后也会被删除。

VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值(实际可指定的最大长度与编码和其他字段有关,比如,使用utf-8编码格式,大小为标准格式大小的2倍,仅有一个varchar字段时实测最大值仅21844,如果添加一个char(3),则最大取值减少3。整体最大长度是65,532字节)。innodb规定至少一页要存储两行以上的数据,而页的大小是固定的。

同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。

VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。

​如果分配给CHAR或VARCHAR列的值超过列的最大长度,则对值进行裁剪以使其适合。如果被裁掉的字符不是空格,则会产生一条警告。如果裁剪非空格字符,则会造成错误(而不是警告)并通过使用严格SQL模式禁用值的插入

时间日期

image.png