mysql 数据类型
1.数值类型
整数类型:
MySQL数据类型 | 含义(有符号) |
tinyint(m) | 1个字节 范围(-128~127) |
smallint(m) | 2个字节 范围(-32768~32767) |
mediumint(m) | 3个字节 范围(-8388608~8388607) |
int(m) | 4个字节 范围(-2147483648~2147483647) |
bigint(m) | 8个字节 范围(+-9.22*10的18次方) |
取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)
int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个m有什么用
默认m为11,zerofill 建表时参数,不够可以用0补充
浮点类型:
MySQL数据类型 含义
float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位
double(m,d) 双精度浮点型 16位精度(8字节) m总个数,d小数位
定点类型:
以字符串形式存放,适合表示货币精度高的数据
(M,D)默认整数10,小数0
比浮点数更精确
BIT位类型:
查询时需要转换成bin()、hex()
2.日期时间类型
MySQL数据类型 含义
date 日期 '2008-12-2'
time 时间 '12:25:36'
datetime 日期时间 '2008-12-2 22:06:44'
timestamp 自动存储记录修改时间 受时区影响 最大到2038年
3.字符串类型
CHAR和VARCHAR类型:
CHAR
列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。
当检索到CHAR值时,尾部的空格被删除掉,所以,我们在存储时字符串右边不能有空格。在存储或检索过程中不进行大小写转换。
VARCHAR
值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。
VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。
BINARY和VARBINARY类型:
存储的是二进制串
text和blob:
ENUM:
选一
SET:
选多 64