varchar与char 的区别
来源:互联网 发布:长尾理论 知乎 编辑:程序博客网 时间:2024/05/17 20:11
char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:
char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.
(在检索操作中那些填补出来的空格字符将被去掉)
在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).
存数据时的区别
char定义的是固定长度,长度范围为0-255,存储时,如果字符数没有达到定义的位数,会在后面用空格补全存入数据库中
varchar是变长长度,长度范围为0-65535,存储时,如果字符没有达到定义的位数,也不会在后面补空格,当然还有一或两个字节来描述该字节长度
取数据时的区别
数据库取char的数据时,会把后面的空格全部丢弃掉,也就是说,在char中的尾部存入空格时,最后取出来都会被丢弃
数据库在取varchar数据时,尾部空格会保留
占用字节差别
当定义char时,不管你存入多少字符,都会占用到你定义的字符数,而用varchar时,则和你输入的字符数有关,会多一到两个字节来
记录字节长度,当数据位占用的字节数小于255时,用1个字节来记录长度,数据位占用字节数大于255时,用2个字节来记录长度,还有
一位来记录是否为nul值
char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.
(在检索操作中那些填补出来的空格字符将被去掉)
在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).
存数据时的区别
char定义的是固定长度,长度范围为0-255,存储时,如果字符数没有达到定义的位数,会在后面用空格补全存入数据库中
varchar是变长长度,长度范围为0-65535,存储时,如果字符没有达到定义的位数,也不会在后面补空格,当然还有一或两个字节来描述该字节长度
取数据时的区别
数据库取char的数据时,会把后面的空格全部丢弃掉,也就是说,在char中的尾部存入空格时,最后取出来都会被丢弃
数据库在取varchar数据时,尾部空格会保留
占用字节差别
当定义char时,不管你存入多少字符,都会占用到你定义的字符数,而用varchar时,则和你输入的字符数有关,会多一到两个字节来
记录字节长度,当数据位占用的字节数小于255时,用1个字节来记录长度,数据位占用字节数大于255时,用2个字节来记录长度,还有
一位来记录是否为nul值
0 0
- Varchar与char的区别
- Varchar与char的区别
- Varchar与char的区别
- Varchar与char的区别
- VARCHAR与CHAR的区别
- Varchar与char的区别
- Varchar与char的区别
- CHAR与varchar的区别
- Varchar与char的区别
- varchar 与char的区别
- char 与varchar的区别
- Varchar 与 Char 的区别
- varchar与char的区别
- varchar与char的区别
- char与varchar的区别
- char与varchar的区别
- char与varchar的区别?
- char与varchar的区别
- 开始使用Retrofit 2 HTTP 客户端
- Android TV ViewPager翻页控制
- Android 源码分析之基于Stagefright的MediaPlayer播放框架[3]
- 集合和数组的区别
- sql中设置字段的显示个数
- varchar与char 的区别
- Spark算子:RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
- Java之封装
- HTTP中的URL长度限制
- bootstrap的模态弹窗 和CKEditor的模态弹窗冲突问题解决
- java实现 排序算法之直接插入排序
- sass安装和webStrom编辑器(win7)
- x64 PL/SQL 连接 Oralce 提示 Could not initialize oci.dll
- ddos和cc攻击的区别,防护!!