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

MySQL中常用的数据类型

整型

  • int

    • 有符号
    • 范围: -2147483648 ~ 2147483647
  • int unsigned

    • 无符号
    • 范围: 0 ~ 4294967295
  • int(5) zerofill

    • 仅用于显示,当不满足5位时,按照左边补0,例如: 00002
    • 满足时,正常显示
  • tinyint[(m)] [unsigned] [zerofill]

    • 有符号,取值范围 -128 ~ 127
    • 无符号,取值范围 0 ~ 255
  • bigint[(m)][unsigned][zerofill]

    • 有符号,取值范围: -9223372036854775808 ~ 9223372036854775807
    • 无符号,取值范围: 0 ~ 18446744073709551615

示例

  • create table L1(id int, uid int unsigned, zid int(5) zerofill) default charset=utf8;
  • insert into L1(id, uid, zid) values(1,2,3)
    • 这里的 zid 3 这么显示: 00003
  • insert into L1(id, uid, zid) values(21444444, 4000000, 3000000)
    • 这里的 zid 3000000 显示 3000000
    • 如果 插入数值,超过类型范围,则会报错,这个需要注意, Out of range value for column
    • 可以配置不报错,但截断,不建议使用

小数

  • decimal[(m[,d])] [unsigned] [zerofill]
    • 准确的小数值
    • m是数字总个数 (负号不算), 最大值 65
    • d是小数点后个数, d最大值 30

sql 示例

create table L2(id int not null primary key auto_increment,salary decimal(8, 2)
) default charset=utf8;
  • 如果插入 小数不是 2位,会自动四舍五入

  • 如果整数部分超出,则会报错(严格模式)

  • 项目开发中,一般都用 decimal, float, double 不常用

  • FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

    • 单精度浮点数,非准确小数值
    • m是数字总个数,d是小数点后个数
    • 底层存储是 32位
  • DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

    • 双精度浮点数 (非准确小数值)
    • m是数字总个数
    • d是小数点后个数
    • 底层存储是 64位

字符串

  • char(m)

    • 定长字符串
    • m 代表字符串的长度,最多容纳 255 个字符
    • 定长的体现
      • 及时内容长度小于 m, 也会占用 m长度
      • 例如, char(5), 数据是 yes,底层也会占用5个字符
      • 如果超出 m 长度限制 (默认 mysql是严格模式,所以会报错)
      • 如果在配置文件中,加入如下配置
      • sql-mode="NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION"
      • 保存并重启,此时 mysql 则是非严格模式,此时超过长度则自动截断 (不报错)
    • 注意
      • 默认底层存储是固定的长度 (不够则用空格补齐),但是查询数据时,会自动将空白去除
      • 如果想要保留空白,在 sql-mode中加入 PAD_CHAR_TO_FULL_LENGTH 即可,但是一般不加
      • 查看模式 sql-mode, 执行命令: show variables like ‘sql_mode’
      • 一般适用于: 固定长度的内容
  • varchar(m)

    • 变长字符串,m代表字符串的长度,最多可容纳 65535 个字节(和编码有关,utf8的编码一个字符占用三个字节)
    • 同上,超出后会报错,配置非严格后会自动截断

例如

-- 创建 表 L3
create table L3(id int not null primary key auto_incrementname varchar(5),depart char(3)
) default charset=utf8;insert into L3(name, depart) values("asssss", "s");
select id, name, depart, length(depart) from L3; -- 如果配置了 PAD_CHAR_TO_FULL_LENGTH 不足长度的,会补足
  • 严格模式和非严格模式的区别

    • 默认是严格模式
    • 可配置为非严格模式
  • text

    • text 数据类型用于保存变长的大字符串,可以组多到 65535 ( 2 16 2^{16} 216 - 1) 个字符
    • 一般情况下,长文本会用 text类型,例如,文章,新闻等
create table L4(id int not null primary key auto_increment,title varchar(128),content text
) default charset=utf8;
  • mediumtext
  • 长度 16777215 ( 2 24 − 1 2^{24} - 1 2241) 个字符
  • longtext
    • 长度 4294967295 or 4GB ( 2 32 2^{32} 232 - 1)

时间

  • datetime

    • YYYY-MM-DD HH:MM:SS (1000-01-01 00:00:00 ~ 9999-12-31 23:59:59)
  • timestamp

    • YYYY-MM-DD HH:MM:SS (1970-01-01 00:00:00 ~ 2037 年)
    • 对于 TIMESTAMP, 它把客户端插入的时间从当前时区转化为 UTC (世界标准时间) 进行存储
    • 查询时,将其又转化为客户端当前时区进行返回

