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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

五分钟快速搭建个人游戏网站(1Panel)

五分钟快速搭建个人游戏网站(1Panel) 环境要求:主流 Linux 发行版本(基于 Debian / RedHat,包括国产操作系统); 如果是Windows OS的可以通过WSL来实现安装。 1 介绍 1Panel 是一个基于 Web 的 L…

SSR910Q系列高性价比NVR解决方案

一、方案描述 SSR910Q,主芯片内核为A53双核64位最高主频为1.2Ghz处理器,内置2Gb DDR3,最高速率可支持2133Mb/s。高性能H.265/H.264/MJPEG视频编解码,智能处理单元(IPU)。支持高速I/O接口,如USB…

包含多个段的程序

文章目录 包含多个段的程序在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段 包含多个段的程序 在代码段中使用数据 考虑这样一个问题,编程计算以下8个数据的和,结果存在ax 寄存器中:0123H,0456H,07…

FaceBook广告账号验证教程

1.登录facebook账号,点击左边的ads manager。 2.点击Create ad创建广告。 3.选择广告投放意向。 4.填写广告信息。 5.创建广告后选择付款方式,这里我是使用信用卡付款。这里我是使用Fomepay的虚拟卡进行绑定的。 6.填写信用卡的持卡人姓名 卡号 有效期 安全码 7.填写…

Negative Sampling with Adaptive DenoisingMixup for Knowledge Graph Embedding

摘要 知识图嵌入(Knowledge graph embedding, KGE)的目的是通过对比正负三元组,将知识图中的实体和关系映射到一个低维、密集的向量空间中。在kge的训练过程中,由于kge只包含正三元组,因此负采样对于找到高质量的负三元组至关重要。大多数现…

【Redis】Redis特性

Redis 认识redisRedis特性在内存中存储数据可编程可扩展性持久化Clustering高可用性 认识redis Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志…

时间对比投资:衡量5天与10天六西格玛绿带培训的价值

六西格玛绿带培训专为希望提高其业务流程改进技能的专业人员设计。绿带培训通常涵盖六西格玛的基础知识、DMAIC(定义、测量、分析、改进、控制)方法论、以及各种质量管理工具和技巧。绿带受训者通常在他们的工作职责中负责领导小型项目或作为黑带项目团队的成员,下面…

(附源码)基于Spring Boot + Vue的招聘平台设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《100套》 🍅文末获取源码联系🍅 &#x1f31…

使用Django实现信号与消息通知系统【第154篇—Django】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Django实现信号与消息通知系统 在Web应用程序中,实现消息通知系统是至关重…

【JAVA】数组的定义和使用

JAVA的数组和c语言的相似但是在创建上略有不同 数组的创建及初始化 T[] 数组名 new T[N]; T:表示数组中存放元素的类型 T[]:表示数组的类型 N:表示数组的长度 动态初始化 int[] array new int[10]; 静态初始化 int[] array1 new …

边缘计算基础介绍及AKamai-linode产品分析

1、背景 随着互联网的发展,我们进入了大数据时代,这个时代也是移动互联网的时代,而且这个时代,大量的线下服务走到线上,随之而来的,比如外卖、叫车……于是,有各种各样的 App 和设备在收集你的…

基于DWT(离散小波变换)的图像水印算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

nodejs+vue高校师资管理系统python-flask-django-php

快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式…

nginx: [emerg] stream directive is duplicate in /etc/nginx/nginx.conf:56

背景: 在维护paas平台的时候发现一个web前端容器服务运行报错,提示如下: 问题分析: 根据日志的内容,发现是nginx.conf配置文件的stream模块配置存在问题导致的。需要查看一下nginx.conf配置文件的内容: 注…

Soybean Admin:基于 Vue3、Vite3、TypeScript、NaiveUI、Pinia 和 UnoCSS 的清新优雅的中后台模版

一、引言 随着互联网技术的快速发展,前端开发领域也在不断演进。Soybean Admin 作为一个基于最新前端技术栈的中后台模版,为开发者提供了一个高效、规范、灵活的解决方案。本文将深入探讨 Soybean Admin 的技术特性及其在中后台前端开发中的优势。 二、…

android h5理财(记账)管理系统eclipse开发mysql数据库编程服务端java计算机程序设计

一、源码特点 android h5理财管理系统是一套完善的WEBandroid设计系统,对理解JSP java,安卓app编程开发语言有帮助(系统采用web服务端APP端 综合模式进行设计开发),系统具有完整的源代码和数据库,系统主要…

从零开始的 dbt 入门教程 (dbt cloud 自动化篇)

一、引 在前面的几篇文章中,我们从 dbt core 聊到了 dbt 项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门 dbt 开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化,毕竟作为开发我们肯定没有经历每天定…

基于springboot实现在线拍卖系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线拍卖系统演示 摘要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍…

[热门]通义灵码做活动,送挺多礼品,快来薅羊毛!!!

你的编辑器装上智能ai编辑了吗,的确挺好用的。 最近阿里云AI编码搞活动,可以免费体验并且还可以抽盲盒。有日历、马克杯、代金券、等等其他数码产品。 大多数都是日历。 点击链接参与「通义灵码 体验 AI 编码,开 AI 盲盒」 https://develope…

PCI产业概述和产业发展动态分享

atsec白海蔚 2024年3月底 关键词:支付卡产业、PCI DSS、数据安全、支付交易 本文为atsec和作者技术共享类文章,旨在共同探讨信息安全的相关话题。转载请注明:atsec和作者名称。 *如有兴趣了解早期产业信息请参见作者于2021年4月发布信息&a…