MySQL:数据类型

文章目录

  • 数据类型分类
  • 数值类型
  • 越界访问
  • bit类型
  • 小数类型
    • float
    • decimal
  • 字符串类型
    • char
    • varchar
  • 日期
  • enum和set

数据类型分类

在MySQL数据库中,存在各种各样的数据类型:

在这里插入图片描述

针对于上述的这么多类型,本篇就对于这些类型的数据进行一一解释,并解释其当中的特性

数值类型

在这里插入图片描述
以上展示的是在MySQL中的数值类型以及对应的最大最小值,从中可以看出是和C语言有很多相似的地方的,那么接下来就设计一组越界测试来检验最大最小值

越界访问

普通越界访问

在这里插入图片描述
这里我创建了一个数据库,并尝试向tinyint中插入对应的数据,此时发现插入是失败的,这是因为超过了一个字节对应的最大存储值,换句话说MySQL并不允许插入一个不符合范围的数据

换句话说,MySQL中和C语言不一样,在C语言中如果使用的是超过接线的数字,最多是会提示一个告警的信息,在具体的处理中会有截断或者是隐式类型转换这样的操作,但是不管怎么说,终是可以容纳进去的,但是在MySQL中这样的操作是不合法,也是不可接受的

如果向MySQL中插入不合法的数据,那么MySQL会直接拦截,不让这样的操作继续向后执行,换句话说,如果有数据被成功插入MySQL当中了,那么就意味着这个数据一定是合法的

所以,MySQL的数据类型本身也是一种约束,这样就能保证数据库中的数据都是可预期,完整的数据,同时也会使得程序员必须要进行数据的正确插入,约束使用者

无符号和有符号数

在这里插入图片描述

bit类型

下面介绍的这种数据类型是bit类型,它表示的是位字段类型,其中可以指定这个类型中有多少个比特位,如果不设置默认是1个比特位:

在这里插入图片描述
由上面的现象可以得出一个结论,在bit位段进行显示的时候,会按照ASCII对应的值来进行显示,在未来,如果有需要的使用场景,填入的数据只有0或者1这两种可能,此时就可以插入一个bit位1的位段,那么表示的就是这个位置填入的数据不是0就是1,这样可以节省空间

在这里插入图片描述
从上述用例可以看出,这部分的内容也是遵守界限规则的

小数类型

float

对于float,在C语言中表示的是浮点数,而在MySQL语句中略有不同,在定义的时候要制定对应的显示长度,小数位数,float类型占用空间是4个字节

在这里插入图片描述
以上述的float类型的数据范围是4, 2为例,它表示的意思是该浮点数显示的是4位,并且有效精度是2位,那么对于这个测试来说,它所能表示的范围就是-99.99到99.99,值得注意的是,这个是遵循四舍五入原则的,如果插入的是99.991,其实也是可以插入的,但是如果是99.995,就不可以了

无符号float

在这里插入图片描述
对于无符号的类型数据来说,其实就是把数据范围中的负数部分去掉了,只能选正数的部分

decimal

以上是对float的理解,那么下面介绍的数据类型是decimal

它定义的方法和float是一样的,但是区别是,它表示的精度和float并不相同:

在这里插入图片描述
从中看出,它们两个类型的区分之一就是精度不一样,这是由于float内部的存储模式决定的,float表示的精度最大是7位左右,而对应的decimal可以容纳的是65,小数最大是30位

所以,当需要使得小数的精度更高的时候,推荐使用的是decimal

字符串类型

char

在这里插入图片描述
从中可以看出的规律是,char(2)表示可以存放的是两个字符,可以是字母或者汉字,最长是255

varchar

在这里插入图片描述
看似它和char作用是一样的,那么具体的有什么不同点呢?

在这里插入图片描述
变长的意义就是,在不超过自定义范围的情况下,用多少开辟多少,而定长就是直接先都开辟好了

日期

常用的日期有三个

  1. date
  2. datetime
  3. timestamp

在这里插入图片描述
需要注意的是,t3表示的时间戳类型,它会自动在你插入数据打的时候进行更新,更新的就是当前的时间

enum和set

对于enum其实并不陌生,它表示的就是枚举,所以这里不再进行赘述,和c中的用法是一样的,这个设定提供了若干个选项的值,在最终的单元格中,只是存储了数字

那这个set表示的类型是集合的意思,就是提供了若干的选项,可以从中进行挑选等

find_in_set函数

这个函数从名字就能看出,它主要是为了在集合中查找元素而服务的,一般格式为

find_in_set(sub,str_list):如果这个sub在str_list当中,那么就返回下标,如果不存在就返回0

在这里插入图片描述

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

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

相关文章

STM32--RC522学习记录

一&#xff0c;datasheet阅读记录 1.关于通信格式 2.读寄存器 u8 RC522_ReadReg(u8 address) {u8 addr address;u8 data0x00;addr((addr<<1)&0x7e)|0x80;//将最高位置一表示read&#xff0c;最后一位按照手册建议变为0Spi_Start();//选中从机SPI2_ReadWriteByte(ad…

javaSwing宿舍管理系统(三个角色)

一、 简介 宿舍管理系统是一个针对学校宿舍管理的软件系统&#xff0c;旨在方便学生、宿管和管理员进行宿舍信息管理、学生信息管理以及宿舍评比等操作。该系统使用 Java Swing 进行界面设计&#xff0c;分为三个角色&#xff1a;管理员、宿管和学生。 二、 功能模块 2.1 管…

面向中文大模型价值观的评估与对齐研究:“给AI的100瓶毒药”并解毒,守护AI纯净之心

面向中文大模型价值观的评估与对齐研究&#xff1a;“给AI的100瓶毒药”并解毒&#xff0c;守护AI纯净之心 1.简介 随着Large Language Models&#xff08;LLMs&#xff09;的快速发展&#xff0c;越来越多的人开始担心它们可能带来风险。因此&#xff0c;围绕大模型的“安全…

Collection与数据结构 数据结构预备知识(一) :集合框架与时间空间复杂度

1.集合框架 1.1 什么是集合框架 Java集合框架,又被称为容器,是定义在java.util包下的一组接口和接口实现的一些类.其主要的表现就是把一些数据放入这些容器中,对数据进行便捷的存储,检索,管理.集合框架底层实现原理其实就是各种数据结构的实现方法,所以在以后的学习中,我们会…

QT(3/22)

1>使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数&#xff0c;将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#…

StarRocks 助力金融营销数字化进化之路

作者&#xff1a;平安银行 数据资产中心数据及 AI 平台团队负责人 廖晓格 平安银行五位一体&#xff0c;做零售金融的领先银行&#xff0c;五位一体是由开放银行、AI 银行、远程银行、线下银行、综合化银行协同构建的数据化、智能化的零售客户经营模式&#xff0c;这套模式以数…

【Hadoop大数据技术】——Hadoop高可用集群(学习笔记)

&#x1f4d6; 前言&#xff1a;Hadoop设计之初&#xff0c;在架构设计和应用性能方面存在很多不如人意的地方&#xff0c;如HDFS和YARN集群的主节点只能有一个&#xff0c;如果主节点宕机无法使用&#xff0c;那么将导致HDFS或YARN集群无法使用&#xff0c;针对上述问题&#…

值得参考的golang语言开发规范:Uber Go 语言编码规范,一些优秀的技巧可以提升代码的质量、避免代码缺陷和bug漏洞

值得参考的golang语言开发规范&#xff1a;Uber Go 语言编码规范&#xff0c;一些优秀的技巧可以提升代码的质量、避免代码缺陷和bug漏洞。 Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司&#xff0c;也是 Go 语言的早期 adopter。其开源了很多 golang 项目&#xff0c;…

UE5 LiveLink 自动连接数据源,以及打包后不能收到udp消息的解决办法

为什么要自动连接数据源&#xff0c;因为方便打包后接收数据&#xff0c;这里我是写在了Game Instance,也可以写在其他地方&#xff0c;自行替换成Beginplay和Endplay 关于编辑器模式下能收到udp消息&#xff0c;打包后不能收到消息的问题有两点需要排查&#xff0c;启动打包后…

Jmeter脚本优化——CSV数据驱动文件

使用 CSV 数据文件设置实现参数化注册 1&#xff09; 本地创建 csv 文件&#xff0c;并准备要使用的数据&#xff0c;这里要参数化的是注册的用户名和邮箱。所以在 csv 文件中输入多组用户名和邮箱。 2&#xff09; 通过测试计划或者线程组的右键添加->配置元件->CSV…

亚信安慧AntDB解析:数据库技术的新里程碑

AntDB简化了开发运维&#xff0c;更提高了数据库的易用性。AntDB是一种创新的数据库管理系统&#xff0c;其设计理念旨在让用户能够更便捷地进行数据库操作&#xff0c;减少繁琐的配置和管理工作&#xff0c;提升工作效率。 通过AntDB&#xff0c;用户可以快速部署和管理数据库…

Py之scikit-learn-extra:scikit-learn-extra的简介、安装、案例应用之详细攻略

Py之scikit-learn-extra&#xff1a;scikit-learn-extra的简介、安装、案例应用之详细攻略 目录 scikit-learn-extra的简介 scikit-learn-extra的安装 scikit-learn-extra的案例应用 1、使用 scikit-learn-extra 中的 IsolationForest 模型进行异常检测 scikit-learn-extra…

探索网络深处:爬虫技术的奥秘

目录 引言1. 网络的庞大性与信息的丰富性2. 爬虫在收集和分析网络信息方面的重要作用 一、 什么是爬虫&#xff1f;二、爬虫的应用领域三、爬虫的工作流程四、爬虫技术所面临的挑战与解决方案五、爬虫技术设计的伦理与法律问题文末推荐 引言 网络是一个庞大而丰富的宇宙&#…

ChatGPT已成澳洲“懒学生”们最爱,各大学加强检查人工智能辅助作弊行为!

据报道&#xff0c;越来越多的学生开始使用人工智能来写作业&#xff0c;但各所大学也在加倍努力&#xff0c;想方设法将他们一网打尽。 ▲图片来源于网络 悉尼大学透露&#xff0c;2023年有330份作业是用人工智能完成的&#xff0c;而新南威尔士大学最近也表示&#xff0c;他…

【yolo算法水果新鲜程度检测】

Yolo&#xff08;You Only Look Once&#xff09;系列算法是一类流行的一阶段实时目标检测模型&#xff0c;在水果检测领域有着广泛的应用。因其高效性和实时性而受到青睐&#xff0c;可用于识别和定位图像中不同种类的水果以及水果的新鲜度。 YOLOv3 已被用于水果商品的检测分…

Java基础-正则表达式

文章目录 1.基本介绍2.正则底层实现1.matcher.find()完成的任务2.matcher.group(0)分析1.源代码2.解释&#xff08;不分组&#xff09;3.解释&#xff08;分组&#xff09; 3.总结 3.正则表达式语法1.基本介绍2.元字符的转义符号1.基本介绍2.代码实例 3.字符匹配符1.基本介绍2.…

HTML_CSS学习:表格、表单、框架标签

一、表格_跨行与跨列 1.相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格_跨行与跨列</title> </head> <body><table border"1" cellspacing"0&qu…

学员分享丨学习华为认证,为什么建议报班学习

我一直对计算机科学有着浓厚的兴趣&#xff0c;但在我遇见誉天教育之前&#xff0c;我只是独自摸索&#xff0c;没有明确的方向和方法。然而&#xff0c;在誉天教育&#xff0c;我找到了一个真正为学生着想的地方。这里有一支专业且热情的教师队伍&#xff0c;他们不仅在课堂上…

毕业设计:日志记录编写(3/17起更新中)

目录 3/171.配置阿里云python加速镜像&#xff1a;2. 安装python3.9版本3. 爬虫技术选择4. 数据抓取和整理5. 难点和挑战 3/241.数据库建表信息2.后续进度安排3. 数据处理和分析 3/17 当前周期目标&#xff1a;构建基本的python环境&#xff1a;运行爬虫程序 1.配置阿里云pytho…

【Postman】工具使用介绍

一、postman工具介绍 1.什么是postman postman是谷歌开发的一款网页调试和接口测试工具&#xff0c;能够发送任何请求类型的http请求&#xff0c;支持GET/POST/PUT/DELETE等方法。postman简单易用&#xff0c;可以直接填写URL&#xff0c;header&#xff0c;body就可以发送一…