《MySQL 必知必会》课程笔记(二)

news2024/11/16 13:50:45

这么多字段类型,该怎么定义?

  • MySQL 中有很多字段类型,比如整数、文本、浮点数等。
  • 如果类型定义合理,就能节省存储空间,提升数据查询和处理的速度。
  • 相反,如果数据类型定义不合理,就有可能会导致数据超出取值范围,引发系统报错,甚至可能会出现计算错误的情况,进而影响到整个系统。

整数类型

  • 整数类型⼀共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT。
    在这里插入图片描述
  • 其实,在评估用哪种整数类型的时候,你需要考虑存储空间和可靠性的平衡问题:
    • 一方面,用占用字节数少的整数类型可以节省存储空间;
    • 另一方面,要是为了节省存储空间,使用的整数类型取值范围太小,⼀旦遇到超出取值范围的情况,就可能引起系统错误,影响可靠性。
    • 首先确保数据不会超过取值范围,在这个前提之下,再去考虑如何节省存储空间。

浮点数类型和定点数类型

  • 浮点数和定点数类型的特点是可以处理小数。
  • MySQL 支持的浮点数类型,分别是 FLOAT、DOUBLE、REAL。
    • FLOAT 表示单精度浮点数;
    • DOUBLE 表示双精度浮点数;
    • REAL 默认就是 DOUBLE。
      在这里插入图片描述
  • 浮点数类型有个缺陷,就是不精准。因此,在⼀些对精确度要求较高的项目中,千万不要使用浮点数,不然会导致结果错误,甚至是造成不可挽回的损失。
  • MySQL 有没有精准的数据类型呢?当然有,这就是定点数类型:DECIMAL。
    • 浮点数类型是把十进制数转换成二进制数存储,DECIMAL 则不同,它是把十进制数的整数部分和小数部分拆开,分别转换成十六进制数,进行存储。这样,所有的数值,就都可以精准表达了,不会存在因为无法表达而损失精度的问题。
    • MySQL 用 DECIMAL(M,D)的方式表示高精度小数。其中,M 表示整数部分加小数部分,一共有多少位,M <= 65。D 表示小数部分位数,D < M。

文本类型

  • 在实际的项目中,我们还经常遇到⼀种数据,就是字符串数据。
  • TEXT 类型是 MySQL 支持的文本类型的一种。此外,MySQL 还支持 CHAR、VARCHAR、ENUM 和 SET 等文本类型。
    • CHAR(M)
      • 固定长度字符串。
      • CHAR(M) 类型必须预先定义字符串长度。
      • 如果太短,数据可能会超出范围;
      • 如果太长,又浪费存储空间。
    • VARCHAR(M)
      • 可变长度字符串。
      • VARCHAR(M) 也需要预先知道字符串的最大长度,不过只要不超过这个最大长度,具体存储的时候,是按照实际字符串长度存储的。
    • TEXT
      • 字符串。
      • 系统自动按照实际长度存储,不需要预先定义长度。
    • ENUM
      • 枚举类型,取值必须是预先设定的一组字符串值范围之内的⼀个,必须要知道字符串所有可能的取值。
    • SET
      • 是一个字符串对象,取值必须是在预先设定的字符串值范围之内的 0 个或多个,也必须知道字符串所有可能的取值。
  • 由于实际存储的长度不确定,MySQL 不允许 TEXT 类型的字段做主键。遇到这种情况,你只能采用 CHAR(M),或者 VARCHAR(M)。

日期与时间类型

  • 用得最多的⽇期时间类型,就是 DATETIME。
    • 虽然 MySQL 也支持 YEAR(年)、TIME(时间)、DATE(日期),以及 TIMESTAMP 类型,但是我建议你,在实际项目中,尽量用 DATETIME 类型。
    • 因为这个数据类型包括了完整的日期和时间信息,使用起来比较方便。
      在这里插入图片描述
  • 在定义数据类型时,如果确定是整数,就用 INT;如果是小数,一定用定点数类型 DECIMAL;如果是字符串,只要不是主键,就用 TEXT;如果是日期与时间,就用 DATETIME。

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

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

