解析MySQL数据类型 避免数据库设计出现混乱

数据库存储中的数据类型与大小各异。有些地方只存储数字类型,有些只存储文本类型,有些二者而兼之。而很多数据库支持各种专用类型:日期和时间类型,二进制字符类型以及布尔类型。

选择数据类型与数据相匹配是数据库设计中最为重要的部分,因为这种类型将会影响到RDBMS的效率与性能。所以,对RDBMS的数据类型选择应给予足够的重视。

这就是编写本文的主要目的。表A将列举了MySQL支持的绝大部分重要的数据类型,而MySQL是当前最为流行的免费RDBMS。文中还描述了何时与如何使用这些数据类型。这将有助于建立一个数据库的合理设计。

表 A

数据类型

描述

字节

推荐使用

SMALLINT

整数,从-32到 +32范围

2

存储相对比较小的整数。

比如: 年纪,数量

INT

整数,从-2 到 +2 范围

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)


  • 解析MySQL数据类型 避免数据库设计出现混乱
    给力
    (0票)
  • 解析MySQL数据类型 避免数据库设计出现混乱
    动心
    (0票)
  • 解析MySQL数据类型 避免数据库设计出现混乱
    废话
    (0票)
  • 解析MySQL数据类型 避免数据库设计出现混乱
    专业
    (0票)
  • 解析MySQL数据类型 避免数据库设计出现混乱
    标题党
    (0票)
  • 解析MySQL数据类型 避免数据库设计出现混乱
    路过
    (0票)
getcountscom(35673,11); getcountscom(35673,12); getcountscom(35673,13); getcountscom(35673,14); getcountscom(35673,15); getcountscom(35673,16);

更多相关文章
  • 摘要:OpenStack云技术眼下变得非常流行,但贵公司该如何使用它呢?是将OpenStack作为一款发行版部署在贵公司的服务器或数据中心?还是将它用作服务提供商提供的一项服务?   OpenStack是一项旨在应对亚马逊网络服务及其他公有云的开源私有云技术,它正在迅速发展.你不必相信我的话,只要问 ...
  • 原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com   在分布式系统中,数据序列化传递的情形非常常见,主流的三种,JSON.XML.Protobuf.   XML现在已经很少使用,除非要和遗留系统交互.   JSON用在前端交互和跨组织的API的交互场合比较多.   ...
  • 18日,安全厂商卡巴斯基实验室发布的2014年度网络威胁统计数据显示,今年卡巴斯基实验室反病毒产品共拦截了62亿次针对用户计算机和移动设备的恶意攻击,该数据较2013年增加了逾10亿次.而其中,移动威胁增长明显,仅手机银行木马就比去年增长了9倍.   2014年被安全专家称为移动金融威胁元年,越来越 ...
  • 背景 近期项目前端决定使用less,简单介绍一下,详细信息有兴趣查看官方文档(http://www.lesscss.net/article/home.html)  LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量.继承.运算 ...
  • Mercury 是一款优秀的开源Android APP应用安全评估框架,它最赞的功能是可以动态的与android设备中的应用进行IPC(组件通信)交互. 一.安装与启动 1. 安装  (1)windows安装 第一步:下载Mercury 2.2.2 (Windows Installer)   第二步 ...
  • 执行环境(Execution Context)   所有的javascript代码都是在一个执行环境中被执行的.它只是一种机制,用来完成运行时作用域.生存期等方面的处理.   代码分为三种类型:   Global Code  Eval Code Function Code  这是一个EC结构     ...
一周排行
  • CSS 层叠样式表可以对页面进行更精细的样式设置,当然有些人就像自定义文字的字体,但是默认font-family 内置字体样式也就只有几种. 如何才能把第三方字体引入呢? 下面介绍一个CSS 规则 @font-fac ...
  • 英本网的免费视频,适合入门 01.Linux内核学习入门          http://v.youku.com/v_show/id_XNjc1NzEzODAw.html 02.Linux内核介绍           ...
  • Filter是从Servlet2.3规范开始新增的功能,并在Servlet2.4规范中得到增强,接下来让我们一起来看看Filter的真实面目吧. 一. 概念     过滤器就是在源数据和目的数据之间起过滤作用的中间组 ...
  • WP8.1支持了新的开发平台(语言,SDK) 除了之前的C#/XAML和C++/Direct3D外,增加了好几个新的开发方式,以照顾不同技术背景的开发人员. 现在具体支持的情况如下: 支持C#/XAML 基于Wind ...
  • 今天小编为大家带来了逆战黄金桃木剑怎么得 黄金桃木剑获得方法介绍,感兴趣的朋友们可以跟着小编去下文了解一下哦 今天小编为大家带来了逆战黄金桃木剑怎么得 黄金桃木剑获得方法介绍,感兴趣的朋友们可以跟着小编去下文了解一下 ...
  • 我住在海淀区,这里满大街跑的是月薪上万的小程序员儿,还有痛骂计算机专业无美女的项目经理,他们大脑袋.厚眼镜.因熬夜而布满血丝的眼睛,因不见 阳光而 酷 似吸血鬼的脸,穿一个星期不洗的T-SHIRT,很有很有味道的,他 ...
  • 按照定义写的树的存储算法.以及简单的遍历方法.里边用到了广义表的一些算法.建议想要弄懂的去看一下广义表的字符串处理 /* Author : Moyiii * Mail: lc09@vip.qq.com * 树-孩子表 ...
  • 虚拟化的热潮正席卷IT,中小企业当然也不能错过这一降低成本.提高效率的技术.然而,服务器虚拟化究竟是否适合中小企业,怎样部署才能确保成功?希望通过以下五条经验,能帮助中小企业IT经理解开疑难. 评估当前服务器环境 任 ...
  • 'XX' AnimationEvent 'NewEvent' has no receiver! Are you missing a component? 解决方法:找到模型Animations标签,拉到最底下,有个E ...
  • 转载自:http://blog.csdn.net/lg2lh/article/details/8042008 PS: 已经对原文的笔误做修改. PCI的基本协议这里就不介绍了,因为一般的芯片协议都是集成好的,我只需要 ...