举例

create table L5(id int not null primary key auto_increment,dt datetime,tt timestamp
) default charset=utf8;insert into L5(dt, tt) values("2023-12-12 12:12:12", "2023-12-12 12:12:12")select * from L5;
  • 从上面显示的时间是一样的

    • 从定义上看,只是时间范围不一样而已
    • 但是,实际上,timestamp 内部存储和展示和mysql的时区设置也有关系
    • show varibales like '%time_zone%'
    +------------------+--------+
    | Variable_name    | Value  |
    +------------------+--------+
    | system_time_zone | CST    |
    | time_zone        | SYSTEM |
    +------------------+--------+
    
    • CST 指的是mysql所在主机的系统时间,是中国标准时间的缩写
      • China Standard Time UT+8:00
      • 就是 东八区的时间
      • 用的最多
    • 在插入 timestamp 类型的数据时,会将数据当成你现在所在时区(东八区),内部会把这个时间转换成UTC时间进行存储
      • 再次进行查询的时候,会将UTC时间再转换成 东八区时间
    • 这里将时区改成 伦敦时间, set time_zone='+0:00',再次查询时
      • datetime的时间是不会变化的,但是 timestamp 会变成 伦敦时区的时间,也就是 - 8h
  • date

    • YYYY-MM-DD (1000-01-01 ~ 9999-12-31)
  • time

    • HH:MM:SS (-838:59:59 ~ 838: 59: 59)

其他数据类型

  • 其他数据类型: set, enum, TinyBlob, Blob, MediumBlob, LongBlob等
    • 详见官方文档 dev.mysql.com/doc/refman/5.7/en/data-types.html

相关文章:

MySQL中常用的数据类型

整型 int 有符号范围: -2147483648 ~ 2147483647 int unsigned 无符号范围: 0 ~ 4294967295 int(5) zerofill 仅用于显示,当不满足5位时,按照左边补0,例如: 00002满足时,正常显示 tinyint[(m)] [unsigned] [zerofill] 有符号&a…...

HTML+CSS+JS制作三款雪花酷炫特效

🎀效果展示 🎀代码展示 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html...

