点击这里关注"程序员Bob"
A good book is an event in my life.读一本好书是我的人生大事。
关于SQL的列类型学习小编上次只讲到了整型以及浮点数,也只占小部分,后面还会有时间日期,定点型(今天要提到的),文本字符串,枚举和集合啥的,当然主要的也是这几种。这还算是比较基础的,后面难度是会增加的哦。
关于学SQL语言,小编认为是进大厂所必须掌握的,当然是指相应的开发岗位,毕竟大型APP都会使用到某种相应的数据库来存储数据。
列类型:定点型 定点型: 绝对保证整数部分不会被四舍五入(即不会丢失精度),小数部分可能会(理论上是不会的)。 创建定点数表(同时以浮点数表做对比),当然,每次进MySQL之后需要进入到相应的database中才能执行下列操作哦(进database语句:use (你的数据库名字);) 创建定点类型表:create table my_decimal(fi float (10,2),di decimal (10,2))charset utf8;
分别执行如下:
插入数据:
定点数的整数部分一定不能超出长度,小数部分的长度可以随意超出。
To:整数部分超出长度后进位也是不可以的哦,小数部分倒是可以随意超出,毕竟系统会自动进行四舍五入。浮点数如果进位导致长度溢出没有问题,但是定点数不行。
下面语句在执行时若有报错,可使用
查看报错的语句:show warnings;
插入数据相应语句:
-- 插入数据insert into my_decimal values(12345678.90,12345678.90); -- 有效数据insert into my_decimal values(1234.123456,1234.1234567); -- 小数部分超出insert into my_decimal values (12345678.99,12345678.99); -- 不会报错insert into my_decimal values (12345678.99,12345678.999); -- 进位超出
查看报错:
分别执行效果如下:
列类型:时间日期型 Datetime(时间日期):格式是YYYY-mm-dd HH:ii:ss(表示的范围是从1000年到9999年,存在零值全为0,即为0000-00-00 00:00:00)。 Date(日期):是datetime中的date部分。 Time(时间段):指定的某个区间之间,比如从某个时间到某个时间。 Timestamp(时间戳):但也不完全是时间戳,只是从1970年开始的YYYY-mm-dd HH:ii:ss 格式与Datetime完全一致。相关时间类型:
创建时间日期表语句:
-- 创建时间日期表create table my_date(d1 datetime,d2 date,d3 time,d4 timestamp,d5 year)charset utf8;
创建相关表的执行窗口就不用放了哈~
插入数据:时间time可以是负数,而且可以是很大的负数,year可以是使用两位数插入,也可以使用四位数插入。
插入数据 相应 语句:-- 插入数据insert into my_date values ('2020-10-27 12:00:00','2020-10-28','10:00:00','2020-10-28 10:00:00',2020);-- 时间使用负数insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-10:00:00','2020-10-28 10:00:00',2020);insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-210:00:00','2020-10-28 10:00:00',2020);insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-2 10:00:00','2020-10-28 10:00:00',2020);-- -2过去两天 48小时-- year 可以使用两位或四位insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-10:00:00','2020-10-28 10:00:00',69);insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-10:00:00','2020-10-28 10:00:00',70);
当上面语句都被执行后的效果(不按顺序):
Timestamp字段:只要当前所在的记录被更新,该字段一定会自动更新成当前时间。
语句:
-- Timestamp:修改记录update my_date set d1 = '2020-10-27 11:11:11' where d5 = 2069;
执行如下:
往期推荐:
往期推荐
洛谷 || 约瑟夫问题
洛谷 || 最厉害的学生
何为SQL整数及浮点类型?
为你,千千万万遍.
关注程序员Bob公众号,与你一起终生学习
一键三连,就差你了