mysql数据类型介绍

1、整数类型

MySQL主要提供的整数类型有TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT

类型说明存储大小取值范围
TINYINT很小的整数1Byte有符号:-128~127
无符号:0~255
SMALLINT小的整数2Byte有符号:32768~32767
无符号:0~65535
MEDIUMINT中等大小的整数3Byte有符号:-8388608~8388607
无符号:0~16777215
INT(INTEGER)普通大小的整数4Byte有符号:-2147483648~2147483647
无符号:0~4294967295
BIGINT较大的整数8Byte无符号:0~18446744073709551615

注意:int(5),注意后面的数字5,它表示的是该数据类型指定的显示宽度,即能够显示的数值中数字的个数,显示宽度和数据类型的取值范围是无关的
在这里插入图片描述

2、浮点数类型

MySQL中使用浮点数和定点数来表示小数
浮点数类型和定点数类型都可以用(M,N)来表示。其中,M称为精度,表示总共的位数;N称为标度,表示小数的位数
不论是定点数还是浮点数类型,如果用户指定的精度超出精度范围,则会四舍五入,DECIMAL若不指定精度则默认为(10,0)

单精度浮点类型双精度浮点类型定点数类型
FLOAT(M,N)DOUBLE (M,N)DECIMAL(M,N)

3、日期时间类型

类型格式取值范围存储大小
YEARYYYY1901~21551Byte
TIMEHH:MM:SS-838:59:59~838:59:593Byte
DATEYYYY-MM-DD1000-01-01~9999-12-33Byte
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00~9999-12-31 23:59:598Byte
TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC4Byte

YEAR:
① 输入格式为‘YYYY’或者YYYY,例如输入‘2010’或2010,插入到数据库的值均为2010
② 以2位字符串格式表示的YEAR,范围为‘00’到‘99’。‘00’~‘69’和‘70’~‘99’范围的值分别被转换为2000~2069和1970~1999范围的YEAR值。‘0’与‘00’的作用相同。插入超过取值范围的值将被转换为2000
③ 以2位数字表示的YEAR,范围为1~99。1~69和70~99范围的值分别被转换为2001~2069和1970~1999范围的YEAR值。注意:在这里0值将被转换为0000,而不是2000

TIME:
① ‘D HH:MM:SS’格式的字符串。可以使用下面任何一种“非严格”的语法:‘HH:MM:SS’、‘HH:MM’、‘D HH:MM’、‘D HH’或‘SS’。这里的D表示日,可以取0~34之间的值。在插入数据库时,D被转换为小时保存,格式为“D*24+HH”
② ‘HHMMSS’格式的、没有间隔符的字符串或者HHMMSS格式的数值,假定是有意义的时间。例如:‘101112’被理解为‘10:11:12’,但‘109712’是不合法的(它有一个没有意义的分钟部分),存储时将变为00:00:00

DATE:
① 以‘YYYY-MM-DD’或者‘YYYYMMDD’字符串格式表示的日期,取值范围为‘1000-01-01’~‘9999-12-3’。例如,输入‘2012-12-31’或者‘20121231’,插入数据库的日期都为2012-12-31
② 以‘YY-MM-DD’或者‘YYMMDD’字符串格式表示的日期,在这里YY表示两位的年值。包含两位年值的日期会令人模糊,因为不知道世纪。MySQL使用以下规则解释两位年值:‘00~69’范围的年值转换为‘2000~2069’;‘70~99’范围的年值转换为‘1970~1999’。例如,输入‘12-12-31’,插入数据库的日期为2012-12-31;输入‘981231’,插入数据的日期为1998-12-31
③ 以YY-MM-DD或者YYMMDD数字格式表示的日期,与前面相似,00~69范围的年值转换为2000~2069,70~99范围的年值转换为1970~1999。例如,输入12-12-31插入数据库的日期为2012-12-31;输入981231,插入数据的日期为1998-12-31
④ 使用CURRENT_DATE或者NOW(),插入当前系统日期

DATETIME:
① 以‘YYYY-MM-DD HH:MM:SS’或者‘YYYYMMDDHHMMSS’字符串格式表示的值,取值范围为‘1000-01-01 00:00:00’~‘9999-12-3 23:59:59’。例如,输入‘2012-12-31 05: 05:05’或者‘20121231050505’,插入数据库的DATETIME值都为2012-12-31 05: 05: 05。
② 以‘YY-MM-DD HH:MM:SS’或者‘YYMMDDHHMMSS’字符串格式表示的日期,在这里YY表示两位的年值。与前面相同,‘00~69’范围的年值转换为‘2000~2069’,‘70~99’范围的年值转换为‘1970~1999’。例如,输入‘12-12-31 05: 05: 05’,插入数据库的DATETIME为2012-12-31 05: 05: 05;输入‘980505050505’,插入数据库的DATETIME为1998-05-05 05:05: 05。
③ 以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示的日期和时间。例如,输入20121231050505,插入数据库的DATETIME为2012-12-31 05:05:05;输入981231050505,插入数据的DATETIME为1998-12-31 05: 05: 05。

TIMESTAMP:
TIMESTAMP与DATETIME除了存储字节和支持的范围不同外,还有一个最大的区别就是:DATETIME在存储日期数据时,按实际输入的格式存储,即输入什么就存储什么,与时区无关;而TIMESTAMP值的存储是以UTC(世界标准时间)格式保存的,存储时对当前时区进行转换,检索时再转换回当前时区。查询时,不同时区显示的时间值是不同的。

4、字符串类型

类型说明存储大小
CHAR(M)固定长度字符串0~255Byte
VARCHAR(M)可变长度字符串0~65535Byte
TINYTEXT非常小的字符串255(28–1)字符
TEXT小的字符串65535(216–1)字符
MEDIUMTEXT16777215(224–1)字符
LONGTEXT大的字符串4294967295(232–1)或4GB字符
ENUM枚举类型
SET大的字符串

M为限制长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值