MySQL -- 数据类型

news2024/9/20 14:29:40

MySQL – 数据类型

文章目录

  • MySQL -- 数据类型
  • 一、数据类型
    • 1.数据类型分类
    • 2.数值类型
      • 2.1.tinyint
      • 2.2.bit
      • 2.3小数类型
    • 3.字符串类型
      • 3.1.char
      • 3.2.varchar
    • 4.时间和日期类型
    • 5.enum和set


一、数据类型

1.数据类型分类

在这里插入图片描述

2.数值类型

在这里插入图片描述

2.1.tinyint

tinyint类型的数值范围是-128 ~ 127;
在这里插入图片描述
可以看到越界的数值会报错,无法插入表中
这是因为数据库内部是有约束的,符合约束条件才可以进行操作,不符合条件就无法操作;
数据类型本质就是一种约束;
在MySQL中,整形可以指定有符号和无符号的,默认是有符号的
可以通过unsigned来说明某个字段是无符号的
在这里插入图片描述
在这里插入图片描述

2.2.bit

bit[(M)] :位字段类型。M表示每个值的位数,范围从1到64。 如果M被忽略,默认为1。
在这里插入图片描述
向bit类型元素中插入数据,但是没有显示,这是因为bit字段在显示的时候,是按照ASCII码对应显示的;
在这里插入图片描述

