MySQL数据类型总结

导读:本篇文章讲解 MySQL数据类型总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

mysql中主要有三大类数据类型,分别是
数值类型:tinyint、smallint、mediumint、int、bigint、float、double、decimal、bit
**日期时间类型:**date、datetime、timestamp、time、year
**字符串类型:**char、varchar、tinyblob、blob、mediumblob、longblob、tinytext、text、mediumtext、longtext、varbinary、binary
下面分别介绍MySQL中各种数据类型

数值类型

数值类型又分为整数类型浮点数类型定点数类型位类型

整数类型

整数类型包括以下几种

数据类型 字节 无符号范围 有符号范围
tinyint 1 0~255 -128~127
smallint 2 0~65535 -32768~32767
mediumint 3 0~1677215 -8388608~8388607
int 4 0~4294967295 -2147483648~2147483647
bigint 8 0~18446744073709551615 -9223372036854775808~9223372036854775807

int(n)表示指定的宽度,当数值宽度小于n位时在数字前面填满宽度,一般配合zerofill使用,如果设置了宽度限制,插入的数字大于宽度限制的值,不会对插入的数据有任何影响,还是按照类型的实际精度进行保存,默认tinyint(4)、smallint(6)、mediumint(9)、int(11),在实际工作中可以不指定宽度。

浮点数类型

浮点数类型包括以下2种

数据类型 字节 无符号范围 有符号范围
float 4 0,(1.175494351E-38,3.402823466E+38) (-3.402823466E+38,-1.175494351E-38),0,(1.175494351E-38,3.402823466E+38)
double 8 0,(1.7976931348623157E+308,2.2250738585072014E-308) (-1.7976931348623157E+308,-2.2250738585072014E-308),0,(2.2250738585072014E-308,1.7976931348623157E+308)

定点数类型

定点数类型主要有decimal

数据类型 字节 描述
decimal(m,d) m+2 最大取值范围与double相同,给定的有效取值范围由m和d决定

对于小数的表示,MySQL中有两种方式:浮点数和定点数,浮点数包括float(单精度)和double(双精度),定点数只有decimal。浮点数如果不写精度和标度,则会按照实际精度值显示,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;定点数如果不写精度和标度,则按照默认值decimal(10,0)来进行操作,并且如果数据超越了精度和标度值,系统则会报错。

位类型

数据类型 字节 最小值 最大值
bit(m) 1~8 bit(1) bit(64)

bit(m)用于存放多位二进制数,默认1位,使用bin()或hex()函数读取

日期时间类型

常用的日期时间类型如下表

日期时间类型 字节 最小值 最大值
date 4 1000-01-01 9999-12-31
datetime 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

年月日,常用date表示
年月日时分秒,常用datetime或timestamp表示
时分秒,常用time表示
年,常用year表示
date、time、datetime默认值可以使用now()函数;timestamp默认值可以使用current_timestamp属性;datetime和timestamp都可以表示年月日时分秒,两者的区别是
timestamp支持的时间范围较小,datetime表示的范围更大
timestamp在mysql5.6.6版本之后增加了控制参数explicit_defaults_for_timestamp,如果设置为no,则timestamp需要显示指定默认值和on update current_timestamp属性;如果设置为off,则会自动设置默认值为current_timestamp和on update current_timestamp属性,并且自动设置为not null。mysql8.0.2版本后默认为on
timestamp的插入和查询都受当地时区的影响,更能反映出实际的日期。datetime只能反映插入时当地的时区

字符串类型

常用的字符串类型如下表所示:

字符串类型 描述
char(m) m为0~255之间的整数
varchar(m) m为0~65535之间的整数,值的长度+1个字节
tinyblob 0~255字节,值的长度+1个字节
blob 0~65535字节,值的长度+2个字节
mediumblob 0~167772150字节,值的长度+3个字节
longblob 0~4294967295字节,值的长度+4个字节
tinytext 0~255字节,值的长度+2个字节
text 0~65535字节,值的长度+3个字节
mediumtext 0~167772150字节,值的长度+3个字节
longtext 0~4294967295字节,值的长度+4个字节
varbinary(m) 0~m个字节的变长字节字符串,值的长度+1个字节
binary(m) 0~m个字节的定长字节字符串

MySQL中数据类型对应Java中数据类型

数据库类型 Java类型
TINYINT java.lang.Byte
SMALLINT java.lang.Short
INTEGER java.lang.Integer
BIGINT java.lang.Long
FLOAT java.lang.Float
DOUBLE java.lang.Double
BIT java.lang.Boolean
CHAR java.lang.String
VARCHAR java.lang.String
DATE java.util.Date/java.sql.Date/java.time.LocalDate
TIME java.sql.Time/java.time.LocalTime
DATETIME java.util.Date/java.time.LocalDateTime
TIMESTAMP java.sql.Timestamp/java.time.LocalDateTime
CLOB java.sql.Clob
BLOB java.sql.Blob

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/76822.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!