相关文章

详细版易学版TypeScript - 元组和枚举详解

一、元组(Tuple) 数组:合并了相同类型的对象 const myArr: Array<number> [1, 2, 3]; 元组(Tuple):合并了不同类型的对象 // 定义元组时就要确定好数据的类型&#xff0c;并一一对应 const tuple: [number, string] [12, "hi"]; // 添加内容时&#xff0c;不…

【Shiro】SimpleAuthorizationInfo如何授权

一、前言 本文基于上一篇文章进行介绍【Shiro】SimpleAuthenticationInfo如何验证password。 二、自定义的ShiroRealm类 经过上一篇文章的探求&#xff0c;这回直接找准doGetAuthorizationInfo方法&#xff1b;我们回过头看下ShiroRealm&#xff0c;它继承了AuthorizingRealm…

Hbase入门篇01---基本概念和部署教程

Hbase入门篇01---基本概念和部署教程 HBase基本概念HadoopHadoop的局限 HBase 与 NoSQLHBase应用场景发展历程HBase特点 RDBMS与HBase的对比关系型数据库HBaseHDFS对比HBaseHive对比Hbase总结Hive与HBase HBase集群搭建HBASE_MANAGES_ZK属性的作用安装报错&#xff0c;解决思路…

面试被问到了解哪些开发模型?看这一篇就够了

前言 软件开发模型是指软件开发全部过程、活动和任务的结构框架。一般包括需求、设计、编码和测试等阶段&#xff0c;甚至包括维护阶段。软件开发模型明确规定了软件开发过程中要完成的主要活动和任务&#xff0c;用来指导整个开发过程中的工作。对于不同的系统&#xff0c;可…

SSD系列2——PriorBox

SSD系列&#xff1a; SSD系列1——网络结构 SSD系列2——PriorBox SSD系列3——损失计算 PriorBox SSD采用PriorBox来进行区域生成&#xff0c;其思想与Faster RCNN的Anchor类似。PriorBox的本质是在原图上的一系列矩形框&#xff0c;即特征图上的一个点根据下采样率可以得到在…

创新驱动 共建生态|鲲鹏开发者峰会2023·GBASE南大通用技术论坛成功举办

5月7日&#xff0c;鲲鹏开发者峰会2023 GBASE南大通用技术论坛如约而至&#xff0c;吸引了数十位数据库技术专家、开发者参与讨论。本次论坛是GBASE南大通用联合openGauss社区、行业用户和生态伙伴共同举办的交流分享活动&#xff0c;邀请到包括鲲鹏计算产品部部长颜叶、四川信…

【Linux Network】序列化和反序列化

目录 1. 序列化和反序列化的简单介绍 2. 使用 json 组件完成数据的序列化和反序列化 1. 安装 jsoncpp 组件 2. 序列化 3. 反序列化 Linux网络编程✨ 1. 序列化和反序列化的简单介绍 序列化&#xff1a;将一个结构体数据转化为字符串数据&#xff1b; 反序列化&#xff1a;将…

Mysql 学习(十)基于成本的优化 一

什么是成本 执行一个查询可以有不同的执行方案&#xff0c;优化器会选择一个成本比较低的方案去执行&#xff0c;但是现在有个疑问&#xff0c;MySQL的查询执行成本是哪些呢&#xff1f;主要有两方面组成&#xff1a; I/O成本&#xff1a;myisam和innodb存储引擎将数据和索引存…

盘点慢查询原因及优化方法

目录 一&#xff0c;前言二&#xff0c;准备type重点看 三&#xff0c;慢查询原因和解决1&#xff0c;sql未加索引2&#xff0c;索引失效3&#xff0c;limit深分页问题&#xff08;1&#xff09;limit深分页为什么会慢&#xff08;2&#xff09;深分页优化 4&#xff0c;in元素…

网安笔记 09 PKI PMI

PKI PMI PKI 公钥基础设施 public key infrastructure 遵循标准的&#xff0c;利用公钥理论和技术建立的提供安全服务的基础设施 **目的&#xff1a;**身份认证&#xff0c;点滴信息不完整&#xff0c;不可抵赖&#xff0c;提供可靠安全服务 **任务&#xff1a;**可信任数字…

