史上最全的mysql数据类型汇总(下)

史上最全的Mysql索引教程 索引是数据库中用来提高数据检索效率的数据结构。它类似于书籍的目录,可以帮助用户快速找到所需的数据,而不必扫描整个数据集。在数据库系统中,索引可以显著提高查询性能。所谓的存储引擎,说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MSQL存储引擎有 MyISAM、InnoDB、Memory,其中 InnoDB 是在 MySQL 5.5 之后成为默认的存储引擎。以下是简化版的mysql的结构图,其中,索引和数据是存储在存储引擎中的。 阅读详情

接着上文继续来梳理,上文我们写到了日期与时间类型中的​ ​time​ ​​类型,然后我们接着来写日期与时间类型中的​ ​date​ ​类型。

date类型

​ ​date​ ​类型用在仅需要日期值时,没有时间部分,在存储时需要3字节。

日期格式为​ ​YYYY-MM-DD​ ​​。其中​ ​YYYY​ ​​表示年,​ ​MM​ ​​表示月,​ ​DD​ ​表示日。

(1)以 'YYYY-MM-DD' 或者 'YYYYMMDD' 字符串格式表示的日期,取值范围为 '1000-01-01' ~ '9999-12-3' ;例如输入'2022-12-31'或者‘20221231’,插入数据库的日期都为2022-12-31;

(2)以‘YY-MM-DD’或者‘YYMMDD’字符串格式表示的日期,在这里‘YY’表示两位的年值。包含两位年值的日期会令人模糊,因为不知道世纪。​ ​mysql​ ​​使用以下规则解释两位年值:‘00~69’范围的年值转换为​ ​2000-2069​ ​​,'70-99'范围的年值转换为​ ​1970~1999​ ​。

(3)以YY-MM-DD或者YYMMDD数字格式表示的日期,与前面相似,00~69范围的年值转换为2000~2069,70~99范围的年值转换为1970~1999。

(4)使用​ ​CURRENT_DATE​ ​​或者​ ​NOW()​ ​,插入当前系统日期。

举个例子:

创建一个名为​ ​yunweijia_4​ ​的数据表;

mysql> create table yunweijia_4 (d date);
Query OK, 0 rows affected (0.03 sec)

mysql>

向表中插入一些值;

mysql> insert into yunweijia_4 values ('1999-09-09'), ('19990909'), ('20221010');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

然后查看下结果:

mysql> select * from yunweijia_4;
+------------+
| d          |
+------------+
| 1999-09-09 |
| 1999-09-09 |
| 2022-10-10 |
+------------+
3 rows in set (0.00 sec)

mysql>

再举个例子:

删除数据表​ ​yunweijia_4​ ​中的数据;

delete from yunweijia_4;

在表中插入数据;

mysql> insert into yunweijia_4 values ('99-09-09'), ('990909'), ('000101'), ('111111');
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql>

查看下结果:

mysql> select * from yunweijia_4;
+------------+
| d          |
+------------+
| 1999-09-09 |
| 1999-09-09 |
| 2000-01-01 |
| 2011-11-11 |
+------------+
4 rows in set (0.00 sec)

mysql>

又举个例子:

老规矩,先删除表中的数据

mysql> delete from yunweijia_4;
Query OK, 4 rows affected (0.01 sec)

mysql>

向表中插入数据;

mysql> insert into yunweijia_4 values (19990909), (990909), (000101), (111111);
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql>

查看下结果:

mysql> select * from yunweijia_4;
+------------+
| d          |
+------------+
| 1999-09-09 |
| 1999-09-09 |
| 2000-01-01 |
| 2011-11-11 |
+------------+
4 rows in set (0.00 sec)

mysql>

又又举个例子:

删除表中数据;

mysql> delete from yunweijia_4;
Query OK, 4 rows affected (0.01 sec)

mysql>

插入系统当前时间:

