极客小将

您现在的位置是:首页 » python编程资讯

资讯内容

MySQL中char和varchar的区别是什么

极客小将2020-12-21-
简介MySQL中char和varchar的区别是什么区别一、定长和变长的区别1、char表示定长,长度固定;2、varchar表示变长,即长度可变。当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长

K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

MySQL中char和varchar的区别是什么K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

区别一、定长和变长的区别K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

1、char 表示定长,长度固定;K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

2、varchar表示变长,即长度可变。K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长度时,则会以不同的方式来处理,如char(10),表示存储的是10个字符,无论你插入的是多少,都是10个,如果少于10个,则用空格填满。而varchar(10),小于10个的话,则插入多少个字符就存多少个。K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

varchar怎么知道所存储字符串的长度呢?实际上,对于varchar字段来说,需要使用一个(如果字符串长度小于255)或两个字节(长度大于255)来存储字符串的长度。但是因为他需要有一个prefix来表示他具体bytes数是多少(因为varchar是变长的,没有这个长度值他不知道如何读取数据)。K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

推荐:MySQL教程K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

区别二、存储的容量不同K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

1、对 char 来说,**多能存放的字符个数 255,和编码无关。K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

2、而 varchar 呢,**多能存放 65532 个字符。VARCHAR 的**大有效长度由**大行大小和使用的字符集确定。整体**大长度是 65,532字节K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

在MySQL中用来判断是否需要进行对据列类型转换的规则K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.例外:长度小于4个字符的char数据列不会被转换varchar类型K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

更多技术请关注python视频教程。K1o少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

网友点评

共有5条评论来说两句吧...

在线客服