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 224−1) 个字符
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
源码地址: github.com/xavysp/LDC LDC: Lightweight Dense CNN for Edge Detection算法介绍: 由于深度学习方法的快速发展,近年来,用于执行图像边缘检测的卷积神经网络(CNN)模型爆炸性地传播。但边缘检测…...

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

Debezium日常分享系列之:向 Debezium 连接器发送信号
Debezium日常分享系列之:向 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的使用过程中,发现了一个有趣的现象:ChatGPT在实现流式返回的时候,选择了SSE(Server-Sent Events),而非WebSocket。 那么问题来了:为什么ChatGPT选择了SSE,而不是We…...

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

jsp介绍
JSP 一种编写动态网页的语言,可以嵌入java代码和html代码,其底层本质上为servlet,html部分为输出流,编译为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重启后报错,failed: open /run/flannel/subnet.env: no such file or directory 在master…...

第6课 用window API捕获麦克风数据并加入队列备用
今天是2024年1月1日,新年的第一缕阳光已经普照大地,祝愿看到这篇文章的所有程序员或程序爱好者都能在新的一年里持之以恒,事业有成。 今天也是我加入CSDN的第4100天,但回过头看一看,这么长的时间也没有在CSDN写下几篇…...

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

【小白专用】winform启动界面+登录窗口 更新2024.1.1
需求场景:先展示启动界面,然后打开登录界面,如果登录成功就跳转到主界面 首先在程序的入口路径加载启动界面,使用ShowDialog显示界面, 然后在启动界面中添加定时器,来实现显示一段时间的效果,等…...

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

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

Oracle 12c rac 搭建 dg
环境 rac 环境 (主)byoradbrac 系统版本:Red Hat Enterprise Linux Server release 6.5 软件版本:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit byoradb1:172.17.38.44 byoradb2:…...

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

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

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

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

C++每日一练(8):图像相似度
题目描述 给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。 说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。…...

C++面试宝典第12题:数组元素相除
题目 从控制台输入若干个整数作为数组,将数组中每一个元素除以第一个元素的结果,作为新的数组元素值。比如:可以先输入3,作为数组元素的个数;然后输入3个整数,作为数组元素的值。 解析 这道题本身并不复杂,但里面隐藏了不少“坑点”和“雷区”,主要考察应聘者全面思考问…...

oCPC实践录 | 目标ROI的出价与转化回传调控算法
这篇文章我们聊聊广告主在oCPC下,怎么调控自己的出价或者回传转化优化自己的ROI。 ROI是广告主最关心的指标了,根据oCPC出价的基本原理ocpc_bid pcvr * given_cpa * k, 广告主在整个出价中有两个可以控制的变量来影响出价,一个是直接的give…...

百倍量化之Dbcd-v2中性策略
Dbcd-v2中性策略 1. 指标含义 该指标主要是计算偏置的因子,并根据偏置的平均来分析这个股票的稳定性。相比于v1,策略是更换了dbcd的计算方式 第一步主要操作就是计算当前值和前段时间的平均值的偏置 ma = bt.indicators.SimpleMovingAverage(self.data, period=self.p.peri…...

系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:函数属性]
分类目录:《系统学习Python》总目录 如果我们没有在使用Python3.X并因此无法利用一条nonlocal语句,或者我们希望代码具有可移植性,能在Python3.X和Python2.X上同时工作一一我们仍然能够针对某些可改变的状态使用函数属性来避免使用全局变量和…...

逻辑卷学习后续----------缩容
一、缩容:缩减大小 ext4可以 , xfs无法缩减,缩减会影响业务 1.解挂载 2.检查文件系统完整性 3.缩减文件系统 4.缩减逻辑卷上下一致 5.再挂载回去 添加磁盘 文件系统只能装ext4 缩减文件系统 resize2fs 挂载失败需要重新安装文件系统…...

15-网络安全框架及模型-BLP机密性模型
目录 BLP机密性模型 1 背景概述 2 模型原理 3 主要特性 4 优势和局限性 5 困难和挑战 6 应用场景 7 应用案例 BLP机密性模型 1 背景概述 BLP模型,全称为Bell-LaPadula模型,是在1973年由D.Bell和J.LaPadula在《Mathematical foundations and mod…...

[C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
源码地址: github地址:https://github.com/Ahmednull/L2CS-Net L2CS-Net介绍: 眼睛注视(eye gaze) 是在各种应用中使用的基本线索之一。 它表示用户在人机交互和开放对话系统中的参与程度。此外,它还被用…...

[2024区块链开发入门指引] - 比特币与区块链诞生
一份为小白用户准备的免费区块链基础教程 工欲善其事,必先利其器 Web3开发中,各种工具、教程、社区、语言框架.。。。 种类繁多,是否有一个包罗万象的工具专注与Web3开发和相关资讯能毕其功于一役? 参见另一篇博文👉 2024最全面…...

【大数据面试知识点】Spark中的累加器
Spark累加器 累加器用来把Executor端变量信息聚合到Driver端,在driver程序中定义的变量,在Executor端的每个task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回driver端进行merge。 累加器一般是放在行动算子…...