【发表案例】智能传感类、持续学习模型、计算建模、边缘计算等领域SCI,最快仅1个月14天录用

3区智能传感类SCI&EI 【期刊简介】IF:1.5-2.0&#xff0c;JCR3区&#xff0c;中科院4区 【检索情况】SCI&EI 双检&#xff0c;正刊 【征稿领域】智能信号处理技术在基于机器学习中遥感相关的应用研究 录用案例&#xff1a;2个月零5天录用 2023.04.28 | Accept 20…

OpenPCDet系列 | 7.PointPillars模型测试KITTI数据集流程解析

文章目录 模型的测试流程1. AnchorHeadTemplate.generate_predicted_boxes部分2. Detector3DTemplate.post_processing部分3. KittiDataset.generate_prediction_dicts部分4. KittiDataset.evaluation部分模型的测试流程 对于模型来说,训练过程是为了计算构建损失训练模型的参…

小程序安全架构分析

小程序大家已经再熟悉不过了&#xff0c;就是一种在移动操作系统中运行的轻量级应用程序&#xff0c;小程序发展这么多年来&#xff0c;是中国 IT 行业里为数不多的能够真正影响到普通程序员的创新成果。 当然随着小程序的流行&#xff0c;小程序的各个方面都是开发者讨论的热…

20230503 - 二叉树2 | 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树

1、二叉树的层序遍历 二叉树的层序遍历&#xff0c;就是图论中的广度优先搜索在二叉树中的应用&#xff0c;需要借助队列来实现&#xff08;此时又发现队列的一个应用了&#xff09;。 来吧&#xff0c;一口气打十个&#xff1a; 102.二叉树的层序遍历 class Solution {pub…

一心报国的西工大网安人走出新手村

大二下学期5月5日晚上&#xff0c;西工大长安校区教学西楼&#xff0c;作为一名网安专业本科生&#xff0c;从大一便立志学好网安知识&#xff0c;报效祖国&#xff0c;却苦于没有优秀学习资源&#xff0c;就把这事儿拖到了大二&#xff0c;最近上了一门专业课&#xff0c;如同…

Wireshark抓包:详解TCP四次挥手报文内容

一、详解tcp四次挥手 刚才用图解释了tcp四次挥手的过程。用wireshark抓一个包&#xff0c;进行详细的分析。 1.客户端发的第一个释放连接的请求 这是抓的包&#xff0c;然后过滤出来的&#xff0c;看下最后的阶段&#xff0c;是要开始释放一个链接了。这里是第一个fin&#…

PSP - 适配不同来源的 AlphaFold2 MSA 接口

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130594303 MSA (Multiple Sequence Alignment) 在 AlphaFold2 中的工作方式如下: 使用搜索工具 (hhblits/hhsearch/jackhmmer),从大型数据库中,搜索与目标…

如何快速构建 Zabbix 原生高可用?

Zabbix Meetup成都站议程 14:30 《如何快速构建 Zabbix 原生高可用》 周松&#xff0c;Zabbix 大中华区培训师&#xff0c;架构师 15:00 《基于 Zabbix 开发的拨测平台–OneMonitor》 唐荣&#xff0c;社区用户 15:30 《Zabbix 与信创生态的融合》 侯健&#xff0c;上海宏…

VS安装项目生成错误提示:SQL Server 2008 R2 SP2 Management Studio

错误提示内容&#xff1a; 原因是在Visual Studio XXXX中创建设置时遇到错误。 提示错误信息&#xff1a; 0:Watson 1:1304 2:StreamSupportFiles 3:streamBinaryToDisk 4:5 5.e:lsql10 main tlsgllsetupidarwinsglcastublstreamca.cpp 6:238 7:sglcastub.dll 8:sglrun.msi 点…

Python每日一练(20230510) 石子游戏 VII\VIII\IX

目录 1. 石子游戏 Stone Game VII 2. 石子游戏 Stone Game VIII 3. 石子游戏 Stone Game IX &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 石子游戏 Stone Game VII 石子游戏中&…