mysql笔记4(数据类型)

news2024/11/16 23:58:11

        数据库的数据类型应该是数据库架构师(DBA)和产品经理沟通后依据公司的项目、业务而定的,而且会不停地变化。数据类型的选择方面没有一个统一的标准,但是应该符合业务、项目的逻辑标准。

菜鸟教程 Mysql 数据类型

文章目录

  • 1. int类型
  • 2. 浮点数
  • 3. 定点数
  • 4. 字符串与文本类型
  • 5. 枚举类型
  • 6. 布尔类型
  • 7. set类型(集合类型)
  • 8. 时间和日期类
  • 9. 内容出处

1. int类型

无符号就是unsinged属性,即一定是正数
例如:年龄一定是unsigned tinyint:因为年龄一定是正数且没有人的年龄会超过255岁
在这里插入图片描述
在这里插入图片描述
        我们可以发现number这个字段的输入数据可以超过设定的宽度6(倒数第二条数据报错是因为它超过了int的范围),但是age字段的输入数据不可以超过unsigned tinyint的范围(即不能超过255)。

2. 浮点数

数据类型后面括号中第一个是总位数,第二个是小数位数
在这里插入图片描述
在这里插入图片描述
        我们可以发现一旦输入数据的小数位数超过了设定的小数位数就会出现四舍五入或者精度丢失的情况。因此,除非有特殊要求,否则在mysql里浮点类型数据不是特别常用。例如:银行卡余额就不会用浮点数来存储。
        问:为什么会出现精度丢失问题?
        答(gpt):① 有限的位数:浮点数在计算机中通常用32位(float)或64位(double)来表示。这些位数决定了浮点数能表示的有效数字的总位数。当数值超出这个范围时,会发生舍入或精度丢失。② 二进制表示:计算机内部以二进制形式存储浮点数,而不是十进制。在转换过程中,某些十进制无法被精确地表示为二进制,因此在存储和计算时会有精度误差。③ 舍入误差:浮点数的运算涉及到四舍五入和近似值的处理,这可能会导致计算结果与期望值略有不同。

3. 定点数

问:什么叫定点数
答:它是变长的,大概每9个数字用4个字节来存储。
问:为什么它不存在精度丢失问题?
答:因为它的整数部分和小数部分是分开存的。
定点数也支持无符号的
在这里插入图片描述
在这里插入图片描述
        存钱也用decimal,因为不用考虑精度丢失问题。

4. 字符串与文本类型

在这里插入图片描述
① C和Java中的char只能存单个字符,而mysql中的char可以存储字符串
② varchar 会回收多余的空间,且比char表示范围要大,因而推荐它
③ 但是char的效率要比varchar高
④ varchar的理论长度是65535,但是实际上它可能达不到。因为字符串字符的大小跟字符集编码有关,例如:一个汉字占2个字节,这个时候varchar可存储的数据长度就是65535除以2。如果是utf8,可能就只有2万多了,jbk可能就是32000多。
⑤ TEXT比较常用。可以用来存储博客文章等

5. 枚举类型

可以结合c语言中的枚举类型理解
① 枚举类型的另类存储方式:
枚举是通过整数进行管理的,即第一个数据’man’在存储时就是1,第二个’woman’是2,以此类推。这样可以节省字节。
② 枚举类型的好处:
节省空间、速度快(比字符串要快好多,因为它存的是数字,但是读取和显示时是字符串)、限制数据(对输入的数据进行了限制,只允许输入哪几个数据)
在这里插入图片描述

6. 布尔类型

在这里插入图片描述

7. set类型(集合类型)

        一些网站点进去会让我们选择感兴趣的标签,例如:数学、天文、音乐等等。通常情况下,我们可以选择多个。这个就是用set实现的
与枚举的区别:
① 枚举类型一次只能取一个数据,set类型一次可以取多个数据
② 枚举类型数据是按1、2、3等存储;set类型分配方式是从左向右按照2的指数幂存储(8个字节是64位,因此8个字节可以保存64个选项),即2^0 、2^1 、2^2等
在这里插入图片描述
第一种写法报错的原因:这种写法相当于一次存了两个字段
在这里插入图片描述
第一种写法报错的原因:这种写法相当于一次存了三个字段,加引号也不行

8. 时间和日期类

① 规定:每张表都必须要有时间和日期类型,不过不是我们手动输入时间,而是让程序自动给
② 实际应用时datetime就行,因为这个格式非常清晰
在这里插入图片描述

9. 内容出处

mysql

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

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

相关文章

C# Dotfuscator加密dll设置流程

按照以下步骤处理后,反编译基本只能看到函数名,看不到源代码 1.Input 2.Setting 3.Rename 4.Rename 5.Control Flow 6.String Encryption 7.Output

【stata】自写命令分享dynamic_est,一键生成dynamic effect

1. 命令简介 dynamic_est 是一个用于可视化动态效应(dynamic effect)的工具。它特别适用于事件研究(event study)或双重差分(Difference-in-Differences, DID)分析。通过一句命令即可展示动态效应&#xf…

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏…

JVM面试(七)G1垃圾收集器剖析

概述 上一章我们说了,G1收集器,它属于里程碑式的发展,开创了面向局部收集垃圾的概念。专门针对多核处理器以及大内存的机器。在JDK9中,更是呗指定为官方的GC收集器。满足高吞吐的通知满足GC的STW停顿时间尽可能的短。 虽然现在我…

恶意代码分析-Lab01-01