mysql> insert into yunweijia_4 values (current_date()), (now());
Query OK, 2 rows affected, 1 warning (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 1

mysql>

查看结果:

mysql> select * from yunweijia_4;
+------------+
| d          |
+------------+
| 2022-07-09 |
| 2022-07-09 |
+------------+
2 rows in set (0.00 sec)

mysql>

​ ​CURRENT_DATE​ ​​只返回当前日期值,不包括时间部分;​ ​NOW()​ ​函数返回日期和时间值,在保存到数据库时,只保留了其日期部分。

datetime类型

​ ​DATETIME​ ​​类型用于需要同时包含日期和时间信息的值,在存储时需要8字节。日期格式为‘YYYY-MM-DD HH:MM:SS’。其中,​ ​YYYY​ ​​表示年,​ ​MM​ ​​表示月,​ ​DD​ ​​表示日,​ ​HH​ ​​表示小时,​ ​MM​ ​​表示分钟,​ ​SS​ ​​表示秒。在给​ ​DATETIME​ ​​类型的字段赋值时,可以使用字符串类型或者数字类型的数据插入,只要符合​ ​DATETIME​ ​的日期格式即可。

(1)以‘YYYY-MM-DD HH:MM:SS’或者‘YYYYMMDDHHMMSS’字符串格式表示的值,取值范围为‘1000-01-01 00:00:00’~‘9999-12-3 23:59:59’;

(2)以‘YY-MM-DD HH:MM:SS’或者‘YYMMDDHHMMSS’字符串格式表示的日期,在这里YY表示两位的年值。与前面相同,‘00~69’范围的年值转换为‘2000~2069’,‘70~99’范围的年值转换为‘1970~1999’。

(3)以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示的日期和时间。

TIMESTAMP类型

​ ​TIMESTAMP​ ​​的显示格式与​ ​DATETIME​ ​​相同,显示宽度固定在19个字符,日期格式为​ ​YYYY-MM-DD HH:MM:SS​ ​​,在存储时需要4字节。​ ​TIMESTAMP​ ​​列的取值范围小于​ ​DATETIME​ ​​的取值范围,为‘1970-01-01 00:00:01’UTC~‘2038-01-1903:14:07’UTC。其中,​ ​UTC(Coordinated Universal Time)​ ​为世界标准时间,因此在插入数据时,要保证在合法的取值范围内。

注意点:

由于​ ​datetime​ ​​类型和​ ​TIMESTAMP​ ​和上面的用法大差不差,所以这里就不再一一举例了。

文本字符串类型

字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其他数据,比如图片和声音的二进制数据。

​ ​mysql​ ​支持两类字符串数据:文本字符串和二进制字符串;

文本字符串可以进行区分或者不区分大小写的串比较,还可以进行模式匹配查找。

在​ ​mysql​ ​中,文本字符串类型指的是:

  • CHAR
  • VARCHAR
  • TEXT
  • ENUM
  • SET

详细可以看下表:

​ ​VARCHAR​ ​​和​ ​TEXT​ ​​类型与​ ​BLOB​ ​都是 变长类型 ,其存储需求 取决于列值的实际长度(在前面的表格中用L表示),而不是取决于类型的最大可能尺寸 。

例如,一个​ ​VARCHAR(10)​ ​列能保存最大长度为10个字符的字符串,实际的存储需要是字符串的长度L加上1字节(记录字符串的长度)。对于字符“abcd”,L是4而存储要求是5字节。

CHAR和VARCHAR类型

​ ​CHAR(M)​ ​​为固定长度字符串,在定义时指定字符串列长。当保存时在右侧填充空格,以达到指定的长度。​ ​M​ ​​表示列长度,​ ​M​ ​的范围是0~255个字符。

例如:​ ​CAHR(4)​ ​​定义了一个固定长度的字符串列,其包含的字符个数最大为4。当检索到​ ​CHAR​ ​值时,尾部的空格将被删除。

​ ​VARCHAR(M)​ ​​是长度可变的字符串,​ ​M​ ​​表示最大的列长度。​ ​M​ ​​的范围是0~65535。​ ​VARCHAR​ ​的最大实际长度由最长的行的大小和使用的字符集确定,而其实际占用的空间为字符串的实际长度加1。

例如:​ ​VARCAHR(50)​ ​​定义了一个最大长度为50的字符串,如果插入的字符串只有10个字符,则实际存储的字符串为10个字符和一个字符串结束字符。​ ​VARCHAR​ ​在对应值保存和检索时尾部的空格仍保留。

我们看下​ ​CHAR(4)​ ​​和​ ​VARCHAR(4)​ ​存储的区别是什么:

从上图的对比结果可以看到,​ ​CHAR(4)​ ​​定义了固定长度为4的列,不管存入的数据长度为多少,所占用的空间均为4个字节;​ ​VARCHAR(4)​ ​定义的列所占的字节数为实际长度加1;

但是查询时是不同的,我们可以通过下面的例子来看下;

举个例子:

创建一个名为​ ​yunweijia_5​ ​的数据表;

mysql> create table yunweijia_5 (ch char(4), var varchar(4));
Query OK, 0 rows affected (0.03 sec)

mysql>

在这个数据表中插入一些数据;

mysql> insert into yunweijia_5 values ('ab', 'ab');
Query OK, 1 row affected (0.01 sec)

mysql>

查看下结果:

mysql> select concat ('(', ch, ')'), concat ('(', var, ')') from yunweijia_5;
+-----------------------+------------------------+
| concat ('(', ch, ')') | concat ('(', var, ')') |
+-----------------------+------------------------+
| (abc)                 | (abc)                  |
+-----------------------+------------------------+
1 row in set (0.00 sec)

mysql>

这里有问题,文档上面介绍的是,​ ​char​ ​​在保存的时候会将空格删除,​ ​varchar​ ​​会保留末尾的空格,但是从自身实践来看的话,不论是​ ​char​ ​​还是​ ​varchar​ ​都将末尾的空格给删除了。

TEXT类型

​ ​TEXT​ ​列保存非二进制字符串,如文章内容、评论等。

当保存或查询​ ​TEXT​ ​列的值时,不删除尾部空格。

史上最全MySQL各种锁详解 MySQL的锁定主要分为全局锁、表锁和行锁。现在我们来看看MySQL全局锁。MySQL全局锁是针对整个数据库的锁。最常用的全局锁是读锁和写锁。读锁(共享锁):它阻止其他用户更新数据,但允许他们读取数据。这在你需要在一段时间内保持数据一致性时很有用。写锁(排他锁):它阻止其他用户读取和更新数据。这在你需要修改一些大量的数据,并且不希望其他用户在这段时间内干扰时很有用。MySQL全局锁的典型使用场景是,进行一些需要确保整个数据库一致性的操作,例如全库备份、全库导出等。在MySQL中,可以使用。 阅读详情

相关推荐

史上最简单的 MySQL 教程

史上最简单的 MySQL 教程 数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 在这里,作者将用最简单的语言详细讲述 MyS...

安正勋的博客 5527

MySQL数据库知识总结大全

mysql 入门知识大全

m0_37449634的博客 889

【MySQL】史上最全的MySQL高性能优化总结

本人之前写过许多关于MySQL性能优化的文章,在这里会将它们做一个大串讲~ 这里主要是讲解MySQL底层数据结构,索引优化,事务及其相关特性,MVCC机制,BufferPool缓存机制等内容。

金鳞踏雨 1776

【Mysql】数据查询大全

学习mysql过程中的笔记

weixin_54799594的博客 926

AI智能体赋能Cypress:自动化前端测试的新范式

自动化测试是现代软件工程保障质量的核心实践,其原理是通过脚本模拟用户操作,对软件功能进行验证。随着大语言模型(LLM)和智能体(Agent)技术的发展,测试自动化正迈向智能化新阶段。智能体能够理解自然语言描述的测试需求,并自主规划、执行测试步骤,这为应对前端UI频繁变更、测试用例维护成本高等挑战提供了新思路。在工程实践中,将Cypress这一流行的前端测试框架封装为智能体可调用的标准化技能(Skill),是实现这一愿景的关键。通过设计清晰的交互协议和状态管理机制,智能体可以像人类测试工程师一样“感知”页面状

weixin_33726318的博客 687

不止于使能:用汇川PLC功能块封装,实现伺服轴状态管理与安全逻辑

本文深入探讨了汇川PLC功能块封装在伺服轴控中的应用,详细介绍了如何通过高级封装技术实现伺服轴的状态管理与安全逻辑。文章涵盖了从基础使能到全生命周期监控的进化,多轴协同的实例化管理策略,以及安全逻辑的防御性编程技巧,为工业自动化领域的工程师提供了实用的解决方案和最佳实践。

weixin_28684825的博客 273

MySQL数据库——常用数据库大汇总(附带优缺点)

随着数字化时代的到来,数据库已经成为了一个不可或缺的工具,被广泛应用于各个领域中。随着数据库应用的不断扩展和发展,各种类型的数据库也随之涌现。在这篇文章中,我们将讨论一些常用的数据库,并探讨它们的优缺点。

Itmastergo的博客 1455

深信服AF设置安全防护策略

防火墙设置安全防护策略,禁止用户访问指定网站

m0_64423407的博客 4844

史上最全的mysql数据类型汇总-(上)

mysql支持多种数据类型,主要有数值类型、日期/时间类型以及字符串类型。

ouyangzhenxin的博客 776

【异常】Openclaw Gateway进程异常停止问题分析与解决方案

本文分析了Gateway服务异常停止的问题,提出了三种解决方案。核心问题是缺乏进程守护和自动恢复机制,导致服务崩溃后无法自行重启。推荐方案是使用PM2进程管理工具(方案1),提供进程监控、自动重启和开机自启功能。替代方案包括自定义守护脚本(方案2)和supervisord管理(方案3)。这些方案都能有效解决当前服务脆弱性问题,显著提升服务可用性,其中PM2方案成熟度高、配置简单,是首选解决方案。实施后可将服务从人工干预转变为自动恢复,确保业务连续性。

奶爸的编程之路,也就一周冷个三天 459

Unity小游戏接入抖音敏感词检测

摘要: 本文介绍了Unity小游戏接入抖音敏感词检测的方法。抖音官方提供了两种API:SensitiveWordCheck用于检测敏感词,ReplaceSensitiveWords用于替换敏感词。此外,若使用键盘输入事件,可通过tt.onKeyboardComplete监听回调,平台会自动屏蔽敏感词(替换为*)。接入官方字库可有效避免审核驳回,适用于小游戏中的用户输入功能(如起名系统)。附官方文档链接及参数说明。

类人_猿的博客 4596

mysql 数据类型大全_常用的MySQL数据类型汇总

常用的MySQL数据类型汇总。无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用数据类型有充分的认识。下面我就将我的一点心得写出来跟大家分享。MySQL数据类型一、数字类型数字类型按照我的分类方法分为三类:整数类、小数类和数字类。我所谓的“数字类”,就是指DECIMAL和NUMERIC,它们是同一种类型。它严格的说不是一...

weixin_36184718的博客 900

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6814

【史上最全MYSQL总结】MySQL超详细笔记

本文主要介绍了mysql是个啥、他的分类、SQL命令,MySQL的安装注意事项、分类以及在MySQL中常用的命令,包括:数据查询(基本查询、排序查询、条件查询、时间查询、字符串查询、聚合函数、分组查询、分组过滤、限定查询、子查询、合并查询、表连接查询)、DML操作(增删改)、库表操作、约束、事务、权限管理、视图等等;

Willing卡卡的博客 7099

微调大模型如何准备数据集——常用数据集,Alpaca和ShareGPT

在大模型微调中,我们一般使用Alpaca 和 ShareGPT和两种格式的数据集。

Science prince的博客 1097

OpenMM | PDBFixer 用于蛋白质预处理

PDBFixer 用于蛋白质预处理

DrugOne 3007

史上最全MySql数据库

第一章 数据库概述 1.1 数据库概述 DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,例如建立、使用和维护数据库。 DB:数据库(Database) SQL:结构化查询语言,(Structure Query Language),专门用来操作/访问数据库的通用语言。 如果把数据库比作盘子,那数据就是盘子里的菜,SQL则是你的筷子。 数据库类型:数据库经过几十年的发展,出现了多种类型。目前最常见的数据库模型主要是:关系型数据库和(noSQL)非

IT二叔的博客 5930

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

MySql史上最全总结

MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列) ❝ 写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了。 个人建议把面试题看作是费曼学习法中的回顾、简化的环节,准备面试的时候,跟着题目先自己讲给自己听,看看自己会满意吗,不满意就继续学习这个点,如此反复,好的offer离你不远的,奥利给 一、MySQL架构 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并

