MySQL【知识改变命运】02

news2024/11/25 12:58:07

数据类型

  • 1:数据值类型
  • 2:字符串类型/二进制类型
  • 3:⽇期类型

前言:数据类型一共分为四类:数据值类型,字符串类型,二进制类型,日期类型。

1:数据值类型

类型大小说明
BIT[(M)]默认bit位置类型,M表示每个值的位数,取值范围1~64,如果省略M默认为1
TINYINT[(M)](tiny int)1byte取值范围是-2^7 - 2 ^ 7-1,无符号取值范围2^8-1
BOOL(bool)1byteTINYINT(1)的同义词。值为零被认为是假,⾮零值被认为是true
SMALLINT[(M)] (small int)2byte取值范围 -2^15 ~ 2^15-1 ,⽆符号取值范围 2^16-1 。
MEDIUMINT[(M)] (medium int)3byte取值范围 -2^23 ~ 2^23-1 ,⽆符号取值范围 2^24-1
INT[(M)]4byte取值范围 -2^31 ~ 2^31-1 ,⽆符号取值范围 2^32-1
INTEGER[(M)] (integer)4byteINT[(M)]的同义词
BIGINT[(M)]8byte取值范围 -2^63 ~ 2^63-1 ,⽆符号取值范围 2^64-1
FLOAT[(M,D)]4byte单精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后7位
DOUBLE[(M,D)]8byte双精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后15位。
DECIMAL[(M[,D])](decimal)动态不存在精度损失,M是总位数,D是⼩数点后的位数。DECIMAL的最⼤位数(M)为65,最⼤⼩数位数(D)为30。如果省略M,则默认为10,如果省略D,则默认为0。M中不计算⼩数点和负数的-号,如果D为0,则值没有⼩数点和⼩数部分。

注意的一些事项:
1:DECIMAL是实际如何存储数据的
在这里插入图片描述
比如这段数字,首先会统计这串数字大概有多少位,然后用两个int型把整数部描述清楚,然后用三个int型把小数部位描述清楚,然后最后的剩下的位数用较小的数据类型描述清楚
2:有符号的数值类型放不下数据,大概率无符号的数值类型也无法发下数据,需要提升数值类型

2:字符串类型/二进制类型

类型说明
CHAR[(M)]固定⻓度字符串, M 表⽰⻓度,以字符为单位,取值范围 0 ~ 255个字节 , M 省略则⻓度为 1
VARCHAR(M)(varchar)可变⻓度字符串, M 表⽰字符最⼤⻓度,的范围 0 ~ 65535个字节 ,有效字符个数取决于实际字符数和使⽤的字符集
TINYTEXT(tiny text)⼩⽂本类型,最⼤⻓度为 255 (2^8 - 1)个字节,有效字符个数取决于使⽤的字符集
TEXT[(M)]⽂本类型,最⼤⻓度为 65535 (2^16 - 1)个字节,有效字符个数取决于使⽤的字符集
MEDIUMTEXT中⽂本类型,最⼤⻓度为 16,777,215 (2^24 - 1)个字节,有效字符个数取决于使⽤的字符集
LONGTEXT⼤⽂本类型,最⼤⻓度为 4,294,967,295 即 4GB (2^32 - 1)个字节,有效字符个数取决于使⽤的字符集
BINARY[(M)] (binary)固定⻓度⼆进制字节,于CHAR类似,但存储的是⼆进制字节⽽不是字符串。 M 表⽰⻓度,以字节为单位,取值范围 0 ~ 255 , M 省略则⻓度为1
VARBINARY(M)(varbinary)可变⻓度⼆进制字节,于VARCHAR类似,但存储的是⼆进制字节⽽不是字符串。M 表⽰⻓度,以字节为单位
TINYBLOB⼩⼆进制字节类型,最⼤⻓度为 255 (2^8 - 1)个字节
BLOB[(M)] (blob)⼆进制字节类型,最⼤⻓度为 65535 (2^16 - 1)个字节
MEDIUMBLOB中⼆进制字节类型,最⼤⻓度为 16,777,215 (2^24 - 1)个字节
LONGBLOB⼤⼆进制字节类型,最⼤⻓度为 4,294,967,295 即 4GB (2^8 - 1)个字节
ENUM(‘value1’,‘value2’,…)枚举, 从值列表 ‘value1’,‘value2’ 或 ‘’(空字符串) 和 NULL 中选⼀个值,最多可以有 65,535 个不同的元素, 单个元素的最⼤⻓度是 M <= 255 或 (M x w) <= 1020 ,其中 M 是元素字符⻓度, w 是字符集中字符所需的最⼤字节数 , NUM的值在内部表⽰为整数
SET(‘value1’,‘value2’,…)• 集合• 从值列表 ‘value1’,‘value2’ 中选零个或多个值• 最多64个元素• 单个元素的最⼤⻓度是 M <= 255 或 (M x w) <= 1020 ,其中 M 是元素字符⻓度, w 是字符集中字符所需的最⼤字节数• SET值在内部表⽰为整数

注意的一些事项:
1:所用的字节数=字符格式*每个字符编码集表示一个字符所用的字节数
2:关于排序
• 字符串类型的列以字符为单位,并且可以单独指定字符集和排序规则,⽐如字符集是 utf8mb4 ,
排序规则是 utf8_0900_ai_ci
• ⼆进制的列以字节为单位,可以指定_bin结尾的排序规则,⽐如排序规则是 utf8mb4_bin ,这
时以⽐较和排序基于数字字符代码值
3:CHAR与VARCHAR的区别
• CHAR 固定⻓度的字符串, M 表⽰以字符为单位的列⻓度,取值范围 0 ~ 255 ,省略则⻓度为
1 ,在存储时总是⽤空格向右填充到指定的⻓度,获取列的值时会从尾部删除空格。允许定义
CHAR(0),此时列的值只能为NULL或空字符串,主要的⽬的是为了旧系兼容,⽐如类中必须有这个
属性,但不使⽤这个属性的值,也就是说值并没有意义,但列⼜不能没有。
• VARCHAR 可变⻓度字符串。 M 表⽰以字符为单位的最⼤列⻓度,取值范围 0 ~ 65,535 (在所
有列中共享),有效⻓度取决于实际字符数和使⽤的字符集,并且⽤额外的⼀或两个字节记录实际使
⽤的字节数,当实际字节数不超过 255 个字节⽤⼀个字节记录⻓度,超过 255 个字节时,使⽤两个
字节记录⻓度,获取列的值时不会从尾部删除空格,插⼊数据时会删除超出⻓度的空格。
4:如何选择CHAR与VARCHAR
• 如果数据确定⻓度都⼀样,就使⽤定⻓ CHAR 类型,⽐如:⾝份证,md5,学号,邮编。
• 如果数据⻓度有变化,就使⽤变⻓ VARCHAR , ⽐如:名字,地址,但要规划好⻓度,保证最⻓的字
符串能存的进去。
• 定⻓ CHAR 类型⽐较浪费磁盘空间,但是效率⾼。
• 变⻓ VARCHAR 类型⽐较节省磁盘空间,但是效率低。
• 定⻓ CHAR 类型会直接开辟好对应的存储空间。
• 变⻓ VARCHAR 类型在不超过定义⻓度范围的情况下⽤多少开辟多少存储空间
5:VARCHAR与TEXT的区别
• 容量⼤⼩: VARCHAR 最⼤⽀持 65535 个字节; TEXT 最⼤⽀持 65535 个字节,在指定TEXT
⻓度时,当超过 65535 时⾃动转换为 MEDIUMTEXT 类型,当超过 16,777,215 时⾃动转换为
LONGTEXT 类型
• 存储位置: VARCHAR 类型的列实际内容⼩于768个字节时存在当前⾏,⼤于768时存在溢出⻚,
当前⾏保存溢出⻚的地址; TEXT 类型的列整体保存在溢出⻚,当前⾏只保存溢出⻚地址
• 查询性能:对于频繁查询的 VARCHAR 列可以创建索引,提升查询性能; TEXT 类型的列⽆法直
接创建普通索引,但可以使⽤ FULLTEXT 索引,由于索引的⽀持和存储位置的不同, VARCHAR
列的性能⾼于 TEXT 类型的列
• 适⽤场景:如果存储的数据⻓度较⼩且需要创建索引进⾏检索,可以选择 VARCHAR 类型,⽐如姓
名,⽤⼾,邮箱等;如果存储的数据⻓度较⼤且不需要频繁以该列为条件进⾏检索可以选择 TEXT
类型,⽐如⽂章内容等

3:⽇期类型

