MySQL: 数据类型之整数型、浮点数、时间日期

news2024/11/25 2:26:25

目录

前言:

数据类型:

整数型:

浮点数与定点数:

浮点数:

定点数:

日期与时间:

DATATIME:

 DATE:

TIMESTAMP:

​编辑 YEAR: 

TIME:


前言:

前面的几篇写了如何创建数据库、创建数据表、如何更改表中的字段、如何进行主键约束、唯一约束、外键约束等等。本篇就要说一下数据表里面的”数据“。

首先说说数据类型。

数据类型:

无非是四大类:整数型、浮点数、日期时间、字符串。

本文先介绍前三个

在前面的博文中,出现了INT(11) 和 FLOAT 两种数据类型。看到这里,有个问题想问很久了:括号里面的11,指的是什么?

该数字指的是数值的数字个数。如 123,个数是3.

那我们先来看整数型。

整数型:

首先,回答问题: tiny,small 谁最小?

tiny

因此 TINYINT 也是最小的,其次是 SMALLINT  <  MEDIUMINT  <  INT <  BIGINT。

整数类型储存字节无符号取值范围有符号取值范围
TINYINT10~255-128 ~ 127
SMALLINT20~65535-32768 ~ 32767
MEDIUMINT30~16777215-8388608 ~ 8388607
INT40~4294967295-2147483648 ~ 2147483647
BIGINT8超大超大too

# 注意,括号内是数据长度,数据长度和取值范围没有关系,并不相互限制!

尝试创建一个数据表,对比一下子这五款数据类型:

# 表的字段不能用 in,会报错。

浮点数与定点数:

浮点数:

浮点数分为单精度浮点数(FLOAT)和双精度浮点数(DOUBLE),如果不太清楚这个概念的话请点击下方大佬链接进行查看:

单精度和双精度的区别_LonelyMrFan的博客-CSDN博客

(这些数据的取值范围太大了,痛苦的闭上了眼睛,就不一一往里敲了,允许我懒惰一下。)

# 如果用户指定的精度超过了精度范围,就会四舍五入处理。

# 插一句:其实在python中使用浮点数的时候,敲进去倒是无所谓,一旦进行运算,就会发现精度问题很大,这里也是一样的,所以要尽量避免用浮点数进行运算。

定点数:

DECIMAL (M,D)

定点数以字符串的形式储存,这样的话其精度就相对较高。

其实说到这里还是晕乎乎的,那么我们直接上例子:

首先选择一个数据库,创建一个名为 flot 的数据表,提示语句如下:

CREATE TABLE flot

(f FLOAT(5,2), d DOUBLE(6,2), dc DECIMAL(5,2));

括号内的数字分别表示(总共数字数,小数点后数字数) 

成功后查看一下数据表:

好的,这个数据表已经创建完成了,那么我们往里添加数据。

INSERT INTO <表名> VALUES(数据);

 如果想要查看表中的数据,就不能使用 DESC 语句了,应该改为 SELECT * FROM <表名>;

可以看到,我们输入的浮点数原封不动的保留了下来,即保留了两位小数。

那么再来尝试一下输入带有三位小数的数字。

结果如下:

 

对比前后两个,我们可以发现,浮点数和定点数都进行了四舍五入的操作。后面只保留两位小数,也就是说,我们在建表的时候,字段 FLOAT 后面的【字段属性】 (f FLOAT(5,2), d DOUBLE(6,2), dc DECIMAL(5,2));,第二个数字“2”,表示的是“保留几位小数”。 

这里有一个warning,我们使用: SHOW WARNINGS; 进行查看

 就是告诉你:输入的浮点数,如果小数点后面的数字数超过了规定数量,会自动四舍五入;定点数也会自动四舍五入,但是他会返回一个WARNING 告诉你。

接下来验证【字段属性】中第一个数字是干嘛用的:

(f FLOAT(5,2), d DOUBLE(6,2), dc DECIMAL(5,2));

随意插入几个比较大的浮点数:

(这里建议各位可以自己操作下,比干看我的错误强) 

经过一堆错误之后,发现最后一个对了,那么我们查看下表内数据:

我们可以发现:

1. 规定小数后有2位,如果不满2位,用0补齐,超过两位,四舍五入。

2. 建立数据表字段属性的时候,括号内第一个(就是前面标红的数字) 指的是数据中包含的数字个数。

日期与时间:

DATETIME:YYYY-MM-DD HH:MM:SS 

DATE:  YYYY-MM-DD

TIMESTAMP:  YYYY-MM-DD HH:MM:SS

YEAR:  YYYY

TIME:  HH:MM:SS

为了方便操作,我建立了一个数据表:

 

DATATIME:

该类型包括 “年 月 日 时 分 秒”,以字符串形式输入,需要8个字节储存。

如:生成 2012-5-6 06: 30: 10  这一个时间,

可以输入:“2012-5-6 06: 30: 10” 或 “20120506063010”.

#  注意取值范围不要太过,年最小为1000,最大为 9999。

创建语句如下,创建后进行检查:

 

 

也可以输入:“12-5-6 06: 30: 10”或 “120506063010”.