2.3小数类型

  • float:
    float[(m,d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节;
    float(4,2)表示的范围是-99.99 - 99.99,MySQL在保存值时会进行四舍五入
    在这里插入图片描述
    多出来的部分被四舍五入了;
    float还可以定义为无符号类型,使用unsigned修饰:
    在这里插入图片描述
  • decimal:
    decimal (m,d)[unsigned]:定点数m指定长度,d表示小数点的位数;
    decimal(5,2)表示的范围是-999.99 - 999.99;
    decimal(5,2) unsigned表示的范围0 ~ 999.99;
    decimal和float很像,但是有区别:float和decimal表示的精度不一样;
    在这里插入图片描述
    说明:
    • float表示的精度大约是7位;
    • decimal精度更高,整数最大位数m为65;支持小数最大位数d是30;如果d被省略,默认为0;如果m被省略,默认是10;

3.字符串类型

3.1.char

char(L):固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255;
在这里插入图片描述
char(2)表示可以存放两个字符,可以是字母或汉字,但是不能超过2个,最多只能是255;

3.2.varchar

varchar(L):可变长度字符串,L表示字符长度,最大长度65535个字节;
在这里插入图片描述
关于varchar(len),Ien到底是多大,这个len值和表的编码密切相关:

  • varchar长度可以指定为0到65535之间的值,但是有1 - 3个字节用于记录数据大小,所以说有效字节数是65532;
  • 当我们的表的编码是utf8时, varchar(n)的参 数n最大值是65532/3-21844[因为utf中,-一个字符占
    用3个字节],如果编码是gbk, varchar(n)的参数n最大是65532/2-32766 (因为gbk中, -一个字符
    占用2字节)。

char和varchar的比较
在这里插入图片描述
如何选择定长和变成字符串:

  • 如果数据确定长度都一样,就使用定长(char) ,比如:身份证,手机号,md5;
  • 如果数据长度有变化,就使用变长(varchar),比如:名字,地址,但是你要保证最长的能存的进去;
  • 定长的磁盘空间比较浪费,但是效率高;
  • 变长的磁盘空间比较节省,但是效率低;
  • 定长的意义是,直接开辟好对应的空间;
  • 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少;

4.时间和日期类型

date:日期 ‘yyy-m-dd’ ,占用三字节;
datetime:时间日期格式 ‘yyy-mm-dd HH : ii : ss’ 表示范围从1000到9999,占用八字节;
timestamp:时间戳,从1970年开始的 ‘yyy-mm-dd HH : ii : ss’ 格式和datetime完全一致,占用四字节;
在这里插入图片描述
在表中只插入了前两个数据,但是时间戳的数据也更新到的最新的时间,这是因为只要对表中的数据做增、删、改,时间戳就会自动更新到最新时间;

5.enum和set

  • enum:枚举,单选类型;
    enum(选项1, 选项2, 选项3…);
    该设定只是提供了若干个选项的值,最终一个单元格中, 实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3…最多65535个;当我们添加枚举值时,也可以添加对应的数字编号;
  • set:集合,多选类型;
    set(选项值1, 选项值2 ,选项值3, …)
    该设定只是提供了若干个选项的值,最终一个单元格中, 设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是”数字",因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,最多64个。
    set其实是位图类型,不是简单的数字;
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用find_in_set函数进行set的查询:
在这里插入图片描述
也可以通过与或级联条件进行查询;

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

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

相关文章

【蓝桥】串门

1、题目 问题描述 过年小蓝想要回家串门。 蓝桥村可以抽象为 n n n 个节点, n − 1 n-1 n−1 条边的一棵树,每条边有边权长度 w i w_i wi​。 小蓝可以选择任意一个点作为起点,然后选择一条路径,可以访问每个节点至少一次。…

使用vue3从零开始手撸一个后台管理架子。代码开源

毒蘑菇 - 管理 毒蘑菇 - 管理 开源地址 https://github.com/wurencaideli/dumogu-admin 线上DEMO https://admin.dumogu.top/ 吐槽地址 https://txc.qq.com/products/613546 包含后端服务,前端。前端采用vue3,vite,element-plus&#xff0…

详解接近传感芯片的工作原理及应用领域

接近传感芯片是代替限位开关等接触式检测方式,以无需接触检测对象进行检测为目的的传感器的总称。能检测对象的移动信息和存在信息转换为电气信号。在换为电气信号的检测方式中,包括利用电磁感应引起的检测对象的金属体中产生的涡电流的方式、捕测体的接…

初识Java 之 入门篇(新手必看)

博主回归学习状态的第二篇文章,希望对大家有所帮助 今日份励志文案:我愿用努力去弥补,跟别人天赋的差距 大家一起加油!!!! 目录 一.初识Java 二.编写和运行第一给Java程序时,可能会遇到的一些…

做自媒体一定要知道这个配音软件~

我们生活在一个飞速发展、变化多端的时代,科技不断创新,信息更新迅速。在这样一个时代里,许多年轻人选择投身短视频和自媒体行业。无论是专注于自媒体,还是副业分享业余时间记录生活的Vlog,都需要涉及视频配音和制作方…

ExcelPatternTool 开箱即用的Excel工具包现已发布!

文章目录 ExcelPatternTool功能特点:快速开始使用说明常规类型高级类型Importable注解Exportable注解IImportOption导入选项IExportOption导出选项单元格样式StyleMapping样式映射使用数据库作为数据源 示例Sample1:不同类型字段导出Sample2:…

CleanMyMac X破解许可证2023最新

Mac OS已经成为许多人的选择。作为苹果(Apple)公司独有的操作系统,Mac OS以其稳定性、安全性和用户友好性而闻名于世。本文将带你了解Mac OS是什么系统,有什么特点和优势,帮助读者全面了解这一操作系统,并为…

优化改进 | YOLOv2算法超详细解析(包括诞生背景+论文解析+技术原理等)

前言:Hello大家好,我是小哥谈。YOLOv2是YOLO(You Only Look Once)目标检测算法的第二个版本,它在YOLOv1的基础上做了很多改进,包括使用更深的卷积神经网络Darknet-19作为特征提取器、使用Batch Normalizati…

Kubernetes 的有状态和无状态服务

Author:rab 目录 前言一、无状态服务案例1.1 yml 案例1.2 扩容与缩容1.2.1 扩容1.2.2 缩容 1.3 暂停与恢复1.3.1 暂停1.3.2 恢复 1.4 回滚 二、有状态服务案例2.1 yml 案例2.2 扩容与缩容2.2.1 扩容2.2.2 缩容 总结 前言 在 Kubernetes(k8s)…

C语言找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点

完整代码&#xff1a; /*找出一个二维数组中的鞍点&#xff0c;即该位置上的元素在该行上最大&#xff0c;在该列上最小&#xff0c;也可能 没有鞍点*/ #include<stdio.h> #include<stdlib.h> int main(){int n0;printf("请输入矩阵的行数:");scanf(&qu…

中国区域2013-2021年森林地上生物量产品

该数据集包括中国陆地区域2013-2021年30m分辨率森林地上生物量产品。每年的产品存放在以年份数字命名的文件夹中&#xff0c;有2013-2021共9个文件夹。 每个文件夹内包括分块的产品和vrt文件。 产品命名方式为分区名年份数字.tif。 不同的分区名称如下&#xff1a; cold te…

第2篇 机器学习基础 —(1)机器学习概念和方式

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。机器学习是一种人工智能的分支&#xff0c;它使用算法和数学模型来使计算机系统能够从经验数据中学习和改进&#xff0c;而无需显式地编程。机器学习的目标是通过从数据中发现模式和规律&#xff0c;从而使计算机能够自动进…

高速公路安全监测预警系统的功能优势

实时监测和预警&#xff1a;高速公路安全监测预警系统能够实时监测高速公路的路基、桥梁、隧道等结构的位移变化情况&#xff0c;并通过数据分析及时发出预警&#xff0c;有效预防和减少交通事故的发生。 高精度测量&#xff1a;高速公路安全监测预警系统能够实现高精度的位移…

光影之梦2:动画渲染前后对比,揭示视觉艺术的惊人转变!

动画渲染是影视艺术中不可或缺的一环&#xff0c;它赋予了角色和场景鲜活的生命。渲染过程中的光影、色彩、材质等元素&#xff0c;像是画家的调色板&#xff0c;将平淡无奇的线条和形状转化为充满韵味与情感的画面。动画角色仿佛拥有了自己的灵魂&#xff0c;无论是一颦一笑&a…

C# Winform编程(8)GDI+绘图

GDI绘图 简介System.Drawing命名空间System.Drawing命名空间中的常用类&#xff1a;System.Drawing命名空间中的常用结构&#xff1a; Graphics 类Pen类Brush类Font类PictureBox图像控件Bitmap类 简介 GDI(Graphics Device Interface)图像设备接口&#xff0c;属于绘图方面的A…

进阶课3——神经网络

1.定义与分类 神经网络是一种模仿动物神经网络行为特征&#xff0c;进行分布式并行信息处理的算法数学模型。它由大量的节点&#xff08;或神经元&#xff09;相互关联而成&#xff0c;每个节点代表一种特定的输出函数&#xff08;或称为运算&#xff09;&#xff0c;称为激励…

高等数学啃书汇总重难点(七)微分方程

同济高数上册的最后一章&#xff0c;总的来说&#xff0c;这篇章内容依旧是偏记忆为主&#xff0c;说难不难说简单不简单&#xff1a; 简单的是题型比较死&#xff0c;基本上就是记公式&#xff0c;不会出现不定积分一般花样繁多的情况&#xff1b;然而也就是背公式并不是想的…

Java-枚举

文章目录 枚举使用优缺点 方法 枚举 Java中的枚举是一种特殊的类&#xff0c;它用于定义一组有限的常量。 枚举在Java中被视为数据类型&#xff0c;你可以使用它们来创建枚举类型的变量&#xff0c;然后使用那些变量等。 枚举类使用enum关键字进行定义。 例如&#xff1a;在…

一篇了解springboot3请求参数种类及接口测试

SpringBoot3数据请求&#xff1a; 原始数据请求&#xff1a; //原始方式RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){//获取请求参数String name request.getParameter("name");String age request.getParam…