数据库存储中的数据类型与大小各异。有些地方只存储数字类型,有些只存储文本类型,有些二者而兼之。而很多数据库支持各种专用类型:日期和时间类型,二进制字符类型以及布尔类型。
选择数据类型与数据相匹配是数据库设计中最为重要的部分,因为这种类型将会影响到RDBMS的效率与性能。所以,对RDBMS的数据类型选择应给予足够的重视。
这就是编写本文的主要目的。表A将列举了MySQL支持的绝大部分重要的数据类型,而MySQL是当前最为流行的免费RDBMS。文中还描述了何时与如何使用这些数据类型。这将有助于建立一个数据库的合理设计。
表 A
|
数据类型 |
描述 |
字节 |
推荐使用 |
|
SMALLINT |
整数,从-32000到 +32000范围 |
2 |
存储相对比较小的整数。 比如: 年纪,数量 |
|
INT |
整数,从-2000000000 到 +2000000000 范围 |
4 |
存储中等整数 例如: 距离 |
|
BIGINT |
不能用SMALLINT 或 INT描述的超大整数。 |
8 |
存储超大的整数 例如: 科学/数学数据 |
|
FLOAT |
单精度浮点型数据 |
4 |
存储小数数据 例如:测量,温度 |
|
DOUBLE |
双精度浮点型数据 |
8 |
需要双精度存储的小数数据 例如:科学数据 |
|
DECIMAL |
用户自定义精度的浮点型数据 |
变量;取决于精度与长度 |
以特别高的精度存储小数数据。 例如:货币数额,科学数据 |
|
CHAR |
固定长度的字符串 |
特定字符串长度(高达255字符) |
存储通常包含预定义字符串的变量 例如: 定期航线,国家或邮编 |
|
VARCHAR |
具有最大限制的可变长度的字符串 |
变量; 1 + 实际字符串长度 (高达 255 字符) |
存储不同长度的字符串值(高达一个特定的最大限度). 例如:名字,密码,短文标签 |
|
TEXT |
没有最大长度限制的可变长度的字符串 |
Variable; 2 +聽 actual string length |
存储大型文本数据 例如: 新闻故事,产品描述 |
|
BLOB |
二进制字符串 |
变量;2 + 实际字符串长度 |
存储二进制数据 例如:图片,附件,二进制文档 |
|
DATE |
以 yyyy-mm-dd格式的日期 |
3 |
存储日期 例如:生日,产品满期 |
|
TIME |
以 hh:mm:ss格式的时间 |
3 |
存储时间或时间间隔 例如:报警声,两时间之间的间隔,任务开始/结束时间 |
|
DATETIME |
以yyyy-mm-ddhh:mm:ss格式结合日期和时间 |
8 |
存储包含日期和时间的数据 例如:提醒的人,事件 |
|
TIMESTAMP |
以yyyy-mm-ddhh:mm:ss格式结合日期和时间 |
4 |
记录即时时间 例如:事件提醒器,“最后进入”的时间标记 |
|
YEAR |
以 yyyy格式的年份 |
1 |
存储年份 例如:毕业年,出生年 |
|
ENUM |
一组数据,用户可从中选择其中一个 |
1或 2个字节 |
存储字符属性,只能从中选择之一 例如:布尔量选择,如性别 |
|
SET |
一组数据,用户可从中选择其中0,1或更多。 |
从1到8字节;取决于设置的大小 |
存储字符属性,可从中选择多个字符的联合。 例如:多选项选择,比如业余爱好和兴趣。 |
对于一个完整的列表和详细描述,可以查看MySQL manual。你也可以阅读文章Choosing the Right Type for a Column。
(责任编辑:铭铭 mingming_ky@126.com TEL:(010)68476636)
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |