Mysql常用数据类型归纳总结1

一直在用Mysql数据库,Mysql的数据类型也最常打交道的。但关于Mysql的一些常用数据类型了解程度仅限于一知半解,仅仅能满足满足于平时一些最简单的操作。而Mysql常用数据类型的定义以及规范理解的并不是特别的透彻,自己对于这些东西的理解有许多也是出于想当然,经不起推敲和较真。故有此文,帮助自己总结归纳,并加深理解。

整数型:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT

小数型:FLOAT, DOUBLE, DOUBLE, DECIMAL, REAL

字符型:CHAR, VARCHAR

日期时间型: DATE, DATETIME, TIME, TIMESTAMP, YEAR

备注型:TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT

当然,划分的标准不同也会有不同的结果。以上只列举了Mysql中一些常见并且经常用到的数据类型。下面将逐一对以上各种类型进行总结学习。

整数型

通过上图看以看出TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT数据类型各自所占的存储空间和支持的取值范围。当然,支持的取值范围是根据各自的存储空间大小不同而不同的。

先思考一个问题,同样为整数型数据类型,为什么还要区分出TINYINT, SMALLINT等等呢?一般来讲,我们根据存储内容的特点来选取不同的数据类型,既使数据类型的取值范围能够涵盖所有情况的存储内容,又不至于过大的存储空间浪费。即最佳最优的存储效果。举例来讲,我们存储一个人的年龄,要选择哪种整型数据类型比较合适呢?根据各整型特点,无符号的TINYINT类型最为恰当。0到255的取值范围足够囊括一个人年龄的可能取值,并且不会造成过多存储空间浪费。如果选择SMALLINT乃至BIGINT,当然可以满足存储需求,但对于人的年龄而言它们的取值范围实在是太大了,一种大材小用的即视感。由此可见,TINYINT, SMALLINT等不同存储空间各整型数据类型存在的意义。

知道这个道理之后,我们在创建数据库中表的时候,就要多思考思考,到底哪种数据类型与我们存储数据是最合适的。不要想当然的去给分配一种数据类型,可能你的程序跑起来没有任何问题。但很多情况是,你的存储内容可能真的不需要那么大的取值范围,你在默默的浪费着你的存储空间。这是不对的,浪费就是犯罪啊。作为一个高逼格的软件开发者,我们不应该让这种事情发生。=_=。重视起来,给你的存储内容选最合适的数据类型。

下面来说另一个事。MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。在INT(M) 中, M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关.如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性.

关于这一点,自己之前理解一直比较模糊,觉得M的值影响到数据存储的大小。 其实如上所说,它们之间是没有关系的。并且只有在该列的属性选择为UNSIGNED ZEROFILL,并且存储内容的位数达不到显示宽度的值时,才会用0填充存储内容的值,以达到指定的宽度。但这不会影响到该列的存储范围大小,INT类型无符号的范围始终是0~4294967295。举例说明,对于声明为INT(4) ZEROFILL的列,值4检索为0004。请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度。

如下:

插入3条不同长度的数据。可以看出,当插入数据长度达不到设定宽度(4)时,Mysql会用0将数据位数补全为设定宽度(4)。

插入数据的最大值为4294967695,即无符号int类型的最大值。当插入数据不在无符号INT类型取值范围(0~4294967295)之内时,Mysql报错。但却执行了插入操作,存储的是0或4294967295。

关于Mysql的整数型,就总结这些。以后再补充。下一节小数型。

参考资料:http://www.cnblogs.com/huligong1234/archive/2012/06/11/2545682.html

http://www.cnblogs.com/doit8791/archive/2012/05/11/2495319.html

时间: 2024-07-30 22:45:04

Mysql常用数据类型归纳总结1的相关文章

mysql常用数据类型

本文对常用的mysql数据类型和java数据类型进行对比. 类型对照简表: java类型 mysql类型 默认值 备注 mybatis的JdbcType String varchar null 一般的字符串都够用 jdbcType="VARCHAR" Integer  int null 4字节 jdbcType="INTEGER" Long  bigint null 8字节 jdbcType="BIGINT" BigDecimal  decima

