MYSQL

2017-08-22  本文已影响0人  李景磊
下面分享一下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都意味着假,其余值都意味着真
上一篇下一篇

猜你喜欢

热点阅读