免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 823 | 回复: 0
打印 上一主题 下一主题

mysql学习笔记(1)---数据类型 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 01:46 |只看该作者 |倒序浏览
一、数据类型
字符串类型:
ENUM(‘value1’,'value2',....)---枚举,一个仅有一个值的字符串对象。
SET(‘value1’,'value2',....)---一个集合。能有一个或多个值的字符串对象。一个set最多能有64个成员。
CHAR()---定长字符串。可以提高数据库的数据处理效率。
VARCHAR()---变长字符串。只存储所需字符,不会填补。
*在同一个表中不能混用CHAR和VARCHAR这两种类型,只允许一种出现。如果同时存在,mysql会进行转换,规则是:
1.长度小于4的VARCHAR被转换为CHAR;
2.如果一个表中包含任何变长的列(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) |
------- ------------
    BLOB和TEXT类型的唯一区别是:对BLOB值的排序和比较以大小写敏感方式执行,而对TEXT值是大小写不敏感的。换句话说,一个TEXT是一个大小写不敏感的BLOB。
    由于,BLOB和TEXT类型可以存储非常多的数据,因此使用BLOB和TEXT类型需要注意的是:
BLOB 或 TEXT 列在 MySQL 3.23 以上版本中可以进行索引,虽然在索引时必须指定一个用于索引的约束尺寸,以免建立出很大的索引项从而抵消索引所带来的好处。
由于 BLOB 和 TEXT 值的大小变化很大,如果进行的删除和更新很多,则存储它们的表出现高碎片率会很高。应该定期地运行 OPTIMIZE TABLE 减少碎片率以保持良好的性能。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP