[MySQL | 二、基本数据类型]
基本数据类型
- 一、数值类型
- 举例表结构
- 1. 整数类型
- zerofill属性 与 int(n) 中 n 的关系
- 2.bit类型
- 3. 小数类型
- float类型
- decimal类型
- 二、字符串类型
- 1. char
- 2. varchar
- 如何选择定长或变长字符串?
- 3. 日期时间类型(date datetime timestamp)
- 4. enum枚举类型
- 5. set多选类型
一、数值类型
举例表结构
| 字段名称 | 字段类型 | 是否NULL | 键值 | 默认值 | 附加信息 |
|---|---|---|---|---|---|
| Field | Type | Null | Key | Default | Extra |
| id | int | No | UNI(唯一键) | Null | auto_increment |
| name | verchar(10) | No | PRI(主键) | Null | |
| gender | enum | No | man | ||
| age | tinyint | Yes | Null | ||
| telphone | int | Yes | Null | ||
| home_id | int | yes | MUL(外键) | Null |
1. 整数类型
| 类型 | 字节 | 数值范围(带符号) | 不带符号 |
|---|---|---|---|
| tinyint | 1 | -128 ~ 127 | 0 ~ 255 |
| smallint | 2 | -32768 ~ 32767 | 0 ~ 65535 |
| mediumint | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
| int | 4 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
| bigint | 8 | -9223372036854775808 ~ 9223372036854775807 | 0 ~ 2^(8 * 8) - 1 |
- 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。
- 可以通过
unsigned来说明某个字段是无符号的 - 无符号案例
mysql> create table tt2(num tinyint unsigned);
mysql> insert into tt2 values(-1); -- 无符号,范围是: 0 - 255
ERROR 1264 (22003): Out of range value for column 'num' at row 1
mysql> insert into tt2 values(255);
Query OK, 1 row affected (0.02 sec)
mysql> select * from tt2;
+------+
| num |
+------+
| 255 |
+------+
1 row in set (0.00 sec)
zerofill属性 与 int(n) 中 n 的关系
-
int(n) 中的 n 为显示宽度,只有当它与 zerofill 属性配合时才会显现它的作用
-
在创建表结构时,如果创建int类型字段且没有设置宽度mysql默认显示宽度为11位,有个符号位。
-
添加zerofill属性时,该列会自动变成无符号整型(unsigned)且默认显示宽度为10位。这是因为zerofill的主要目的是为了在显示数字时,在左边填充零以达到指定的显示宽度,而对于负数,这种填充零的操作没有意义。
示例没有zerofill属性:
mysql> create table t1(-> id int-> ); ) Query OK, 0 rows affected (0.00 sec) mysql> insert into t1 values(10); #插入一条数据 mysql> insert into t1 values(1); #插入一条数据 Query OK, 1 row affected (0.00 sec) mysql> select * from t1; +------+ | id | +------+ | 10 | +------+ | 1 | +------+示例有zerofill属性:
mysql> create table t1(-> id int zerofill-> ); ) Query OK, 0 rows affected (0.00 sec) mysql> insert into t1 values(10); #插入一条数据 mysql> insert into t1 values(1); #插入一条数据 Query OK, 1 row affected (0.00 sec) mysql> select * from t1; +---------------+ | id | +---------------+ | 0000000010 | +---------------+ | 0000000001 | +---------------+
2.bit类型
用法:bit(m)——create table 表名 ( 字段名 bit(m)); 位字段类型。M表示字段的bit位数,范围从1到64。如果M被忽略,默认为1。
介绍:
- bit字段在显示时,是按照ASCII码对应的值显示(如果在一个bit字段插入数字 65,查看时显示 A)
- 如果我们有这样的值,只存放0或1,这时可以定义bit(1)。这样可以节省空间
3. 小数类型
float类型
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,默认无符号。
例:
float(4,2) :无符号时范围是 -99.99 ~ 99.99 有符号时范围是 0 ~ 99.99
若插入一个数 99.985,四舍五入储存为99.99.
- 固定占用空间4个字节
- 有精度损失,float表示的精度大约是7位
- MySQL在保存指定小数位数以外的值时会进行四舍五入
decimal类型
decimal(m, d) [unsigned] : m指定长度,d表示小数点的位数
- decimal类型精度更高
- decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0.如果m被省略,默认是10
建议:如果希望小数的精度高,推荐使用decimal
二、字符串类型
| 字符串类型 | 储存内容 | 占用字节 |
|---|---|---|
| char(4) | A | 4 * 3 = 12 |
| varchar(4) | A | 1 * 3 + 1 = 4 |
| char(4) | abcd | 4 * 3 = 12 |
| varchar(4) | abcd | 4 * 3 + 1 = 13 |
| char(4) | abcde | 报错,超出长度 |
| varchar(4) | abcde | 报错,超出长度 |
1. char
char(L): 固定长度字符串,L是可以存储的固定的字符长度,最大长度值可以为255。
2. varchar
varchar(L): 可变长度字符串,L表示可储存的最大字符长度,最大长度65535个字节,可根据储存内容缩小储存大小。
说明:
关于varchar(L),L到底是多大,这个L值,和表的编码密切相关:
- varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字节数是65532。
- 当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大65532/2=32766(因为gbk中,一个字符占用2字节)。
如何选择定长或变长字符串?
- 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5
- 如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。
- 定长的磁盘空间比较浪费,但是效率高。
- 变长的磁盘空间比较节省,但是效率低。
- 定长的意义是,直接开辟好对应的空间。
- 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。
3. 日期时间类型(date datetime timestamp)
常用的日期有如下三个:
date:日期 ‘yyyy-mm-dd’ ,占用三字节datetime时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从 1000 到 9999 ,占用八字节timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和datetime完全一致,占用四字节
4. enum枚举类型
用法:enum('选项1','选项2','选项3',...);
该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举值时,也可以添加对应的数字编号
当在创建表结构中字段类型时选择enum类型并设置选项后,在此表中插入数据时只能从设置的选项中多选一。
5. set多选类型
用法:set('选项值1','选项值2','选项值3', ...);
该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,…
最多64个。
当在创建表结构中字段类型时选择enum类型并设置选项后,在此表中插入数据时可以从设置的选项中多选。
说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。
相关文章:
[MySQL | 二、基本数据类型]
基本数据类型 一、数值类型举例表结构1. 整数类型zerofill属性 与 int(n) 中 n 的关系 2.bit类型3. 小数类型float类型decimal类型 二、字符串类型1. char2. varchar如何选择定长或变长字符串? 3. 日期时间类型(date datetime timestamp)4. enum枚举类型5. set多选类…...
工作记录小点
postman问题 postman 返回404 可以先看看这个模块是否集成到pom文件中 postman 返回200不调debug 请求参数Json有错误请求方式不对Get/Post debug报错连接失败 host文件没copy同事的 2.对应组件的不同服务白名单没添加导致的 host文件刷新 进入 C:\windows\system32\drivers\e…...
在PyCharm中使用Anaconda中的虚拟环境
1、在File菜单中找到Settings 2、Settings中搜索interpreter,找到Python Interpreter,再点击Add 3、选择第一个local interpreter 4、如图: 5、找到anaconda安装位置中的envs文件夹,在里面选择需要添加的python环境,如…...
ansible基础
ansible 1.概述 ansible是基于python语言开发,配置管理和部署应用的工具。批量的配置,部署,管理“上千台”主机 (实际一次100台左右),ansible只要在一台主机上就可以对其他主机进行操作。 (1&…...
人工智能之深度学习_[2]-PyTorch入门
PyTorch 1.PyTorch简介 1.1 什么是PyTorch PyTorch是一个基于Python的科学计算包 PyTorch安装 pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simplePyTorch一个基于Python语言的深度学习框架,它将数据封装成张量(Tensor)来进行…...
基于Java的语音陪聊软件——支持聊天私聊-礼物系统-直播系统-缘分匹配-游戏陪玩
丰富的经验、成熟的技术,打造适合当下市场发展的语音交友软件源码。Java 语言凭借其独特的优势,为这款语音陪聊软件的稳健运行和持续发展奠定了坚实基础。它不仅融合了聊天私聊、礼物系统和直播系统等实用且有趣的功能,还创新性地引入了缘分匹…...
Go语言的文件操作
Go语言的文件操作 Go语言是一种开源的编程语言,由谷歌开发,具有简单、高效和并发的特点。在日常开发中,文件操作是一个非常重要且常见的任务。从读取配置文件到写入日志文件,从处理数据到存储结果,文件操作无处不在。…...
php审计1-extract函数变量覆盖
php审计1-extract函数变量覆盖 这是一个关于php审计的栏目,本人也是初学者,分享一下网上的关于php审计的一些知识,学习一下php的语法,顺便记录一下学习过程。 以下是一个关于php审计ctf题 <?php$flagflag.txt; extract($_…...
百度热力图数据原理,处理及论文应用7
目录 0、数据简介0、示例数据1、百度热力图数据日期如何选择1.1、其他实验数据的时间1.2、看日历1.3、看天气 2、百度热力图几天够研究?部分文章统计3、数据原理3.1.1 ** 这个比较重要,后面还会再次出现。核密度的值怎么理解?**3.1.2 Csv->…...
端口镜像和端口安全
✍作者:柒烨带你飞 💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。 📜系列专栏:网络安全从菜鸟到飞鸟的逆袭 目录 一,端口镜像二…...
Elasticsearch:Jira 连接器教程第一部分
作者:来自 Elastic Gustavo Llermaly 将我们的 Jira 内容索引到 Elaasticsearch 中以创建统一的数据源并使用文档级别安全性进行搜索。 在本文中,我们将回顾 Elastic Jira 原生连接器的一个用例。我们将使用一个模拟项目,其中一家银行正在开发…...
ThreeJs功能演示——几何体操作导入导出
1、内部创建几何体导出编辑能力 1)支持内部创建的面、正方体、球体 内部创建物体时,如果是三维物体,要创建集合形状geometry,和对应的材质material。再一起创建一个三维物体。 // 存储创建的几何体列表const geometries [];cre…...
LeetCode::2270. 分割数组的方案数
2270. 分割数组的方案数 思路 前缀和 提示 给你一个下标从 0 开始长度为 n 的整数数组 nums 。 如果以下描述为真,那么 nums 在下标 i 处有一个 合法的分割 : 前 i 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元…...
elementui表单验证,数据层级过深验证失效
先看示例代码,代码为模拟动态获取表单数据,然后动态添加rules验证规则,示例表单内输入框绑定form内第四层: <template><el-form :model"form" :rules"rules" ref"ruleForm" label-width&…...
【Java】LinkedHashMap (LRU)淘汰缓存的使用
文章目录 **1. initialCapacity(初始容量)****2. loadFactor(加载因子)****3. accessOrder(访问顺序)****完整参数解释示例****示例验证** LinkedHashMap 在 Java 中可维护元素插入或访问顺序,并…...
CancerGPT :基于大语言模型的罕见癌症药物对协同作用少样本预测研究
今天我们一起来剖析一篇发表于《npj Digital Medicine》的论文——《CancerGPT for few shot drug pair synergy prediction using large pretrained language models》。该研究聚焦于一个极具挑战性的前沿领域:如何利用大语言模型(LLMs)在数…...
《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?
问题解答: 问:《汽车维护与修理》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《汽车维护与修理》级别? 答:国家级。主管单位:中国汽车维修行业协会 …...
tomcat状态一直是Exited (1)
docker run -di -p 80:8080 --nametomcat001 你的仓库地址/tomcat:9执行此命令后tomcat一直是Exited(1)状态 解决办法: 用以下命令创建运行 docker run -it --name tomcat001 -p 80:8080 -d 你的仓库地址/tomcat:9 /bin/bash最终结果 tomcat成功启动...
消息中间件的基础概念入门
目录 一、什么是消息中间件 1.1、简介 1.2、消息中间件的主要作用 解耦合 异步通信 负载均衡 可靠性与持久性 消息路由与调度 削峰 事务支持 监控与审计 跨平台和跨语言支持 二、常用消息中间件对比 2.1、 RabbitMQ 2.1.1、特点 2.1.2、适用场景 2.2、Apache K…...
基于Web的宠物医院看诊系统设计与实现(源码+定制+开发)在线预约平台、宠物病历管理、医生诊疗记录、宠物健康数据分析 宠物就诊预约、病历管理与健康分析
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
Krita AI Diffusion IP-Adapter功能异常深度排查与解决方案
Krita AI Diffusion IP-Adapter功能异常深度排查与解决方案 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gitcode.com/g…...
如何彻底解决ComfyUI-Manager安装难题:终极完整指南
如何彻底解决ComfyUI-Manager安装难题:终极完整指南 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom …...
SEO_SEO数据监控与分析的关键指标介绍
SEO数据监控与分析的关键指标介绍 在当今数字营销的世界里,SEO(搜索引擎优化)已经成为了每个网站运营者和数字营销人员必不可少的技能。SEO数据监控与分析是SEO工作的重要环节,通过对关键指标的监控和分析,我们可以更好…...
8种Prompt优化技巧:解决大模型输出不稳定痛点
8种Prompt优化技巧:解决大模型输出不稳定痛点 在大模型应用落地过程中,开发者常遇到输出结果不可控的问题:同样的需求多次调用返回内容差异巨大、回答偏离核心要求、格式混乱无法直接解析,这些问题严重影响业务流程的稳定性和用户…...
百川2-13B-Chat-4bits应用场景:开发者日常——代码审查、错误诊断、技术文档润色实战
百川2-13B-Chat-4bits应用场景:开发者日常——代码审查、错误诊断、技术文档润色实战 1. 引言:当大模型成为你的开发伙伴 想象一下这个场景:深夜,你盯着屏幕上那段运行了三次、报错信息却完全不同的代码,咖啡已经凉透…...
Phi-3-mini-4k-instruct-gguf实操手册:中文短文本生成场景下的温度调优策略
Phi-3-mini-4k-instruct-gguf实操手册:中文短文本生成场景下的温度调优策略 1. 模型概述与使用场景 Phi-3-mini-4k-instruct-gguf 是微软推出的轻量级文本生成模型,特别适合处理中文短文本任务。这个经过优化的GGUF版本模型,在问答、文本改…...
开源游戏工具:Steam Achievement Manager实现跨平台成就管理的全攻略
开源游戏工具:Steam Achievement Manager实现跨平台成就管理的全攻略 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 在游戏世界中,…...
RTX5 | 消息队列实战 - 中断与线程间的数据桥梁
1. 消息队列在RTX5中的核心价值 第一次接触RTX5的消息队列功能时,我正被一个串口通信问题困扰:每次收到数据包都要在中断里完整解析,导致系统响应变慢。后来发现,消息队列就像快递柜——中断服务程序(ISR)是快递员,只需…...
FPGA时序约束实战:Set_Clock_Sense的精准控制与路径优化
1. 为什么需要Set_Clock_Sense约束 在FPGA设计中,时钟网络就像城市交通系统中的红绿灯,控制着数据在各个寄存器之间的流动节奏。但实际工程中经常会遇到一些特殊场景:比如一个多路选择器(MUX)同时接收多个时钟源&#…...
如何免费使用Pyfa:EVE Online舰船配置终极实用指南
如何免费使用Pyfa:EVE Online舰船配置终极实用指南 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa Pyfa(Python Fitting Assistant)…...
