专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > MySQL培训 > MySQL课程 > MySQL基础教程:CHAR和VARCHAR类型

MySQL基础教程:CHAR和VARCHAR类型

文章来源: 更新时间:2016/7/15 17:04:06

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

MySQL基础教程:CHAR和VARCHAR类型,CHAR和VARCHAR类型是类似的,但是在他们被存储和检索的方式不同。 其具体的异同为:

当给定一个CHAR列的值时,其长度将被被修正为在你创建表时所声明的长度。长度可以是1和255之间的任何值。(在MySQL 3.23中,CHAR长度可以是0~255。) 当CHAR值被存储时,他们被用空格在右边填补到指定的长度。当CHAR值被检索时,拖后的空格被删去。

在VARCHAR列中的值是变长字符串。你可以声明一个VARCHAR列是在1和255之间的任何长度,就像对CHAR列。然而,与CHAR类型相反,VARCHAR值只存储所需的字符,外加一个字节记录长度,值不被填补;相反,当值被存储时,拖后的空格被删去。(这个空格删除不同于ANSI SQL规范。)

如果你把一个超过列最大长度的值赋给一个CHAR或VARCHAR列,值被截断以适合串类型。

例如,我们用下表来说明存储一系列不同的串值到CHAR(4)和VARCHAR(4)列的结果:

表1-7 CHAR类型和VARCHAR类型的对比

CHAR(4)

存储需求

VARCHAR(4)

存储需求

''

'    '

4字节

''

1字节

'ab'

'ab  '

4字节

'ab'

3字节

'abcd'

'abcd'

4字节

'abcd'

    5字节

'abcdefgh'

'abcd'

4字节

'abcd'

    5字节

虽然实际存储的值并不一样,但是查询时,这两种类型是一致的,因为CHAR(4)类型多于的空格将被忽略。

需要注意的是,除了少数情况外,在同一个表中不能混用 CHAR 和 VARCHAR这两种类型,你只能使用其中之一。如果你创建表时,包括这两种类型,在一般情况下,MySQL 会将列从一种类型转换为另一种类型。这样做的原因如下:

行定长的表比行可变长的表容易处理,效率更高。

只有所有的类型是定长时,行才是定长的,才能提高性能。

有时为了节省存储空间,使用了变长类型,在这种情况下最好也将定长列转换为可变长列。

这表示,如果表中有 VARCHAR 列,那么表中不可能同时有 CHAR 列;MySQL 会自动地将它们转换为 VARCHAR 列。

转换的规则:

长度小于4的VARCHAR被改变为CHAR。

如果在一个表中的任何列有可变长度,结果是整个行是变长的。因此, 如果一张表包含任何变长的列(VARCHAR、TEXT或BLOB),所有大于3个字符的CHAR列被改变为VARCHAR列。

例如,我们创建下面一个表:

CREATE TABLE ch_type

(

ch1 char(3),

ch2 varchar(3),

ch3 char(4),

ch4 varchar(4)

)

然后查看表的结构:

DESCRIBE ch_type

在MySQL3.23上结果为:

+-------+---------------+
| Field | Type       |
+-------+---------------+
| ch1   | char(3)     |
| ch2   | char(3)     |
| ch3   | varchar(4)  |
| ch4   | varchar(4)  |
+-------+---------------+
本文地址:http://www.cuug.com.cn/mysql/kecheng/12482309620.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区北清路164号28-38号院
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1