类型大小说明0值
TIMESTAMP[(fsp)] (timestamp)4bytes• 时间戳类型 • ⽀持范围 1970-01-01 00:00:01.000000 ~ 20388-01-19 03:14:07.499999 • 0值为 0000-00-00 00:00:000000-00-00 00:00:00
DATETIME[(fsp)]8bytes⽇期类型和时间类型的组合 • ⽀持范围 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.499999 • 显⽰格式为 YYYY-MM-DD hh:mm:ss[.fraction] • 0值为 0000-00-00 00:00:000000-00-00 00:00:00
DATE3bytes⽇期类型 • ⽀持范围 1000-01-01 ~ 9999-12-31 • 显⽰格式为 YYYY-MM-DD • 0值为 0000-00-00
TIME[(fsp)]3bytes• 时间类型• ⽀持范围 -838:59:59.000000 ~ 838:59:59.000000• 显⽰格式为 hh:mm:ss[.fraction]• 0值为 00:00:0000:00:00
YEAR[(4)]1byte4位格式的年份 • ⽀持范围 1901 ~ 2155 • 显⽰格式为 YYYY • 0值为 00
注意事项:
fsp 为可选设置,⽤来指定⼩数秒精度,范围从0到6,值为0表⽰没有⼩数部分,如果省略,默认精度为0
• CURRENT_DATE 和 CURRENT_DATE() 是 CURDATE() 的同义词⽤于获取当前⽇期
• CURRENT_TIME 和 CURRENT_TIME([fsp]) 是 CURTIME() 的同义词⽤于获取当前时间
• CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP([fsp]) 是 NOW() 的同义词⽤于获取当前⽇期和时间

在这里插入图片描述

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

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

相关文章

Spring Boot 集成 Flowable UI 实现请假流程 Demo

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 在现代企业应用中&#xff0c;工作流管理是一个至关重要的部分。通过使用Spring Boot和Flowable&#xff0c;可以方便地构建和管理工作流。本文将详细介绍如何在Spring Boot项目中集成Flowable UI&#xff0c…

【Java】—— 泛型:泛型的理解及其在集合(List,Set)、比较器(Comparator)中的使用

目录 1. 泛型概述 1.1 生活中的例子 1.2 泛型的引入 2. 使用泛型举例 2.1 集合中使用泛型 2.1.1 举例 2.1.2 练习 2.2 比较器中使用泛型 2.2.1 举例 2.2.2 练习 1. 泛型概述 1.1 生活中的例子 举例1&#xff1a;中药店&#xff0c;每个抽屉外面贴着标签 举例2&…

Chromium 添加书签功能浅析c++

1、在点击添加书签时候此UI控制逻辑代码在 chrome\browser\ui\views\bookmarks\bookmark_bar_view.cc chrome\browser\ui\views\bookmarks\bookmark_bar_view.h 可以在此看到完成 移除 按钮逻辑&#xff0c;以及书签监听事件等。。。 // Implementation for BookmarkNodeAdd…

FastAdmin Apache下设置伪静态

FastAdmin Apache下设置伪静态 一、引言 FastAdmin 是一个基于ThinkPHP和Bootstrap框架开发的快速后台开发框架&#xff0c;它以其简洁、高效、易于扩展的特点&#xff0c;广受开发者的喜爱。在部署FastAdmin项目时&#xff0c;为了提高访问速度和用户体验&#xff0c;我们通…

VLAN:虚拟局域网

VLAN:虚拟局域网 交换机和路由器协同工作后&#xff0c;将原先的一个广播域&#xff0c;逻辑上&#xff0c;切分为多个广播域。 第一步:创建VLAN [SW1]dispaly vlan 查询vlan VID&#xff08;VLAN ID&#xff09;:用来区分和标定不同的vlan 由12位二进制构成 范围: 0-4…

[3D打印]拓竹切片软件Bambu Studio使用

Bambu Studio 界面功能 材料 不同材料 一般使用的是PLA, PETG, ABS PLA(57℃), PETG(66℃)的强度以及耐高温的能力比较差, ABS有味道, 不环保但是强度比较高(85℃) TPU: 不支持AMS, 数字小硬度小, 打印出来有亮光 TPE: 和上面一样, 打印出来是哑光的, 但是打印的难度比较…

物联网智能项目(含案例说明)

物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;智能项目是指利用物联网技术将各种物理设备、传感器、软件、网络等连接起来&#xff0c;实现设备之间的互联互通&#xff0c;并通过数据采集、传输、处理和分析&#xff0c;实现智能化管理和控制的项目。以…