[C#]使用ONNXRuntime部署一种用于边缘检测的轻量级密集卷积神经网络LDC

源码地址&#xff1a; github.com/xavysp/LDC LDC: Lightweight Dense CNN for Edge Detection算法介绍&#xff1a; 由于深度学习方法的快速发展&#xff0c;近年来&#xff0c;用于执行图像边缘检测的卷积神经网络&#xff08;CNN&#xff09;模型爆炸性地传播。但边缘检测…...

ZigBee案例笔记 - 无线点灯

文章目录 无线点灯实验概述工程关键字工程文件夹介绍Basic RF软件设计框图简单说明工程操作Basic RF启动流程Basic RF发送流程Basic RF接收流程 无线点灯案例无线点灯现象 无线点灯实验概述 ZigBee无线点灯实验&#xff08;即Basic RF工程&#xff09;&#xff0c;由TI公司提供…...

Debezium日常分享系列之:向 Debezium 连接器发送信号

Debezium日常分享系列之&#xff1a;向 Debezium 连接器发送信号 一、概述二、激活源信号通道三、信令数据集合的结构四、创建信令数据集合五、激活kafka信号通道六、数据格式七、激活JMX信号通道八、自定义信令通道九、Debezium 核心模块依赖项十、部署自定义信令通道十一、信…...

《C#程序设计教程》总复习

一、单项选择题 1.short 类型的变量在内存中占据的位数是 ( )。 A. 8 B. 16 C. 32 D. 64 2.对千 int[ 4,5]型的数组 a, 数组元素 a[2,3] 存在数组第 ( )个位置上。 A. 11 B. 12 C. 14 D. 15 3.设 int 类型变量 x,y,z 的值分别是2、3、6 , 那么…...

为什么ChatGPT选择了SSE,而不是WebSocket?

我在探索ChatGPT的使用过程中&#xff0c;发现了一个有趣的现象&#xff1a;ChatGPT在实现流式返回的时候&#xff0c;选择了SSE&#xff08;Server-Sent Events&#xff09;&#xff0c;而非WebSocket。 那么问题来了&#xff1a;为什么ChatGPT选择了SSE&#xff0c;而不是We…...

appium入门基础

介绍 appium支持在不同平台的UI自动化&#xff0c;如web,移动端,桌面端等。还支持使用java&#xff0c;python&#xff0c;js等语言编写自动化代码。主要用于自动化测试脚本&#xff0c;省去重复的手动操作。 Appium官网 安装 首先必须环境有Node.js用于安装Appium。 总体来…...

jsp介绍

JSP 一种编写动态网页的语言&#xff0c;可以嵌入java代码和html代码&#xff0c;其底层本质上为servlet,html部分为输出流&#xff0c;编译为java文件 例如 源jsp文件 <% page contentType"text/html; charsetutf-8" language"java" pageEncoding&…...

Debian安装k8s记录

Debian安装k8s记录 在master和node上安装kube安装master安装node遇到的问题汇总1、kubelet.service报错 failed to pull image "registry.k8s.io/pause:3.6"2、node重启后报错&#xff0c;failed: open /run/flannel/subnet.env: no such file or directory 在master…...

第6课 用window API捕获麦克风数据并加入队列备用

今天是2024年1月1日&#xff0c;新年的第一缕阳光已经普照大地&#xff0c;祝愿看到这篇文章的所有程序员或程序爱好者都能在新的一年里持之以恒&#xff0c;事业有成。 今天也是我加入CSDN的第4100天&#xff0c;但回过头看一看&#xff0c;这么长的时间也没有在CSDN写下几篇…...

图片预览 element-plus 带页码

vue3、element-plus项目中&#xff0c;点击预览图片&#xff0c;并显示页码效果如图 安装 | Element Plus <div class"image__preview"><el-imagestyle"width: 100px; height: 100px":src"imgListArr[0]":zoom-rate"1.2":max…...

【小白专用】winform启动界面+登录窗口 更新2024.1.1

需求场景&#xff1a;先展示启动界面&#xff0c;然后打开登录界面&#xff0c;如果登录成功就跳转到主界面 首先在程序的入口路径加载启动界面&#xff0c;使用ShowDialog显示界面&#xff0c; 然后在启动界面中添加定时器&#xff0c;来实现显示一段时间的效果&#xff0c;等…...

自动化网络故障修复管理

什么是故障管理 故障管理是网络管理的组成部分&#xff0c;涉及检测、隔离和解决问题。如果实施得当&#xff0c;网络故障管理可以使连接、应用程序和服务保持在最佳水平&#xff0c;提供容错能力并最大限度地减少停机时间。专门为此目的设计的平台或工具称为故障管理系统。 …...

Git:常用命令(二)

查看提交历史 1 git log 撤消操作 任何时候&#xff0c;你都有可能需要撤消刚才所做的某些操作。接下来&#xff0c;我们会介绍一些基本的撤消操作相关的命令。请注意&#xff0c;有些操作并不总是可以撤消的&#xff0c;所以请务必谨慎小心&#xff0c;一旦失误&#xff0c…...

Oracle 12c rac 搭建 dg

环境 rac 环境 &#xff08;主&#xff09;byoradbrac 系统版本&#xff1a;Red Hat Enterprise Linux Server release 6.5 软件版本&#xff1a;Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit byoradb1&#xff1a;172.17.38.44 byoradb2&#xff1a;…...

Cisco模拟器-交换机端口的隔离

设计要求将某台交换机的端口划分在不同的VLAN。以实现连接在相同VLAN端口上的计算机可以通信&#xff0c;而连接在不同VLAN端口上的计算机无法通信的目的。 通过设计&#xff0c;一方面可以加强计算机网络的安全&#xff0c;另一方面通过隔绝不同VLAN间的广播包也可以提高网络…...

zdppy_api框架快速入门

概述 zdppy_api是一款为了快速开发而生的&#xff0c;基于异步的&#xff0c;使用简单的Python后端API接口开发框架。 本框架的目标是让Python后端开发变得越来越简单&#xff0c;直到发现原来还可以更简单&#xff01; 一切都是为了提高开发效率&#xff01;&#xff01;&…...

https证书配置过程

相关网址&#xff1a; FreeSSL首页 - FreeSSL.cn一个提供免费HTTPS证书申请的网站 ACME v2证书自动化快速入门 acme.sh简单教程-CSDN博客...

如何用C语言程序生成任意手性(即具有任意m和n值),任意长度的碳纳米管,并输出三维空间坐标呢?

如何用C语言程序生成任意手性&#xff08;即具有任意m和n值&#xff09;&#xff0c;任意长度的碳纳米管&#xff0c;并输出三维空间坐标呢&#xff1f; 生成任意手性、任意长度的碳纳米管可以使用 Chirality Vector 和 Unit Vector 的概念来表示。Chirality Vector (n, m) 描述…...

Kook Zimage真实幻想Turbo快速调试:找到属于你的幻想风格黄金参数组合

Kook Zimage真实幻想Turbo快速调试&#xff1a;找到属于你的幻想风格黄金参数组合 1. 认识Kook Zimage真实幻想Turbo Kook Zimage真实幻想Turbo是一款专为个人GPU设计的轻量化幻想风格图像生成系统。它基于Z-Image-Turbo极速文生图底座&#xff0c;通过独特的权重融合技术&am…...

汽车线控转向系统动力学法Carsim和Simulink联合仿真

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

OpenClaw对接nanobot镜像:低成本实现本地AI助手自动化任务

OpenClaw对接nanobot镜像&#xff1a;低成本实现本地AI助手自动化任务 1. 为什么选择OpenClawnanobot组合 去年夏天&#xff0c;当我第一次尝试用AI自动化处理日常工作时&#xff0c;发现大多数方案要么需要昂贵的云服务API调用&#xff0c;要么对硬件要求极高。直到遇到Open…...

OpenClaw浏览器自动化:GLM-4.7-Flash驱动的智能搜索与数据采集

OpenClaw浏览器自动化&#xff1a;GLM-4.7-Flash驱动的智能搜索与数据采集 1. 为什么需要浏览器自动化助手 上周我需要做一个小型市场调研&#xff0c;收集20家竞品的产品定价和功能列表。手动打开每个网站、复制粘贴数据、整理成表格&#xff0c;花了整整一个下午。这种重复…...

CAN总线波特率计算器工具开发指南(Python+PyQt5)

CAN总线波特率计算器工具开发指南&#xff08;PythonPyQt5&#xff09; 在汽车电子工程领域&#xff0c;CAN总线作为车载网络的骨干&#xff0c;其通信质量直接影响整车系统的稳定性。而波特率作为CAN通信的基础参数&#xff0c;其配置精度直接决定了总线能否正常工作。传统的手…...

PCB设计新手必看:从零开始掌握PCB设计全流程

1. PCB设计入门&#xff1a;从零开始的完整指南 刚接触PCB设计时&#xff0c;我完全被各种专业术语和复杂流程搞懵了。直到自己动手做了几块板子&#xff0c;才发现其实只要掌握正确的方法&#xff0c;PCB设计并没有想象中那么难。这篇文章就是把我踩过的坑和积累的经验&#x…...

2026 工程指南:为什么 AWS Bedrock + Claude 4.6 正在成为多 Agent 协作的底层首选?

进入 2026 年第一季度&#xff0c;大模型领域的竞争已经从“单纯的参数规模”转向了“端到端的工程效率”。随着 GPT-5.4 陷入推理成本高企的泥潭&#xff0c;Anthropic 联手亚马逊发布的 Claude 4.6 托管方案&#xff0c;正在通过 Amazon Bedrock 平台迅速收割企业级市场。作为…...

嵌入式串口协议中间件:轻量级SerHelp库设计与应用

1. 项目概述nahs-Bricks-Lib-SerHelp是 NAHS&#xff08;North American Home System&#xff09;生态中面向嵌入式砖块化&#xff08;Brick-based&#xff09;硬件平台的一套轻量级串行通信辅助库。该库不提供底层驱动实现&#xff0c;而是聚焦于串口协议层的工程化封装与通用…...

douyin-downloader:让每个人都能轻松获取无水印视频的技术利器

douyin-downloader&#xff1a;让每个人都能轻松获取无水印视频的技术利器 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 一、问题破局&#xff1a;揭开抖音内容获取的神秘面纱 1.1 内容获取的三大拦路虎 …...

计算机毕设 java 基于 BS 的驾校在线学习考试系统 SpringBoot 驾校在线学习与考试管理平台 JavaWeb 驾校理论学习与模拟考试系统

计算机毕设 java 基于 BS 的驾校在线学习考试系统 43i2x9&#xff0c;末尾的数字和英文也要加上 &#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享随着驾考需求的不断增长&#xff0c;传统驾校理…...