varchar(数据库中char和varchar的区别)

本文目录
- 数据库中char和varchar的区别
- char(10)和VARCHAR(10)主要的区别是什么
- 如何在MySQL的varchar列中输入中文数据
- varchar是什么数据类 字符串
- varchar(10)什么意思
- “String”和“varchar”的详细区别是什么
- 数据库varchar 20 可以输入多少个汉字
- Java语言中char和varchar有何区别
- Mysql varchar字段长度越大越好吗
- mysql中char和varchar有什么区别
数据库中char和varchar的区别
数据库中char和varchar的区别为:长度不同、效率不同、存储不同。
一、长度不同
1、char类型:char类型的长度是固定的。
2、varchar类型:varchar类型的长度是可变的。
二、效率不同
1、char类型:char类型每次修改的数据长度相同,效率更高。
2、varchar类型:varchar类型每次修改的数据长度不同,效率更低。
三、存储不同
1、char类型:char类型存储的时候是初始预计字符串再加上一个记录字符串长度的字节,占用空间较大。
2、varchar类型:varchar类型存储的时候是实际字符串再加上一个记录字符串长度的字节,占用空间较小。
char(10)和VARCHAR(10)主要的区别是什么
首先明确的是,char的长度是不可变的,而varchar的长度是可变的,
定义一个char和varchar,如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,
char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
扩展资料:char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的,有些编译器如pSOS的编译器,还可以通过编译开关来指定它是有符号数还是无符号数。
参考资料:varchar百度百科
如何在MySQL的varchar列中输入中文数据
字符编码不对 就会这样了 你在建数据库的时候 最好加上这样一句
create database tea default character set utf8 collate utf8_general_ci;
set names ’utf8’;
这是对数据库默认字符的设置 以后对数据库的操作都会使用utf8的字符编码
在你的程序里 也要适当的对字符进行处理 这要根据的你程序定 不一样的程序修改的形式不一样
像你以前在命令窗口下使用MySQL无法插入中文就是典型的字符不对造成的 你在对数据库操作之前 最好在命令窗口设置一下操作时的编码
例如 setchar utf8;
这样插入的时候就不会插不进去了
varchar是什么数据类 字符串
VARCHAR是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。因此,对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。VARCHAR数据类型所支持的最大长度也是255个字符。
VARCHAR特点:
1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表);
2、使用额外的1-2字节来存储值长度,列长度《=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间;
3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作;
4、5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉;
5、最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了。
varchar(10)什么意思
varchar(10)的意思是存储10个字节。
但是根据varchar特点,当存储长度小于或等于255时,使用额外1字节保存,其它情况使用2字节保存。因此时存储字节为10,所以varchar(10)会占用11字节存储空间。
MySQL4.1以前,VARCHAR数据类型所支持的最大长度255,5.0以上版本支持65535字节长度,utf8编码下最多支持21843个字符(不为空)。
扩展资料:
char和VARCHAR的区别:
1、char的长度是不可变的,而varchar的长度是可变的,
2、定义一个char和varchar,如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。
参考资料来源:百度百科-varchar
“String”和“varchar”的详细区别是什么
String在java里无长度限制,varchar在oracle里是有长度限制的;
String修饰的字符串不能被修改,varchar修饰的字符串能被修改;
String是以大写字母开始的,varchar不是以大写字母开始的;
String是一种固定长度的类型,varchar则是一种可变长度的类型;
java这门语言将String类型的内部数据结构是以一个对象的操作来考虑的,java这门语言将varchar类型的内部数据结构没有以一个对象的操作来考虑的;
String在mysql中为不可变长度的字符串,varchar在mysql中为可变长度的字符串;
相同存储量的话String比varchar更占空间。
VARCHAR(M)是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。
因此,对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。MySQL4.1以前,VARCHAR数据类型所支持的最大长度255,5.0以上版本支持65535字节长度,utf8编码下最多支持21843个字符(不为空)。
数据库varchar 20 可以输入多少个汉字
一个汉字占多少长度与编码有关:
UTF-8:一个汉字 = 3个字节,英文,数字是一个字节
GBK: 一个汉字 = 2个字节,英文,数字是一个字节
varchar(20)一般可以10个汉字
Java语言中char和varchar有何区别
1、最大长度
char最大长度是255字符,varchar最大长度是65535个字节。
2、定长
char是定长的,不足的部分用隐藏空格填充,varchar是不定长的。
3、空间使用
char会浪费空间,varchar会更加节省空间。
4、查找效率
char查找效率会很高,varchar查找效率会更低。
5、尾部空格
char插入时可省略,vaechar插入时不会省略,查找时省略。
Mysql varchar字段长度越大越好吗
MySQL的varchar定义长度到底是字节
varchar存储规则:
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节
Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同。
mysql中char和varchar有什么区别
char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:
char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).
在MySQL中用来判断是否需要进行对据列类型转换的规则
1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.
2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.
3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.
例外:长度小于4个字符的char数据列不会被转换为varchar类型

本文相关文章:
网上购物商城数据库设计(数据库设计:购物系统包括数据流图和数据字典)
2026年7月1日 13:30
sql2000数据库还原(重装SQLServer2000之后,数据库如何恢复)
2026年9月30日 21:00
sql批量新增数据insert(如何用SQL语句将数据批量插入数据库)
2026年9月10日 11:40
Jsp如何实现分页功能(使用MySQL数据库)?看看JSP中怎样实现分页显示
2026年8月20日 22:40
更多文章:
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00





