您的位置:首页 > 数据库 > MySQL

mysql中类型长度以及text和varchar的区别

2017-07-14 20:28 676 查看
参考:http://blog.csdn.net/geniussnail/article/details/7753256

关于char,varchar与text平时没有太在意,一般来说,可能现在大家都是用varchar。但是当要存储的内容比较大时,究竟是选择varchar还是text呢?不知道。。。。。。

于是去查阅了一些资料,顺便将这三种类型做个比较:

(1)char:  char不用多说了,它是定长格式的,但是长度范围是0~255. 当你想要储存一个长度不足255的字符时,MySQL会用空格来填充剩下的字符。因此在读取数据时,char类型的数据要进行处理,把后面的空格去除。

(2)varchar:  关于varchar,有的说最大长度是255,也有的说是65535,查阅很多资料后发现是这样的:varchar类型在5.0.3以下的版本中的最大长度限制为255,而在5.0.3及以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节(注意是字节而不是字符!!!)的数据(起始位和结束位占去了3个字节),也就是说,在5.0.3以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以在高版本中使用可变长的varchar来存放,这样就能有效的减少数据库文件的大小。

(3)text:与char和varchar不同的是,text不可以有默认值,其最大长度是2的16次方-1

总结起来,有几点:

经常变化的字段用varchar
知道固定长度的用char
尽量用varchar
超过255字符的只能用varchar或者text
能用varchar的地方不用text  

 
 

附录
 
常见
MySQL
数据类型(留作备忘)
 

类型
 
大小
 
描述
 
CAHR(Length)
 
Length
字节
 
定长字段,长度为
0~255
个字

 
VARCHAR(Length)
 
String
长度
+1
字节或
String


+2
字节
 
变长字段,
长度为
0~65 535

字符
 
TINYTEXT
 
String
长度
+1
字节
 
字符串,最大长度为
255
个字

 
TEXT
 
String
长度
+2
字节
 
字符串,
最大长度为
65 535

字符
 
MEDIUMINT
 
String
长度
+3
字节
 
字符串,最大长度为
16 777 
215
个字符
 
LONGTEXT
 
String
长度
+4
字节
 
字符串,
最大长度为
4 294 967 
295
个字符
 
TINYINT(Length)
 
1
字节
 
范围:
-128~127
,或者
0~255
(无符号)
 
SMALLINT(Length)
 
2
字节
 
范围:
-32 768~32 767
,或者
0~65 535
(无符号)
 
MEDIUMINT(Length)
 
3
字节
 
范围:
-8 388 608~8 388 607

或者
0~16 777 215
(无符号)
 
INT(Length)
 
4
字节
 
范围:
-2 147 483 648~2 147 483 
647

或者
0~4 294 967 295
(无
符号)
 
BIGINT(Length)
 
8
字节
 
范围:
-9 223 372 036 854 775 
808~9 223 372 036 854 775 
807
,或者
0~18 446 744 073 
709 551 615
(无符号)
 
FLOAT(Length, Decimals)
 
4
字节
 
具有浮动小数点的较小的数
 
DOUBLE(Length, Decimals)
 
8
字节
 
具有浮动小数点的较大的数
 
DECIMAL(Length, Decimals)
 
Length+1
字节或
Length+2
字节
 
存储为字符串的
DOUBLE

允许
固定的小数点
 
DATE
 
3
字节
 
采用
YYYY-MM-DD
格式
 
DATETIME
 
8
字节
 
采用
YYYY-MM-DD HH:MM:SS
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: