MySQL字符串中CHAR和VARCHAR的区分

数据库 MySQL
MySQL字符串的种类很多,提到字符类型,我们都会想起CHAR和VARCHAR,下文对CHAR和VARCHAR的区别进行了详述,供您参考。

MySQL字符串我们都比较熟悉了,下面就为您分析MySQL字符串中CHAR和VARCHAR的区别使用,希望可以对您学习MySQL字符串方面有所帮助。

MySQL数据库的字符(串)类不要以为字符类型就是CHAR,CHAR和VARCHAR的区别在于CHAR是固定长度,只要你定义一个字段是CHAR(10),那么不论你存储的数据是否达到了10个字节,它都要占去10个字节的空间;而VARCHAR则是可变长度的,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为VARCHAR(10)是最合算的,VARCHAR类型的占用空间是它的值的实际长度+1。

为什么要+1呢?这一个字节用于保存实际使用了多大的长度。从这个+1中也应该看到,如果一个字段,它的可能值最长是10个字符,而多数情况下也就是用到了10个字符时,用VARCHAR就不合算了:因为在多数情况下,实际占用空间是11个字节,比用CHAR(10)还多占用一个字节。

举个例子,就是一个存储股票名称和代码的表,股票名称绝大部分是四个字的,即8个字节;股票代码,上海的是六位数字,深圳的是四位数字。这些都是固定长度的,股票名称当然要用CHAR(8);股票代码虽然是不固定长度,但如果使用VARCHAR(6),一个深圳的股票代码实际占用空间是5个字节,而一个上海的股票代码要占用7个字节!考虑到上海的股票数目比深圳的多,那么用VARCHAR(6)就不如CHAR(6)合算了。

虽然一个CHAR或VARCHAR的最大长度可以到255,我认为大于20的CHAR是几乎用不到的――很少有大于20个字节长度的固定长度的东东吧?不是固定长度的就用VARCHAR。大于100的VARCHAR也是几乎用不到的――比这更大的用TEXT就好了。

TINYTEXT,最大长度为255,占用空间也是实际长度+1;TEXT,最大长度65535,占用空间是实际长度+2;MEDIUMTEXT,最大长度16777215,占用空间是实际长度+3;LONGTEXT,最大长度4294967295,占用空间是实际长度+4。为什么+1、+2、+3、+4?你要是还不知道就该打PP了。这些可以用在论坛啊、新闻啊,什么的,用来保存文章的正文。根据实际情况的不同,选择从小到大的不同类型。

 

 

【编辑推荐】

MySQL截取字符串函数方法

MySQL字符串各列类型的区别

MySQL批量替换指定字段字符串

MySQL字符串连接函数用法简介

mysql查询大小写问题

责任编辑:段燃 来源: 互联网
相关推荐

2011-04-27 09:25:13

MySQL字符型数据

2009-02-24 15:39:27

字符串比较函数函数

2010-11-26 11:08:20

MySQL字符串

2010-11-26 09:51:54

MySQL字符串

2009-02-24 14:27:55

2011-09-01 14:22:06

OracleCharVarChar

2010-11-22 12:04:09

MySQL字段

2010-05-25 15:58:45

MySQL连接字符串

2021-03-08 08:23:24

Java字符串截取

2023-01-11 16:49:13

MySQL数据库

2010-07-05 11:20:53

2010-11-26 10:43:48

MySQL分割字符串

2010-10-12 11:13:51

2010-06-04 14:59:06

MySQL数据库

2010-06-28 15:18:51

SQL Server

2010-05-26 15:24:09

MySQL字符串

2023-10-26 12:01:30

Golang字符串

2021-07-30 06:22:37

C++字符型字符串

2023-03-06 23:05:32

MySQL字符串函数

2010-05-21 17:22:22

点赞
收藏

51CTO技术栈公众号