实验一 这个实验使用Lab01-01.exe和Lab01-01.d文件,使用本章描述的工具和技术来获取关于这些文件的信息。 问题: 将文件上传至 http:/www.VirusTotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?这些文件是什么时候编译的?这两个文件中是否存在迹象说明它…

如何在docker容器中导入.sql文件

一、准备工作 确保容器运行: 首先确认包含 MySQL 服务的 Docker 容器正在运行。可以通过 docker ps 命令查看正在运行的容器列表。如果容器未运行,使用 docker start [container_id] 命令启动容器。 准备数据库文件: 将需要导入的数据库文件&…

VMware安装Ubuntu虚拟机

Ubuntu镜像下载 https://ubuntu.com/download/desktop 创建虚拟机 1.典型配置 2.稍后安装操作系统 3.选择操作系统,Linux,ubuntu64位 3.设置虚拟机名称和安装位置 4.磁盘大小,存储为单个文件 安装系统 1.选择镜像 2.开启虚拟机 2.安装Ub…

CTFHub技能树-Git泄漏-Log

目录 一、前提知识 1.git泄漏原理 ​编辑 2.git文件泄漏造成后果 3.利用方法 (1) GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码。渗透测试人员、攻击者,可以进一步审计代码,挖掘&#x…

【重学 MySQL】十七、比较运算符的使用

【重学 MySQL】十七、比较运算符的使用 **等于&#xff08;&#xff09;**基本用法示例注意事项结论 **安全等于运算符&#xff08;<>&#xff09;****不等于&#xff08;<> 或 !&#xff09;**示例注意事项 **大于&#xff08;>&#xff09;、大于等于&#xf…

傅里叶级数,傅里叶变换

先读文章&#xff1a;傅里叶分析之掐死教程&#xff08;完整版&#xff09;更新于2014.06.06 - 知乎 (zhihu.com) 傅里叶级数 一、内容&#xff1a;每个周期性函数都可以表示为无穷多个不同频率的正弦函数的叠加。 二、公式&#xff1a; 三、从时域到频域所保留的三点信息&…

修改Anaconda中JupterLab的默认文件存储路径

安装好Anaconda后&#xff0c;使用JupterLab创建的文件会默认存储在C盘&#xff0c;每次打开业都是打开C盘&#xff0c;可以按照如下步骤修改默认存储路径 1.点击开始然后打开anconda prompt。 2.打开命令行输入 jupyter notebook --generate-config &#xff0c;点击回车&…

MySQL——表操作

目录 一、创建表 二、查看表 2.1 查看表中某成员的数据 2.2 查看整个表中的表成员 2.3 查看创建表时的句柄 三、修改表 alter 3.1 重命名 rename 3.2 新增一列 add 3.3 更改列属性 modify 3.4 更改列名称 change 3.5 删除某列 上一篇博客介绍了库的操作&#xff0c;…

零基础快速上手HarmonyOS ArkTS开发5---从简单的页面开始2---使用List组件构建列表、Grid组件构建网格布局

接着零基础快速上手HarmonyOS ArkTS开发4---从简单的页面开始继续往下学习页面布局的知识。最近发现之前学习这一章节的内容在官方已经被下了&#xff0c;替换成了另外一个案例了&#xff08;华为开发者学堂&#xff09;&#xff1a; 而且整个视频的风格也不一样了&#xff0c;…

DBeaver 24.0 高阶用法

DBeaver 24.0 高阶用法 文章目录 DBeaver 24.0 高阶用法DBeaver 介绍功能一、元数据搜索功能二、仪表盘显示功能三、ER图功能四、导出数据最后 DBeaver 介绍 DBeaver 确实是一款功能强大的通用数据库管理工具&#xff0c;适合所有需要以专业方式处理数据的用户。它不仅提供了直…

【笔记篇】Davinci Configurator BswM模块

目录 1 简介1.1 架构概览2 功能描述2.1 特性2.2 初始化2.3 状态机2.3.1 BSWM_INIT2.3.2 BSWM_WAIT_IMMEDIATE_REQUEST2.3.3 BSWM_MAIN_FUNCTION2.3.4 BSWM_MODE_ARBITRATION_AND_CONTROL2.3.5 BSWM_EMPTY_QUEUE2.3.6 BSWM_DEINIT2.4 模式管理2.4.1 即时模式处理2.4.2 强制即时模…

计算机毕业设计选题推荐-剧本杀创作与预约管理系统-Java/Python项目实战(亮点:数据可视化分析)

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

maven配置文件常用模板

注释很详细&#xff0c;直接上代码 项目结构 内容 父项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi…

系统架构师-ERP+集成

ERP 集成平台end&#xff1a;就懒得画新的页

快手的视频素材去哪找?快手视频素材在哪里找啊

要在快手这类短视频平台上脱颖而出&#xff0c;创意与剪辑技巧固然重要&#xff0c;但拥有高质量的视频素材同样关键。今天&#xff0c;我将推荐一些优秀的素材网站&#xff0c;它们能为你的快手视频增色不少。从动人的自然风景到日常的城市生活&#xff0c;这些网站提供的素材…

经济管理专业数据库介绍

本文介绍了四个经济管理专业数据库&#xff1a;国研网全文数据库、EPS数据平台、中经网、Emerald全文期刊库&#xff08;管理学&#xff09;。 一、国研网全文数据库 国研网是国务院发展研究中心主管、北京国研网信息有限公司承办的大型经济类专业网站。国研网教育版”是国研…