解析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

(责任编辑:铭铭 [email protected] 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结构     ...
一周排行
  • Host: CentOS release 6.4 (Final) Guest: CentOS release 6.6 (Final) 全程以root身份操作   1. host上创建桥br0 参考<KVM Vi ...
  • RAC-DG搭建步骤及一些应用分析   今天的实验内容是RAC-DG的搭建及一些测试,并就在实验中遇到的一些错误进行分析并解决   环境:11.2.0.3+oel5.7   rac1:zlm1 192.168.1.1 ...
  • 今天终于搞明白怎么安装Yii2了.对于我这种小白来说真是费尽周折.下面来介绍下如何安装Composer和如何使用Composer安装Yii2. 最近在学习PHP,着手找一个能快速上手的框架来学习.一开始看兄弟连视频时 ...
  • 飞象网讯(吉利/文)7月2日消息,据报道,苹果iPhone4上周四在美国.英国.法国.德国和日本同步上市,全球反应热烈.而作为国内唯一引进过iPhone手机的运营商,中国联通却在为iPhone3GS缺货而焦头烂额,目 ...
  • Upload.aspx:   <%@ LANGUAGE='JAVASCRIPT' %> <!-- #include file = "../adojvs.inc"--> &l ...
  • 有时候为了找到redmine或者plugin的错误,需要得到development.log文件.按照下面的步骤转换:在config/environment.rb文件第一行,修改为ENV['RAILS_ENV'] || ...
  • 2012年2月6日,罗技公司子公司LifeSize今天宣布推出LifeSize UVC Platform.这是整个行业针对高清视频会议基础架构的第一款整合虚拟化软件解决方案.UVC(Universal Video C ...
  • 应用启动正常,但无法进入登录页面: The webpage cannot be found HTTP 404 ... No known changes had been made and the Middle-Tie ...
  • 如何在ubuntu下面直接查找想要安装的软件?比如我想安装tomcat,但是我又不知道ubuntu里面有哪些版本,也不知道都需要装什么,但是我能确认我装的是tomcat,那么我就可以用搜索命令:例如:apt-cach ...
  • public class BitmapCache { static private BitmapCache cache; / 用于Chche内容的存储 */ private Hashtable<Integer, ...