MySQL 数据库中的字段类型 varchar 和 char 的主要区别是什么?哪 种字段的查找效率要高,为什么?
2016-12-01 14:34
761 查看
区别一,定长和变长
char 表示定长,长度固定,varchar 表示变长,即长度可变
当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入
并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长
度时,则会以不同的方式来处理,如 char(10),表示存储的是 10 个字符,无论你插入的是
多少,都是 10 个,如果少于 10 个,则用空格填满。而 varchar(10),小于 10 个的话,则
插入多少个字符就存多少个。varchar 怎么知道所存储字符串的长度呢?实际上,对于
varchar 字段来说,需要使用一个(如果字符串长度小于 255)或两个字节(长度大于 255)
来存储字符串的长度。
区别之二,存储的容量不同对 char 来说,最多能存放的字符个数
255,和编码无关。
而 varchar 呢,最多能存放 65532 个字符。
char 表示定长,长度固定,varchar 表示变长,即长度可变
当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入
并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长
度时,则会以不同的方式来处理,如 char(10),表示存储的是 10 个字符,无论你插入的是
多少,都是 10 个,如果少于 10 个,则用空格填满。而 varchar(10),小于 10 个的话,则
插入多少个字符就存多少个。varchar 怎么知道所存储字符串的长度呢?实际上,对于
varchar 字段来说,需要使用一个(如果字符串长度小于 255)或两个字节(长度大于 255)
来存储字符串的长度。
区别之二,存储的容量不同对 char 来说,最多能存放的字符个数
255,和编码无关。
而 varchar 呢,最多能存放 65532 个字符。
相关文章推荐
- MySQL数据库中的字段类型varchar和char的主要区别是什么?哪种字段查找效率要高?
- MYSQL中字段char类型和varchar类型的区别
- Mysql字段数据类型:char与varchar的区别
- 答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储 过程和使用T-SQL查询数据有啥不一样;
- 数据库_Mysql_mysql中char,varchar与text类型的区别和选用
- 【MySQL之字段类型(一)】MySQL中char和varchar的区别,以及varchar最大长度是多少?
- 数据库字段类型中char和Varchar区别
- 数据库中char与varchar类型的区别
- char、varchar、bigint、int等的区别及数据库的数据 类型
- [SQL] mysql中char和varchar有什么区别?
- CHAR,VARCHAR,NVARCHAR,数据库字段类型
- MySQL 深入剖析 char varchar 类型,有了VARCHAR,为什么还要有CHAR?
- char、varchar、text、ntext、bigint、int、smallint、tinyint和bit的区别及数据库的数据类型电脑秘籍
- MySQL的char和varchar类型的区别
- char、varchar、text、ntext、bigint、int、smallint、tinyint和bit的区别及数据库的数据类型
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
- MySQL 深入剖析 char varchar 类型,有了VARCHAR,为什么还要有CHAR?
- MySQL 深入剖析 char varchar 类型,有了VARCHAR,为什么还要有CHAR?
- c++ linux 如何把 char* 里面的中文 insert进入mysql(相应的字段为varchar类型)
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本