MySQL数据类型整合学习

目录

整数类型

浮点数类型和定点数类型

日期与时间类型

1.year

2.TIme

 直接来使用一下这个代码

通过CURRENT_TIME获取系统日期并插入表中

3.DATE类型

4. DATETIME

 5.TIMESTAMP


整数类型

MySQL主要提供的整数类型有:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT.整型的字段属性可以添加AUTO_INCREMENT自增约束条件。

MySQL数据类型含义(有符号)
tinyint(m)1个字节  范围(-128~127)
smallint(m)2个字节  范围(-32768~32767)
mediumint(m)3个字节  范围(-8388608~8388607)
int(m)4个字节  范围(-2147483648~2147483647)
bigint(m)8个字节  范围(+-9.22*10的18次方)

MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度,可使用INT(M)进行设置。其中M指示最大显示宽度。

例如,INT(4)表示最大有限显示为4.

显示宽度的大小与存储大小或类型的包含值的范围无关

虽然定义表的时候未明确指出数据类型的显示宽度,但是系统给每种数据类型添加了不同的默认显示宽度。这些显示宽度能够保证显示每一种数据类型的取值范围内所有的值。

 不同整数类型的取值范围不同,所需的存储空间也不同,因此,在定义数据表的时候,要根据实际需求选择最合适的类型,这样做有利于节约存储空间,还有利于提高查询效率。

浮点数类型和定点数类型

浮点类型有两种:单精度浮点类型(float)和双精度浮点类型(double)

定点类型只有一种:decimal

 

 

 

 由执行结果可以看出来,虽然字段a,b的float和double数据类型插入超过其精度范围的小数时,MySQL系统未给出警告,但是对插入的数据做了四舍五入的处理。

日期与时间类型

YEAR ,字节数为1,取值范围为“1901——2155”
DATE,字节数为4,取值范围为“1000-01-01——9999-12-31”
TIME,字节数为3,取值范围为“-838:59:59——838:59:59”
DATETIME,字节数为8,取值范围为“1000-01-01 00:00:00——9999-12-31 23:59:59”
TIMESTAMP,字节数为4,取值范围为“19700101080001——20380119111407

1.year

以4位数字格式表示YEAR

 由图可知:插入值超过边界值,则会插入失败,但无论是数值型还是字符串型都可以正确插入。

以两位字符格式表示YEAR,让我们来看看::

执行结果可以看出,他们都成功被转化成了年份

那如果用两位数字格式来表示YEAR呢

从结果可以看到,数字0都变转化成了0000,数字89依然是1989,15的值也依然是2015.

2.TIme

time类型用在需要记录的时间信息的值,需要3字节存储。格式为‘HH:MM:SS’

如果插入的是‘D HH:MM:SS’格式,则类似插入了‘(D*24+HH):MM:SS’。比如插入‘2 23:50:50’,相当于插入了‘71:50:50’。
如果插入的是‘HH:MM’或‘SS’格式,则效果是其他未被表示位的值赋为零值。比如插入‘30’,相当于插入了‘00:00:30’;如果插入‘11:25’,相当于插入了‘11:25:00’

 直接来使用一下这个代码

 TIME类型插入举例

向表中插入‘105508’,‘123456’,‘0’,106508

 

 由于106508超过取值范围,所以没有被插入表内

通过CURRENT_TIME获取系统日期并插入表中

 刚好与我们当前系统的时间函数相同,证明获取成功

3.DATE类型

MySQL是以YYYY-MM-DD格式来显示DATE类型的值,插入数据时,数据可以保持这种格式。另外,MySQL还支持一些不严格的语法格式,分隔符“-”可以用“@”、“.”等众多富豪来替代。
在插入数据时,也可以使用“YY-MM-DD”格式,YY转化成对应的年份的规则与YEAR类型类似。
如果我们想插入当前系统的时间,则可以插入CURRENT_DATE或者NOW()。        

 

 通过CURRENT_DATE函数获取系统日期并插入表

4. DATETIME

标准格式为“YYYY-MM-DD HH:MM:SS”,具体赋值方法与上面各种类型的方法相似。

直接看例子

 不同格式的字符串日期时间数据都能够正确的被插入到数据表中

换一种方式

也能够正确显示 

当我们用系统获取时间来对比一下

 5.TIMESTAMP

TIMESTAMP的取值范围比较小,没有DATETIME的取值范围大,因此输入值时一定要保证在TIMESTAMP的范围之内。它的插入也与插入其他日期和时间数据类型类似。
那么TIMESTAMP类型如何插入当前时间?第一,可以使用CURRENT_TIMESTAMP;第二,输入NULL,系统自动输入当前的TIMESTAMP;第三,无任何输入,系统自动输入当前的TIMESTAMP。
另外有很特殊的一点:TIMESTAMP的数值是与时区相关。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值