MySQL常用数据类型 length 专题

MySQL-data_type数据类型 1.查看数据类型 mysql> help data type    //通过help对数据进行查看,以及使用的方法 2.MySQL常见的数据类型 整数int.定点小数dec.浮点数float.字符串varchar.时间-时区.布尔bool.位 前言======================================== 在MySQL数据库中,进行数据存储时,难免会出现数据类型转换,其中就包括:隐式类型转换.显示类型转换 1.隐式类型转换:有害.无害

Mysql 常用数据类型

double:浮点型,double(5,2) 表示最多5位,必须包含两位小数,最大值是 999.99 char:定长字符串类型,char(10) 表示必须放 10 的字节,没有就用空格补充 varchar:变长字符串类型,varchar(10),最多10个字节,如果不足10个,就自动改变长度 text:字符串类型,用于放比较多的文本 blob:二进制数据(声音.图片.视屏等),一般不会直接放入数据库,放很小的图片 date:日期类型,格式为:yyyy-MM-dd time:时间类型,格式为:hh

百万年薪python之路 -- MySQL数据库之 常用数据类型

MySQL常用数据类型 一. 常用数据类型概览 # 1. 数字: 整型: tinyint int bigint 小数: float: 在位数比较短的情况下不精确 double: 在位数比较长的情况下不精确 0.000001230123123123 存成: 0.000001230000 decimal: (如果用小数,则推荐使用decimal) 精准 内部原理是以字符串形式去存 # 2. 字符串: char(10): 简单粗暴,浪费空间,存取速度快. root存成root000000 varcha

MySQL基础数据类型

一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data-types.html http://dev.mysql.com/doc/refman/5.7/en/data-type-overview.html mysql常用数据类型概览: #1. 数字: 整型:tinyinit int bigint 小数: float :在位数比较短的情况下不精准 doub

【MySQL】数据类型之数字相关

" 目录 #. 数值类型 1. 数值范围验证 /. 有符号 /. 无符号 2. int类型显示长度验证 #. 浮点型 1. 验证 /. 建表 /. 精度 #. 日期类型 1. 验证 /. year /. date.time.datatime /. timetamp /. datetime 与 timestamp 区别 /. 注意事项 详见链接 MySQL常用数据类型概括: 1. 数字:整型:tinyint int bigint小数: float: 在位数比较短的情况下不精确 double:在位数

MySQL常用的数据类型及函数_20160920

1.常用数据类型 针对创建数据表时候 需要指定字段的数据类型,我整理的是工作常用的几种  可以参考看下数据类型 http://www.w3school.com.cn/sql/sql_datatypes.asp 2.函数处理 2.1 对文本(字符串)的处理 工作中我们经常需要用到对字符串的处理,取字段的某一部分/拼接/替换/字段长度等等 MySQL中内置许多函数支持这些操作. 下面sql代码是工作中用到,整理出来,可以直接在sqlyog中测试 SELECT INSTR("abc",&qu

MySql基础知识、存储引擎与常用数据类型

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文将主要讲解了数据库的一些基础知识,介绍了MySql的存储引擎,最后讲了MySql常用的数据类型 1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结:数据永远是数据库的核心. 1.2.关系数据库管理系统 通过"数据库管理系统",数据

Mysql的常用数据类型以及用途总结

数据类型是定义列中可以存储什么数据以及该数据实际怎么存储的基本规则.在实际编程中,选择列的基本类型的时候,基本原则就是选择可以满足数据的最小类型. ① 字符串数据类型:分别为定长串和不定长串. 一. 定长串结束长度固定的字符,其长度是创建表是指定的,不允许多于指定的字符数据,它们分配的存储空间与指定的一样多,CHAR属于定长串类型. 二. 变长串存储长度可变的文本,有些变长数据类型具有最大的定长,而有些则是完全变长的,不管哪种只有指定的数据得到保存(不会添加额外的空格保存),TEXT属于变长串类