Docker_速通_01

Docker Docker笔记连接相关概念如下安装运行命令 命令镜像容器run细节根据容器制作新镜像对正在运行容器的修改,保存为镜像保存成文件加载文件成镜像 分享镜像登录修改名字 docker tag推送镜像 目录挂载卷映射创建卷 容器之间直接访问查看容器细节容器内部互相访问自定义网络创…

[NeurIPS 2022] STaR: Bootstrapping Reasoning With Reasoning

Contents IntroductionMethodExperimentsReferences Introduction CoT 推理可以有效提升 LLM 推理能力&#xff0c;但 few-shot prompting 无法发挥 CoT 的全部潜力&#xff0c;训练能够生成中间推理步骤 (i.e., rationale) 的 LLM 又需要大量人工标注 rationale&#xff0c;为…

Python 从入门到实战35(进程-multiprocessing模块)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了turtle库绘制图画操作的相关知识。今天学习一下…

anaconda创建环境无法定位到正确的Python解释器版本

一、概述 因为需要使用到torch其对Python的版本有些限制&#xff0c;我使用anacoda创建了Python版本3.8的环境&#xff0c;出现了一些问题&#xff0c;具体问题在下面进行分析。 二、具体分析 &#xff08;一&#xff09;问题概述 如图所示&#xff0c;在新创建的环境中&…

跟《经济学人》学英文:2024年10月05日这期 Dismantling Google is a terrible idea

Dismantling Google is a terrible idea Despite its appeal as a political rallying cry dismantling: &#xff08;枪支&#xff09;分解&#xff1b;解散&#xff1b;拆除&#xff1b;&#xff08;dismantle的现在分词&#xff09; appeal&#xff1a;吸引力 rallying …

Apollo9.0 Planning2.0决策规划算法代码详细解析 (5): OnLanePlanning::Init()

&#x1f31f; 面向自动驾驶规划算法工程师的专属指南 &#x1f31f; 欢迎来到《Apollo9.0 Planning2.0决策规划算法代码详细解析》专栏&#xff01;本专栏专为自动驾驶规划算法工程师量身打造&#xff0c;旨在通过深入剖析Apollo9.0开源自动驾驶软件栈中的Planning2.0模块&am…

nginx反向代理,负载均衡,HTTP配置简述(说人话)

文章目录 反向代理正向代理反向代理普通反向代理分析解释 四层反向代理 负载均衡HTTPS配置基本配置Nginx 账户认证功能 反向代理 正向代理 所谓的正向代理&#xff0c;通俗来说就是&#xff0c;正向代理是一个位于客户端和目标服务器之间的服务器&#xff0c;它代表客户端向目…

Python 工具库每日推荐 【NumPy】

文章目录 引言Python科学计算库的重要性今日推荐:NumPy工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:图像处理案例分析高级特性广播机制高级索引通用函数(ufunc)性能优化技巧扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeS…

哪个牌子充电宝好用性价比又高?推荐5款2024年性价比充电宝!

在充电宝的世界里&#xff0c;技术的进步日新月异&#xff0c;它们早已超越了简单的便携充电功能&#xff0c;成为了我们日常生活中不可或缺的移动电源。然而&#xff0c;随着市场的繁荣&#xff0c;选择一款可靠、安全的充电宝变得愈发困难。许多品牌为了降低成本&#xff0c;…

【EXCEL数据处理】000017 案例 Match和Index函数。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000016 案例 Match和Index函数。使用的软件&#xff…

静态路由故障排查

1、开始 静态路由是否能够加入到全局路由表中并成功指导报文正确转发, 取决于其出接口状态与下一跳可达性&#xff0c;以及相关检测联动的状态等方面。因此静态路由定位故障的思路是: 首先查看全局路由表中是否有该静态路由&#xff1b;然后据此相应地检查出接口状态、下一跳可…

融媒体服务中PBO进行多重采样抗锯齿(MSAA)

如果不理解pbo 那先去了解概念&#xff0c;在此不再解释&#xff0c;这是我为了做融合服务器viewpointserver做的一部分工作&#xff0c;融合服务器的功能是将三维和流媒体&#xff0c;AI融合在一起&#xff0c;viewpointserver会直接读取三维工程的文件&#xff0c;同时融合rt…