当前位置: 首页 > news >正文

MySQL的数据类型

文章目录

  • 数据类型分类
    • 整型
    • bit类型
    • 浮点类型
    • 字符串类型
      • char
      • varchar
    • 日期和时间类型
    • enum和set
  • find_ in_ set

数据类型分类

在这里插入图片描述

整型

在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。
可以通过UNSIGNED来说明某个字段是无符号的。

在MySQL中如果数据超出了类型的表示范围,MySQL会直接报错,不让插入。

bit类型

bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1

bit字段在显示时,是按照ASCII码对应的值显示。
如果我们有这样的值,只存放0或1,这时可以定义bit(1)。这样可以节省空间。

浮点类型

float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节
double[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间8个字节

float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入。
如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数,范围是 0 ~ 99.99,所以浮点数和整型不一样,浮点数定义unsigned 会使数据表示范围减少一半。

decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数

decimal和float很像,但是有区别:float和decimal表示的精度不一样。
decimal的精度更准确,因此如果我们希望某个数据表示高精度,选择decimal。

float表示的精度大约是7位。
decimal整数最大位数m为65。支持小数最大位数d是30。

字符串类型

char

char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255。
char(2) 表示可以存放两个字符,可以是字母或汉字,但是不能超过2个, 最多只能是255。

varchar

varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节,注意,varchar的单位是字节,不是字符。
utf编码中,一个字符占、用3个字节。
gbk编码中,一个字符占用2字节。

所以编码不同,varchar的最大长度字符是不同的。

varchar的(L)中L表示的是最大的字符长度,但是MySQL会根据我们实际存入的大小为我们开辟空间,就类似于我们顺序表中的capacity,但是因为这样就需要多开1~3个字节为我们维护实际用来多少空间的信息,所以如果varchar存满的话,有3字节是存在维护信息的,实际存储的65532个字节。

char和varchar比较:
在这里插入图片描述

如果数据确定长度都一样,就使用定长(char)。
如果数据长度有变化,就使用变长(varchar)。
定长的磁盘空间比较浪费,但是效率高。
变长的磁盘空间比较节省,但是效率低。
定长的意义是,直接开辟好对应的空间。
变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。

日期和时间类型

date :日期 ‘yyyy-mm-dd’ ,占用三字节。
datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 ,占用八字节。
timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用四字节。

date和datetime是需要我们自己设置的,timestamp定义好之后不需要我们自己设置,当我们对这行数据添加修改时这个时间会自动更新成修改的时间。

enum和set

enum:枚举,“单选”类型;
enum(‘选项1’,‘选项2’,‘选项3’,…);

set:集合,“多选”类型;
set(‘选项值1’,‘选项值2’,‘选项值3’, …);

我们设置好enum和set后,以后在对对应列进行插入时,对于enum来说就只能选择enum选项中的一个,而对于set来说可以选择set选项中的多个。

对于枚举类型
这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举值时,也可以添加对应的数字编号。

对于集合类型
每个选项值依次对应如下数字:1,2,4,8,16,32,…最多64个,通过对应二进制是否为1,就可以存储多个数据了。

find_ in_ set

find_in_set(sub,str_list) :如果 sub 在 str_list 中,则返回下标;如果不在,返回0;str_list 用逗号分隔的字符串。在这里插入图片描述
查询爱好登山的人
在这里插入图片描述

相关文章:

MySQL的数据类型

文章目录 数据类型分类整型bit类型浮点类型字符串类型charvarchar 日期和时间类型enum和set find_ in_ set 数据类型分类 整型 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的。 在MySQL中如…...

xss漏洞(四,xss常见类型)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 1,本文基于dvwa靶场以及PHP study进行操作,靶场具体搭建参考上一篇: xss漏洞(二,xss靶场搭建以及简单…...

繁简之争:为什么手机芯片都是 ARM

RISC 和 CISC 指令集 之前的文章《揭秘 CPU 是如何执行计算机指令的》中说到,如果从软件的角度来讲,CPU 就是一个执行各种计算机指令(Instruction Code)的逻辑机器。 计算机指令集是计算机指令的集合,包括各种类型的…...

【nnUNetv2进阶】十九、nnUNetv2 使用ResidualEncoder训练模型

nnunet使用及改进教程。 【nnUNetv2实践】一、nnUNetv2安装 【nnUNetv2实践】二、nnUNetv2快速入门-训练验证推理集成一条龙教程 【nnUNetv2进阶】三、nnUNetv2 自定义网络-发paper必会-CSDN博客 其他网络改进参考: 【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入…...

Unity3D ShaderGraph 场景扫描光效果实现详解

引言 在Unity3D游戏开发中,创建吸引人的视觉效果是提升游戏沉浸感的关键之一。场景扫描光效果,作为一种动态且富有表现力的视觉元素,能够为游戏场景增添不少亮点。通过Unity的ShaderGraph工具,我们可以轻松地实现这种效果&#x…...

JS中运算符优先级

优先级顺序从高到低为&#xff1a; 括号 ()成员访问 . 和 函数调用 ()一元运算符 !、、-、~乘法 *、除法 /、取余 %加法 、减法 -位移运算符 <<、>>、>>>比较运算符 <、<、>、>等于 、不等于 !、严格等于 、严格不等于 !位与 &位异或 ^位…...

分享6款有助于写论文能用到的软件app!

在学术写作中&#xff0c;选择合适的软件和工具可以大大提高效率和质量。以下是六款有助于写论文的软件app推荐&#xff0c;其中特别重点介绍千笔-AIPassPaPer这款AI原创论文写作平台。 1. 千笔-AIPassPaPer 千笔-AIPassPaPer是一款功能全面且高效的AI原创论文写作平台。它能…...

Python图形验证码的识别:一步步详解

在Web开发和自动化测试中&#xff0c;图形验证码的识别是一项常见且重要的任务。图形验证码作为防止自动化攻击的一种手段&#xff0c;通过随机生成包含字符或数字的图片来增加用户验证的难度。然而&#xff0c;对于需要自动化处理的场景&#xff0c;如Web自动化测试或爬虫&…...

Jenkins未授权访问漏洞

Jenkins未授权访问漏洞 默认情况下 Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令&#xff0c;攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务&#xff0c;通过脚本执行界面从而获取服务器权限。 一、使用以下fofa语法进行产品搜索 port&…...

什么情况下跑代码内存才会爆

内存爆掉&#xff08;即内存溢出&#xff09;通常是由于代码在处理数据或计算时消耗了过多的内存资源&#xff0c;导致系统内存不足。以下是一些常见场景和代码示例&#xff0c;可能会导致内存爆掉&#xff1a; 1. 超大数据集加载: 加载非常大的数据集到内存中&#xff08;特…...

基于arcpro3.0.2运行报错问题:不能加载文件System.Text.Encoding.CodePages, Version=8.0.0.0

基于arcpro3.0.2运行报错问题:不能加载文件System.Text.Encoding.CodePages, Version8.0.0.0 报错问题描述&#xff1a; 基于arcpro3.0.2运行报错问题: Could not load file or assembly System.Text.Encoding.CodePages, Version8.0.0.0 解决办法&#xff1a; 重新拷贝打包生…...

elk+filebeat+kafka集群部署

实验框架图 192.168.124.10 es1 192.168.124.20 es2 192.168.124.30 losgtash kibana 192.168.124.50 MySQL nginx httpd 上一篇做完es1和es2以及192.168.124.30的部署 在192.168.124.50做配置部署 开启MySQL、nginx、http 因为nginx和http默认端口为80&#xff0…...

C++生化危机1.5源码

代码特别长&#xff0c;如若报错&#xff0c;请把1e9改成1000000000。 //1.5.12 #include <conio.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> #include <direct.h> i…...

RMAN-06618不同版本之间RMAN无法连接

RMAN Active Duplicate Between Two Oracle Versions (Doc ID 2346507.1)​编辑To Bottom In this Document Goal Solution References APPLIES TO: Oracle Database Cloud Schema Service - Version N/A and later Oracle Database Exadata Cloud Machine - Version N/A and…...

鸿蒙HarmonyOS开发:多种内置弹窗及自定义弹窗的详细使用指南

文章目录 一、消息提示框&#xff08;showToast&#xff09;1、导入模块2、语法3、参数4、示例5、效果 二、对话框&#xff08;showDialog&#xff09;1、导入模块2、语法3、参数4、示例5、效果 三、警告弹窗&#xff08;AlertDialog&#xff09;1、语法2、参数3、AlertDialogP…...

Python文件

一、文件的基本概念 1.1 文件类型 文件类型主要分为文本文件和二进制文件。文本文件是由一组特定编码的字符构成的文件&#xff0c;可以由某种文本编辑器对内容进行识别、处理、修改等操作。二进制文件由二进制数“0”和“1”构成&#xff0c;没有统一的字符编码&#xff0c;…...

超越标注:合成数据引领下的文本嵌入技术革新

论文:https://arxiv.org/pdf/2401.00368代码:https://github.com/microsoft/unilm/tree/master/e5机构:微软领域:嵌入模型发表:BAAI 2024这篇论文的标题是《Improving Text Embeddings with Large Language Models》,由微软公司的Liang Wang, Nan Yang, Xiaolong Huang, …...

IT运维中,如何快速进行故障排查?(以银行APP交易故障为例)

一、事件背景 正值"五一"黄金周旅游高峰期&#xff0c;某城商行的手机APP突然出现大面积交易失败和严重卡顿现象。据初步统计&#xff0c;从上午10点开始APP的交易成功率从正常的99%骤降至75%左右&#xff0c;用户反馈的交易失败投诉量在短短2小时内激增了500%。与此…...

入门mem0.NET

入门mem0.NET 安装包 如果你的项目使用了EntityFrameworkCore,那么你可以跟随这个教程走 <ItemGroup><PackageReference Include"mem0.NET" Version"0.1.7" /><PackageReference Include"mem0.NET.Qdrant" Version"0.1.7…...

虚拟机(CentOS7)安装jenkins

centos7安装jenkins 前提条件&#xff0c;安装jdk与maven 1、JDK17安装 # 进入系统管理员 sudo root # 进入对应文件夹下 cd /usr/local # 下载jdk17 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm # rpm命令安装下载的jdk17 rpm -ivh jdk-17_li…...

如何用MouseClick鼠标连点器实现高效自动化点击:从游戏到办公的全场景指南

如何用MouseClick鼠标连点器实现高效自动化点击&#xff1a;从游戏到办公的全场景指南 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界…...

MegSpot专业视觉分析工具:从基础操作到高级应用全指南

MegSpot专业视觉分析工具&#xff1a;从基础操作到高级应用全指南 【免费下载链接】MegSpot MegSpot是一款高效、专业、跨平台的图片&视频对比应用 项目地址: https://gitcode.com/gh_mirrors/me/MegSpot 在数字媒体创作与分析领域&#xff0c;如何高效对比图片细节…...

Modmata:Arduino工业级Modbus协议栈深度解析

1. Modmata&#xff1a;面向工业控制场景的Arduino Modbus协议栈深度解析Modmata并非一个简单的协议转换层&#xff0c;而是将Arduino从消费级原型平台推向工业级可编程控制器&#xff08;PLC&#xff09;边缘节点的关键中间件。其设计哲学直指嵌入式系统开发中长期存在的“协议…...

QGIS中高效集成天地图:从注册到加载的完整指南

1. 天地图与QGIS的完美结合 第一次接触天地图是在一个城市规划项目里&#xff0c;当时需要高精度的底图作为参考。天地图作为国内权威的地理信息服务&#xff0c;不仅数据更新及时&#xff0c;而且完全免费&#xff0c;这对我们这些搞GIS开发的人来说简直是福音。不过刚开始用的…...

别再用subprocess了!Mojo原生FFI直连Python C API的5种安全模式,含CPython 3.11+PyPy兼容性矩阵表

第一章&#xff1a;Mojo 与 Python 混合编程案例 生产环境部署Mojo 作为新兴的系统级编程语言&#xff0c;原生兼容 Python 生态&#xff0c;支持在关键性能路径中无缝调用 Mojo 编译模块&#xff0c;同时复用 Python 的成熟工具链与部署基础设施。在生产环境中&#xff0c;典型…...

突破QQ音乐格式壁垒:QMCDecode全方位解密方案与跨场景应用指南

突破QQ音乐格式壁垒&#xff1a;QMCDecode全方位解密方案与跨场景应用指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff…...

基于Qwen3.5-2B的操作系统概念学习助手

基于Qwen3.5-2B的操作系统概念学习助手 1. 为什么需要操作系统学习助手 计算机专业的学生在学习操作系统时&#xff0c;常常面临抽象概念难以理解、理论实践脱节的问题。传统教材中的进程、线程、死锁等概念&#xff0c;如果仅靠文字描述&#xff0c;往往让初学者感到晦涩难懂…...

从MySQL到Doris:手把手教你无缝迁移数据模型(附分区分桶实战配置)

从MySQL到Doris&#xff1a;数据模型迁移实战与分区分桶深度优化 如果你正在使用MySQL处理海量数据分析任务&#xff0c;可能会遇到查询性能瓶颈、复杂聚合计算效率低下等问题。Apache Doris作为新一代MPP分析型数据库&#xff0c;兼容MySQL协议却提供了完全不同的底层架构设计…...

不露脸也能当主播?一文了解VTuber

不露脸也能当主播&#xff1f;一文了解VTuber很多人提到 VTuber&#xff0c;脑子里就是“二次元纸片人”在直播间卖萌。 但其实&#xff0c;你每天换的微信头像、用过的苹果拟我表情&#xff0c;短视频平台的3D头套全都是它的“远房亲戚”。 今天我们就把这层科技外衣扒开&…...

STM32开发中的C语言核心技巧与实战

1. STM32开发中的C语言核心技巧解析从事嵌入式开发十多年来&#xff0c;我深刻体会到C语言在STM32单片机开发中的核心地位。与通用计算机编程不同&#xff0c;嵌入式C语言需要直接操作硬件寄存器&#xff0c;对代码的精确性和效率要求极高。下面我将分享几个在STM32开发中最实用…...