# 这里我只输入了年份的后半部分,不过这里需要注意取值范围:“00~69” --> “2000~2069”;“70~99” --> “1970~1999”

尝试输入“981203193010”:

 

使用 NOW() 插入当前日期和时间。

 

 如果使用 CURRENT_DATE()  则会只显示“年月日”,不显示时间。

 DATE:

YYYY-MM-DD: 需要3个字节进行储存。

这一部分的格式可以参考 DATETIME 的“年月日”部分,完全相同。(这一部分不再进行实践)

使用 CURRENT_DATE() 或 NOW() 插入当前日期。

依然利用上面创建的数据表,添加字段 d ,数据类型为 DATE:

查看后,确定添加完成。

向表内插入数据,如果不想插入“DATETIME”类型数据,可以用 NULL 来占位。

 尝试插入当前时间:

 

 

TIMESTAMP:

TIMESTAMP 的显示格式和 DATETIME 相同,储存需要4字节,但DATESTAMP 的范围明显小于 DATETIME。其范围为:'1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC

# UTC = Coordinated Universal Time 标准时区

和DATETIME不同的是,TIMESTAMP 是先将输入的时间转化为标准时区的时间,并以标准时区格式进行保存,查询时再进行转换。

这个语句可以修改时区:

set time_zone='+<小时数>';

 
YEAR: 

范围: 1901~2155

在添加“年”的时候,可以使用字符串,也可以使用数字。字符串和前面的内容一样,数字则需要注意“0”和“00”。

添加字段:

先添加 数字00 试试看。

 

 添加数字 0 试试:

添加字符串 “00”:

这回就变成了 2000,再试试单个字符“0”:

 

依然是可行的。

再试试其他数字,如 1978;

 是可以的。

TIME:

取值范围:-838:59:59 ~ 838:59:59

TIME 类型不但可以表示一天的时间,还可表示过去的时间,和时间段。

插入时间的时候也有不同类型:

1122:指的是 00:11:22

前面的数据太多,清空一下:

 

好的,我们来重复前面的步骤,添加字段,插入数据:

11: 22: 00

 差别显而易见。

如何表示“一段时间”呢?

D HH 格式:

比如我想输出:2天零3个小时

’2 03‘

 2天3小时27分51秒:

# 时间部分也可以什么符号都不带,直接敲一串数字:031729——3小时17分钟29秒,但要注意,分钟部分不能够超过60,否则就会报错。

# 如果想要输出当前的时间,NOW() 最方便,还可以尝试 CURRENT_TIME()

 

 

注意:

MySQL允许不规则语法出现,可以用各种符号代替 “-” 和 “:”,不建议这么干,太乱。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/460182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css-设置单行文本溢出省略号,使用overflow:hidden属性之后的出现的问题几解决办法。

1 设置单行文本溢出后出现省略号 必要&#xff1a;需要设置固定宽度&#xff0c;不允许换行 width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; 2 设置N行文本…

每天一道大厂SQL题【Day24】华泰证券真题实战(六)

文章目录 每天一道大厂SQL题【Day24】华泰证券真题实战(六)每日语录第24题&#xff1a;需求列表 思路分析答案获取加技术群讨论文末SQL小技巧 后记 每天一道大厂SQL题【Day24】华泰证券真题实战(六) 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦…

如何生成以及校验token

1️⃣ What is token&#xff1f; token是令牌的意思&#xff0c;作用就像“通关令牌”一样&#xff0c;持有token的请求会被“放行”&#xff0c;不持有token的请求可以被拦截&#xff08;可以设置白名单使不被拦截&#xff0c;例如登陆请求&#xff09;。 token是由…

Dockere-Compose迁移Gitea部署

Dockere-Compose迁移Gitea部署 ps: 江湖不是打打杀杀&#xff0c;江湖是人情事故。 解释&#xff1a; Gitea&#xff1a;类似于Git的代码版本管理工具。Docker&#xff1a;Docker-Compose&#xff1a; Docker命令&#xff1a; 查看镜像&#xff1a;docker images 删除镜像…

web自动化测试入门篇07 ——— 用例编写技巧

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

idea中导入spring源码错误during working with external system: java.lang.AssertionError

标题:idea中导入spring源码错误during working with external system: java.lang.AssertionError 1.Spring源码编译环境 spring 5.3.1 JDK环境:1.8 Spring版本:5.3.1版本 开发工具:IntelliJ IDEA 2019.10 编译工具:Gradle-6.4-bin 操作系统:windows 10 注&#xff1a; sprin…

分支和循环语句(2)

文章目录 3.2 for循环3.2.1 for语句的语法3.2.2 for循环中的break和continue3.2.3 for语句的循环控制变量3.2.4 一些for循环的变种3.2.5 一道笔试题 3.3 do while循环3.3.1 do语句的语法3.3.2 do语句的特点3.3.3 do while循环中的break和continue 3.4 练习3.4.1 计算 n的阶乘3.…

数据可视化工具汇总:数字孪生产品的得力助手