cainno的博客 2755

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最全MySQL数据类型详解

一、概述 1、MySQL中的数据类型 2、常见数据类型的属性 二、各种数据类型精讲 1、整数类型 1.1 整数类型介绍 整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。它们的区别如下表所示: 1.2 可选属性 1.2.1 M M 表示显示宽度,M的取值范围是(0, 255)。例如,int(5):当数据宽度小于5位的时候在数字前面需要用 字符填满宽度。该项功能需要配合“ ZEROFILL ”使用,表示用“0”填满宽度,否则指定

qq_44111805的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MySQL史上最全总结

MySQL学习笔记,最全版

Stringzhua的博客 1900

史上最全的MySQL优化手册

MySQL数据库优化大全 (注:文档参考高性能MySQL,SQL手册,官方文档 [提前声明] 文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章 写作不易,转载请注明,谢谢! 大数据代码案例地址: https://github.com/Mydreamandreality/sparkResearch 大纲 MySQL中基础架构的优化 MySQL中的并发控制(锁) MySQL中数据类型的优化 MySQL中索引的优化 MySQL中查询的优化 可扩展的MySQL 优化指标 如何确认服务

只有变秃,才能更强 1619

史上最全的mysql基础教程

史上最全的mysql基础教程

CurtainOfNight的博客 388

【2025史上最全免费分享Mysql】120道Mysql面试题汇总(含答案),超详细,速成Mysql!

例如,使用ROW_NUMBER()窗口函数为每个部门的员工分配一个唯一的序号:sql SELECT department_id, employee_id, ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY employee_id) AS row_num FROM employees;处理大量的DELETE操作时,应考虑以下方法以提高效率并减少对性能的影响:- 分批删除:将大型删除操作分成多个小批量操作,以减少对数据库性能的影响。

shandongjiushen的博客 771
上一篇: 史上最全的mysql数据类型汇总-(上)
下一篇: 聊聊10种延迟任务
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值