下面分享一下char和varchar的区别:
1:char
是固定长度,不管你存储的数据是多少他都会都固定的长度。
2:varchar
可变长度
varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。所以实际应用中用户可以根据自己的数据类型来做
由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。
非空CHAR的最大总长度是255【字节】;非空VARCHAR的最大总长度是65533【字节】。
可空CHAR的最大总长度是254【字节】;可空VARCHAR的最大总长度是65532【字节】。
原因:非空标记需要占据一个字节,VARCHAR超过255需要用2个字节标记字段长度,不超过255用1个字节标记字段长度.
注意上边是 【字节】,不是【字符】。但mysql5字段定义时,是定义的【字符】数。比如varchar(10),你仅能存入10个英文字母或者汉字,尽管一个字符可能占多个字节。
一个字符可能占用多个字节,这由编码和存放的字符决定。比如UTF8(一种变长的unicode编码)中,一般一个汉字占据3个字节,一个英文字母占据一个字节
MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。
1 数值类型:
*tinyint(1字节)
smallint(2字节)
mediumint(3字节)
*int(4字节)
bigint(8字节)
*float(4字节) float(6,2)
*double(8字节)
decimal(自定义)字串形数值
2 字串类型
普通字串
*char 定长字串 char(8)
*varchar 可变字串 varchar(8)
二进制类型
tinyblob
blob
mediumblob
longblob
文本类型
tinytext
*text 常用于<textarea></textarea>
mediumtext
longtext
*enum枚举
set集合
3 时间和日期类型:
date 年月日
time 时分秒
datatime 年月日时分秒
timestamp 时间戳
year 年
4 NULL值
NULL意味着“没有值”或“未知值”
可以测试某个值是否为NULL
不能对NULL值进行算术计算
对NULL值进行算术运算,其结果还是NULL
0或NULL都意味着假,其余值都意味着真