数字孪生技术是一项快速发展的新兴技术&#xff0c;已经在许多领域得到广泛应用。数字孪生技术不仅可以提供完整的虚拟模型&#xff0c;还可以模拟物理系统的行为。在数字孪生技术的推动下&#xff0c;越来越多的数字孪生产品开始涌现出来&#xff0c;为不同的领域提供支持和解…

2023年保理产品研究报告

第一章 行业概况 1.1 概述 保理&#xff08;Factoring&#xff09;&#xff0c;全称保付代理&#xff0c;又称托收保付&#xff0c;是一种通过将企业的应收账款出售给专业金融机构&#xff08;保理公司&#xff09;来获得资金的融资方式。保理业务通常包括两种类型&#xff1…

数据治理:解决一物多码,多品牌食品集团主数据管理实践

浙江顶誉集团是一家知名的食品加工集团&#xff0c;拥有久久丫、留夫鸭等多个品牌。一直重视企业信息化建设&#xff0c;更是把数字化作为集团的一大发展方向&#xff0c;立志不断加大数字化投入和建设&#xff0c;成为一个数字化的企业。因此&#xff0c;该企业与亿信华辰合作…

如何通过FAQ页面减轻客户支持压力,提高工作效率?

作为现代企业不可或缺的一部分&#xff0c;客户支持服务是为客户提供解决方案、回答问题和解决技术难题的关键部分。无论是产品管理还是销售环节&#xff0c;客户支持都是重要的一环。然而&#xff0c;有效地处理技术支持问题和客户请求并不容易。卓越的客户支持需要组织结构&a…

CCFC22102B 时钟分析

CCFC2012BC基于国芯科技自主PowerPC架构C*Core CPU内核研发&#xff0c;是一款汽车电子中高端车身及网关控制芯片&#xff0c;可广泛应用于车身控制和网关以及新能源车的整车控制&#xff0c;实现对国外产品如NXP&#xff08;恩智浦&#xff09;MPC5604BC、MPC5607B系列以及ST的…

Seurat -- variable features select

brief seurat提供的教学里面包含了Standard pre-processing workflow,workflow包括QC&#xff0c;normalization&#xff0c;scale data &#xff0c;detection of highly variable features。其中 normalization就有蛮多方法的&#xff0c;seurat自己就提供了两种&#xff0c…

OpenGL入门教程之 坐标系统

原文文章 原文链接  本文仅对有代码的地方做讨论。 投影矩阵 创建一个正射投影矩阵 glm::ortho(0.0f, 800.0f, 0.0f, 600.0f, 0.1f, 100.0f);第一二个参数指定了平截头体的左右坐标&#xff0c;第三四个参数指定了平截头体的底部和上部&#xff0c;第五六个参数指定了近平面…

idea基于docker插件部署docker服务

IDEA开发完项目&#xff0c;直接部署至docker上镜像运行&#xff0c;接下来开始体验吧 注意&#xff1a;假定您的项目开发完了&#xff0c;假定你准备好了docker服务哈 没安装docker的来抄作业&#xff08;docker的安装&#xff09; 我的docker所在宿主机的内网ip&#xff1a;1…

银行卡识别OCR:解放金融业务处理效率的黑科技

引言 随着移动支付和电子商务的快速发展&#xff0c;人们越来越依赖银行卡进行交易。而银行卡信息的识别和处理也变得越来越重要。传统的手动输入银行卡信息方式效率低下且容易出错&#xff0c;而采用银行卡识别OCR 技术可以实现快速自动识别银行卡信息&#xff0c;极大地提高…

git把一个分支上的某次修改同步到另一个分支上,并解决git cherry-pick 冲突

背景 我们在工作中经常会碰到好几个同事共同在一个分支上开发&#xff0c;一个项目同时会有好几个分支&#xff0c;我们在feature上开发的功能时&#xff0c;有可能某个需求需要提前发布&#xff0c;这个时候我们已经在feature A上开发完成&#xff0c;但是需要在master上发布…

解锁阿迪达斯营销姿势,分析阿迪达斯成功背后的营销策略

阿迪达斯品牌在1920年创立于德国的运动品牌制造商——著名企业家阿道夫达斯勒&#xff0c;并且当年就开始生产该品牌的鞋类。如今&#xff0c;阿迪达斯已经象征着运动时尚的潮流品牌&#xff0c;在世界的舞台上大放异彩。因此阿迪达斯的营销策略一直备受关注&#xff0c;今天我…

乌合之众再次上演,打工人将被AI一键淘汰?

ChatGPT&#xff0c;是一场以硅谷为圆心&#xff0c;辐射至全球的人工智能竞赛&#xff0c;人们关于人工智能的担忧与思考从未停歇。一起来看看这篇文章&#xff0c;了解一下——大浪来袭&#xff0c;要怎么做才能保证自己不会溺水&#xff1f; 上个月底&#xff0c;千余名科技…

盛元广通病原微生物保藏信息管理系统

目前现状 微生物菌种是宝贵的生物资源&#xff0c;对微生物学研究和微生物资源开发与利用具有非常重要的价值。所以菌种的分类及保藏非常重要。当前&#xff0c;大部分实验室仍采用传统人工方式来管理和保藏病原微生物样本信息&#xff0c;不仅效率低下&#xff0c;且耗费大量人…