大概写一下区别
mysql 4.1版本以前 varchar最大支持255个字节 varchar(num) 中的 num是指的字节数
mysql 5.0版本以后 varchar最大支持65535个字节 varchar(num) 中的 num 指的是字符数
根据编码格式的不同 : 一个汉字在utf-8中是占3个字节,其它的汉字都代表2个字节.
编码历史从ASCII 到unicode 到utf8 可以看 字符编码的发展
char的速度 比 varchar快
但是char比varchar浪费空间
varchar在255个字节长度的时候,他在每个块前面用一个字节代表这个字符块的长度
varchar的存放和string是一样原理的,即length {block}这种方式,所以varchar的长度和它实际占用空间是无关的
varchar2 和varchar 的区别是varchar2 支持空 但是varchar2好像只在oracle中使用
decimal的区别

3.23之前M代表总长度(包括负号和小数点),D代表小数点后的小数位数
3.23之后 M就代表整数的位数(包括负号),D代表小数的位数(不包括小数点)
如果D为0 ,那么小数点那一位就省了,对应的旧版的M也会扩大范围
本文详细介绍了MySQL中CHAR、VARCHAR及VARCHAR2的区别,并解释了不同版本下VARCHAR的最大长度变化。此外,还对比了CHAR与VARCHAR在存储效率上的差异,并讨论了DECIMAL类型在3.23版本前后表示方式的不同。
335

被折叠的 条评论
为什么被折叠?



