MySQL中char、varchar和text的区别
来源:互联网 发布:windows arp命令 编辑:程序博客网 时间:2024/05/22 17:39
转载自: http://blog.sina.com.cn/s/blog_4c9ba2850100ptic.html
一个英文字符占一个字节
1汉字字符就等于2byte
他们的存储方式和数据的检索方式都不一样。
数据的检索效率是:char>varchar>text
空间占用方面,要具体情况具体分析了。
CHAR(M)M个字节,0 <=M<= 255VARCHAR(M)L+1个字节,其中L<=M且0 <=M<= 65535建表时M的最大值为65532TEXTL+2个字节,其中L< 216
Char为定长,varchar,text为变长
Char在保存的时候,后面(右边)会用空格填充到指定的长度,在检索的时候后面的空格会去掉,所以检索出来的数据需要再用什么trim之类的函数去处理。(与sql server可能有些不同)
Varchar在保存的时候,不进行填充。当值保存和检索时尾部的空格仍保留。
TEXT列不能有默认值,存储或检索过程中,不存在大小写转换.
当存储的字符超过他们定义的长度时候,如果不是在sql服务器的严格模式下,都会自动截取合适的字段存储,而不会出现错误。但是,如果是中文的话同样要报错误:)比如定义char(4),然后insert (‘c哈哈’).
text不可以写默认值,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入(严格模式下没有测试 :))
(mysql5.5环境下可以指定长度 create table test(a text(65536) );
mysql> desc test;
+-------+------------+------+-----+---------+-------+
| Field | Type
+-------+------------+------+-----+---------+-------+
| a
+-------+------------+------+-----+---------+-------+)
存储计算:
在使用UTF8字符集的时候,手册上是这样描叙的:
·
·
·
char会造成空间浪费,但是有速度优势;而varchar节省了空间,但是速度就不如char。
- 经常变化的字段用varchar
- 知道固定长度的用char
- 尽量用varchar
- 超过255字节的只能用varchar或者text
- 能用varchar的地方不用text
) ENGINE=MyISAM DEFAULT CHARSET=latin1
tinyint(4)
bool 等同于TINYINT(1) -128~127 0~255。
SMALLINT(6) -32768~32767 0~65535
MEDIUMINT(9) -8388608~8388607 0~16777215
int(11) -2147483648~2147483647 0~4294967295
BIGINT(20) -9223372036854775808~9223372036854775807 0~18446744073709551615
char 最大255
varchar 0~65532
char的总结:
varchar的总结:
text的总结:
- Mysql 中 char 、varchar 、text的区别
- Mysql 中 char 、varchar 、text的区别
- MySQL中char、varchar和text的区别
- MySQL中char、varchar和text的区别
- MySQL中char、varchar和text的区别
- MySQL中char、varchar和text的区别
- MySQL中char、varchar和text的区别
- MySQL中char、varchar和text的区别
- mysql中char、varchar、text区别和存储范围
- mysql中char,varchar,text区别
- mysql中char,varchar,text区别
- mysql中varchar和char的区别
- mysql中char和varchar的区别
- Mysql中 char 和 varchar 的区别
- MySql中char和varchar的区别
- MySQL中char和varchar的区别
- mysql char varchar text的区别
- 【MySQL进阶】--char & varchar & text的区别
- 每一天都有进步,一点也不迷茫
- 操作系统基础-进程
- Vmware+gdb调试Linux内核——工欲善其事,必先利其器
- mysql查询表中某列不重复的行数
- jQuery选择器
- MySQL中char、varchar和text的区别
- Python笔记——string.split()
- Java Swing之Jtable
- 自己的listview的HeadView左右切换图片
- no type named `iterator_category' in `struct Pointt'
- PIL库编译备忘录
- 用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC
- 你的代码值多少钱
- 禅道故事:和尚与秀才