0

0

MySQL—MySQL数据库支持的数据类型_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:08:16

|

1447人浏览过

|

来源于php中文网

原创

         在数据库中,数据类型对于设计数据库者来说十分重要,记得在一次数据库大会上,某前辈说了这么一句话:“如果是我面试DBA,我第一个问题就是关于tinyint、smallint、mediumint、int、bigint的区别,如果这些不能详细解释,后面不管他表现的多好,我不会考虑”,从这里可以理解掉MySQL的数据类型是多么重要,很多人特别是开发人员往往不会关注这方面,从理解上大家会任务数据库对内存等方面要求很高,这些数据类型并不是很重要,其实他忽略了一个关键的因素,磁盘IO,如果数据类型设置的不合理,会占用很大的磁盘空间,会给数据带来IO上得瓶颈,下面我们就详细的学习下MySQL支持的数据类型

 

1:数值类型

整数类型

字节

最小值

最大值

TINYINT

1

有符号-128

无符号0

有符号127

无符号255

SMLLINT

2

有符号-32768

无符号0

有符号32767

无符号65535

MEDIUMINT

3

有符号-8388608

无符号0

有符号8388607

无符号16777215

INT、INTEGER

4

有符号-2147483748

无符号0

有符号2147483747

无符号4294967295

BIGINT

8

有符号-9223372036854775808

无符号0

有符号9223372036854775807

无符号18446744073709551615

 

浮点数类型

字节

最小值

最大值

FLOAT

4

+_1.17549435-38

+_3.402823466E+38

DOUBLE

8

+_2.225073858507204E-308

+_1.7976931348623157E+308

 

在整数类型着中,按照取值范围和存储方式不同,分为tinyint、smallint、 mediumint、int、bigint这5个类型,如果超出类型范围的操纵,会发生“out of range”错误提示。为了避免此类问题发生,在选择数据类型时要根据应用的实际请客确定其取值范围,最后根据确定的结果慎重选择数据类型

 

所有的整数类型都有一个可选属性UNSIGNED(无符号),如果需要在字段里面保存非负数或者需要较大的上限值时,可以用此选项,他的取值范围是正常值的下限取0,上限取原值的2倍

另外,整数类型还有一个属性,AUTO_IMCREMENT。在需要产生唯一标示符或顺序值时,可利用此属性,这个属性只用于整数类型,AUTO_INCREMENT值一般从1开始,每行加1

 

2:日期时间类型

MySQL中友很多种数据类型可以用于日期和时间的表示,不同的版本可能有所差异,下表列出5.0所支持的日期和时间类型

 

日期和时间类型

字节

最小值

最大值

DATE

4

1000-01-01

9999-12-31

DATETIME

MTTSHOP包包免费商城系统
MTTSHOP包包免费商城系统

一款非常包包、衣服、鞋子类网站,页面干净清洁、一目了然,mttshop打造精致、简单、易用、免费的商城。 系统要求:IIS5.1以后,必须安装.net 3.5 安装步骤: 1、下载完成后,直接解压文件mttshop.rar 2、附加数据库:解压后的可以找一个叫db的文件夹,解压后直接附加就可以,支持SQL 2000、2005、2008 3、配置web.config文件,找到key=&qu

下载

8

1000-01-01 00:00:00

9999-12-31 23:59:59

TIMESTAMP

4

19700101080001

2038年的某个时刻

TIME

3

-838:59:59

838:59:59

YEAR

1

1901

2155

 

上述类型,除了TIMESTAMP外都容易理解,下面我们就TIMESTAMP和DATETIME进行对比

1:TIMESTAMP支持的时间范围小,其取值范围从19700101080001到2038年的某个时刻,而DATETIME是从1000-01-01 00:00:00到9999-12-31 23:59:59,范围更大

2:表中的第一个TIMESTAMP列自动设置为系统时间,如果在一个TIMESTAMP中插入NULL,则该列赋值将自动设置为当前的日期和时间,再插入或者更新一行但不明确给TIMESTAMP列赋值时也会子偶那个设置该列的当前的时间和日期,当插入的值超出取值范围,MySQL认为该值溢出,使用“0000-00-00 00:00:00”进行填补

3:TIMESTAMP的插入和查询都受当地时区的影响,更能反应出实际的日期。而DATETIME则只能反应出插入时当地的时区,其他时区的人查看数据必然会受到影响

4:TIMESTAMP的属性受MySQL版本和服务器SQLMode的影响很大

 

 

3:字符串类型

MySQL提供了很多种对字符数据的存储类型,下表就详细进行了对比

字符串类型

字节

描述及存储需求

CHAR(M)

M

M为0~255之间的整数

VARCHAR(M)

 

M为0~65535之间的整数,值的长度+1个字节

TINYBLOB

 

允许长度0~255字节,值的长度+1个字节

BLOB

 

允许长度0~65535字节,值的长度+2个字节

MEDIUMBLOB

 

允许长度0~167772150,值的长度+3个字节

LONGBLOB

 

允许长度0~4294967395,值的长度+4个字节

TINYTEXT

 

允许长度0~255,值的长度+2个字节

TEXT

 

允许长度0~65535字节,值的长度+2个字节

MEDIUMTEXT

 

允许长度0~167772150,值的长度+3个字节

LONGTEXT

 

允许长度0~4294967395,值的长度+4个字节

VARBINARY( M)

 

允许长度0~M个字节的变长字符串,值的长度+1个字节

BINARY(M)

M

允许长度0~M个字节的变长字符串

 

 CHAR和VARCHAR类型
CHAR和VARCHAR很类似,都用来保存MySQL中较短的字符串,二者的主要区别在于存储方式的不同,CHAR列的长度固定为创建表时的长度,长度可以为从0~255任何值。而VARCHAR列中的值为可变长字符串,长度可以为指定的0~255或者65535之间的值。在检索的时候,CHAR列删除了尾部的空格,而VARCHAR保留了这些空格。会造成索引存储大小上的变化,所以在设置这个类型的时候一定要慎重,充分分析现有业务
BINARY和VARBINARY类型
BINARY和VARBINARY类似于CHAR和VARCHAR,不同的是它们包含二进制串而不包含非二进制字符串。
TEXT和BOLB类型
这2种主要用于存储一些大字段类似于图片等,慎用……

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号