mysql 浮点型详解 简书_8-MySQL数据类型

2023-11-05

下面正式开始mysql操作学习了,基础知识点会枯燥,会无味,会焦虑,但是相信当你熟练掌握后会无比的兴奋,因为你在见证数据给这个时代带来的伟大变革,你正在见证由数据库驱动的信息革命

可以W3C菜鸟教程中查看mysql中关于数据类型的部分.

535acceb17d6

image.png

一.整型

535acceb17d6

image.png

535acceb17d6

image.png

535acceb17d6

image.png

535acceb17d6

image.png

1.整型

TINYINT 1 字节 (-128,127) (0,255) 小整数值

SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值

MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值

INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值

BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

注意点:

- 和编程开发中的整型一样, 也区分有符号的整型和无符号的整型 unsigned, 默认就是有符号, 如果是无符号, 那么取值范围*2

- 在企业开发中也和编程开发中, 每一个字段最好使用合适的类型

+ 例如存储人的年龄, 就不要使用INT,

- 通过desc看到的数据类型后面的数值并不是占用的存储空间大小, 而是二printf一样,是位宽

+ 例如: tinyint(4) 显示的宽度是4

+ 默认宽度不会自动填充, 如果想自动填充, 必须加上zerofill

- 如果存储的值超出了取值范围, 那么会报错

示例一:

create table if not exists stu1(

id int auto_increment primary key,

score TINYINT

);

insert into stu1 values(null, 127); #不会报错

insert into stu1 values(null, 128); #会报错

示例二:

create table if not exists stu2(

id int auto_increment primary key,

score TINYINT unsigned

);

insert into stu2 values(null, 128); #不会报错

insert into stu2 values(null, 255); #不会报错

insert into stu2 values(null, 256); #不会报错

示例三:

create table if not exists stu3(

id int auto_increment primary key,

score TINYINT

);

insert into stu3 values(null, 1);

create table if not exists stu4(

id int auto_increment primary key,

score TINYINT(2) ZEROFILL

);

insert into stu4 values(null, 1);

insert into stu4 values(null, 12);

insert into stu4 values(null, 123);

---------------------极客江南

二.浮点型

535acceb17d6

image.png

535acceb17d6

image.png

535acceb17d6

image.png

2.浮点类型

FLOAT(m, d) 4 字节 单精度

DOUBLE(m, d) 8 字节 双精度

m总位数, d小数位数

- float和double的区别

+ 和编程开发中一样, 默认保留的小数位数不同

+ 和编程开发中一样, 有效精度也不同

+ 和编程开发中一样, 浮点类型是不准确的

+ 所以在企业开发中千万不要使用浮点数来保存用户的准确(珍贵)信息(RMB)

示例一:

create table if not exists stu5(

id int auto_increment primary key,

score FLOAT,

height DOUBLE

);

insert into stu5 values(null, 1.12345678901234567890, 1.12345678901234567890);

示例二:

create table if not exists stu6(

id int auto_increment primary key,

score FLOAT(3,2),

height DOUBLE(3,2)

);

insert into stu6 values(null, 1.12345678901234567890, 1.12345678901234567890);

示例三: 丢失精度

create table if not exists stu7(

id int auto_increment primary key,

score FLOAT(20,19),

height DOUBLE(20,19)

);

insert into stu7 values(null, 1.12345678901234567890, 1.12345678901234567890);

+----+-----------------------+-----------------------+

| id | score | height |

+----+-----------------------+-----------------------+

| 1 | 1.1234568357467651000 | 1.1234567890123457000 |

+----+-----------------------+-----------------------+

-----------------------极客江南

三.定点类型

535acceb17d6

image.png

3.定点类型

decimal(M, D)

m总位数, d小数位数

定点类型的本质: 是将数据分为两个部分来存储, 每个部分都是整数

所以点点数不要滥用, 因为非常消耗资源

示例三: 丢失精度

create table if not exists stu8(

id int auto_increment primary key,

score decimal(30,29),

height decimal(30,29)

);

insert into stu8 values(null, 1.12345678901234567890666, 1.12345678901234567890666);

+----+---------------------------------+---------------------------------+

| id | score | height |

+----+---------------------------------+---------------------------------+

| 1 | 1.12345678901234567890666000000 | 1.12345678901234567890666000000 |

+----+---------------------------------+---------------------------------+

---------------------------------李南江

四.字符型

535acceb17d6

image.png

535acceb17d6

image.png

535acceb17d6

image.png

注意:字符类型最好用单引号括起来,避免不必要的错误

535acceb17d6

image.png

4.字符类型

CHAR(size) 0-255字节 定长字符串

VARCHAR(size) 0-65535 字节 变长字符串

注意点: 由于是字符类型, 所以传递值只能用单引号''

4.1char(2) 和 varchar(2)的区别:

- 它们最多都只能保存2个字符

- char(2)不会回收多余的字符, 指定多少个就给我们多少个

- varchar(2)会回收多余的字符, 用多少给多少

- 由于char(2)不会回收多余的字符, 所以效率高

- 由于varchar(2)会回收多余的字符, 所以效率相对低一些

示例一:

create table if not exists stu9(

id int auto_increment primary key,

name1 char(2),

name2 varchar(2)

);

insert into stu9 values(null, 'ab', 'de');

insert into stu9 values(null, '1', '2');

insert into stu9 values(null, '123', '234'); #超出范围就会报错

示例二:

如果没有指定长度, 那么默认char就是255,varchar65535

create table if not exists stu10(

id int auto_increment primary key,

name char(255)

);

注意点: 理论上varchar最多能够存储65535个字符, 但是实际的大小和表的编码方式有关

create table if not exists stu11(

id int auto_increment primary key,

name varchar(65535)

)charset=gbk;

如果表的编码方式是UTF-8, 那么最多能够存储65535/3

Column length too big for column 'name' (max = 21845); use BLOB or TEXT instead

如果表的编码方式是GBK, 那么最多能够存储65535/2

Column length too big for column 'name' (max = 32767); use BLOB or TEXT instead

5.MySQL中每一行数据的大小限制

注意点: 在MySQL中每一行数据最多只能存储65535个字节

create table if not exists stu12(

cls char(2),

name varchar(32767) #会报错, 所有列的总大小超过了65535

)charset=gbk;

create table if not exists stu12(

cls char(2),

name varchar(32764) #只要所有列的中大小不超过65535就可以创建

)charset=gbk;

-------------------------极客江南

五.大文本型

前面讲到mysql中一行数据的大小有限制,所以如果要存入大篇幅的文章,就要引入大文本型

535acceb17d6

image.png

535acceb17d6

image.png

TINYTEXT 0-255字节 短文本字符串

TEXT 0-65535字节 长文本数据

MEDIUMTEXT 0-16777215字节 中等长度文本数据

LONGTEXT 0-4294967295字节 极大文本数据

注意点:

大文本类型在表中并不会实际占用所能保存的字节数, 而是利用10个字节引用了实际保存数据的地址

create table if not exists stu13(

cls char(2),

name LONGTEXT #不会报错, 因为没有超过一行的总大小

)charset=gbk;

--------------------------极客江南

六.枚举型

535acceb17d6

image.png

535acceb17d6

image.png

6.枚举类型

和编程开发中一样, 如果某个字段只能是固定的几个取值,并且只能是其中一个取值, 那么就可以使用枚举

和编程开发中一样, MySQL中的枚举类型本质也是整型, 但是是从1开始的

和编程开发中一样, 既然本质是整型, 所以就可以设置整型数据

create table if not exists stu14(

cls char(2),

gender enum('男', '女', '妖')

);

insert into stu14 values(null, '未知'); #会报错, 只能设置枚举中列举的值

insert into stu14 values(null, '男');

insert into stu14 values(null, '女');

select gender+0 from stu14;

insert into stu14 values(null, 1); #插入整型, 但是也必须在范围内

------------------------极客江南

七.集合类型

如果是一个多选变量,赋值给一个字段一个或者多个固定值,就不能使用枚举类型了,因为枚举类型只能一次给字段赋值一个值,这时候集合就登场了

535acceb17d6

image.png

535acceb17d6

image.png

7.集合类型

和编程开发中一样, 如果某个字段只能是固定的几个取值,并且可以是其中某几个取值, 那么就可以使用集合类型

create table if not exists stu15(

cls char(2),

hobby set('篮球', '足球', '棒球', '足浴')

);

insert into stu15 values(null, '高尔夫'); #会报错, 只能设置集合中列举的值

insert into stu15 values(null, '足球'); #插入一个值

insert into stu15 values(null, '足球,篮球'); #插入多个值

注意点: MySQL中的集合本质也是整型

insert into stu15 values(null, '篮球'); #1

insert into stu15 values(null, '足球'); #2

insert into stu15 values(null, '棒球'); #4

insert into stu15 values(null, '篮球,足球,棒球'); #7

select hobby+0 from stu15;

底层的计算公式是2(n), n从0开始

2(0) === 1;

2(1) === 2;

2(2) === 4;

1 === 0001

2 === 0010

4 === 0100

0111

-------------------------极客江南

八.日期类型

535acceb17d6

image.png

535acceb17d6

image.png

除了上述的三种类型表示日期还有时间戳TIMESTAMP但是时间戳有开始时间和结束时间,要注意

九.布尔类型

MySQL不支持真正的bool类型,使用c/c++编写的,所以非零即真

535acceb17d6

image.png

9.布尔类型

注意: MySQL不支持真正的布尔类型, 由于MySQL是用C/C++编写的, 所以非零即真

和C语言一样, ture===1 , false===0

create table if not exists stu17(

id int auto_increment primary key,

field1 boolean,

field2 boolean

);

insert into stu17 values (null, true, false);

-------------------极客江南

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 浮点型详解 简书_8-MySQL数据类型 的相关文章

  • 硬件系统工程师宝典(2)-----硬件电路的概要设计启动

    今天我们继续来读这本书 硬件系统工程师宝典 作者提到 产品需求分析之后就进入概要设计阶段 在这个阶段 ID Industrial Design 工业设计及结构工程师 软件系统开发工程师和硬件系统开发工程师等开始分头工作 工业设计工程师负责使
  • 【会议分享】2022年工业电子与仪器仪表国际会议(ICoIEI 2022)

    2022年工业电子与仪器仪表国际会议 ICoIEI 2022 重要信息 会议网址 www icoiei org 会议时间 2022年10月15 17日 召开地点 韩国济州岛 截稿时间 2022年9月15日 录用通知 投稿后2周内 收录检索
  • python王者归来 pdf下载_OpenStack开源云王者归来

    基本上关于openstack的都买过了 这本最后 前面一些概念内容还是很有帮助的 很好的一本书 非常适合初学者 赞一个 不过原理的东西特少 全都是代码 真是看得蛋疼 OpenStack开源云王者归来介绍 本书按照入门 剖析 扩展的讲授方式
  • 【Python】查看Python & PyTorch & Torchvision版本

    1 查看Python版本 方法一 终端中输入 python V 方法二 进入Python环境 python 输入 import sys print sys version print sys version info 2 查看PyTorch
  • 服务器开启虚拟机就死机,解决ESXi服务器上磁盘锁导致虚拟机卡死的问题

    解决ESXi服务器上磁盘锁导致虚拟机卡死的问题 解决ESXi ESX服务器上磁盘锁导致虚拟机假死 卡死的问题 当虚拟机被卡死或假死时 在文件夹里面只有如下内容信息 1 vswp 2 flat vmdk 3 delta vmdk 4 vmx
  • 人工智能、机器学习、自然语言处理、深度学习等有啥本质的区别?

    大众媒体赋予这些术语的含义通常与机器学习科学家和工程师的理解有所出入 因此 当我们使用这些术语时 给出准确的定义很重要 其关系韦恩图如图1 2所示 图1 2 自然语言处理 人工智能 机器学习和深度学习等术语的关系韦恩图 1 人工智能 人工智
  • LeetCode题目笔记——1807. 替换字符串中的括号内容

    文章目录 题目描述 题目难度 中等 方法一 使用字典 代码 Python 代码 C 总结 题目描述 给你一个字符串 s 它包含一些括号对 每个括号中包含一个 非空 的键 比方说 字符串 name is age yearsold 中 有 两个
  • u盘显示需要格式化才能用怎么办?小技能了解下!

    u盘显示需要格式化才能用怎么办 u盘是常用的一款数据存储设备 但不少网友在使用u盘的过程中 都遇到过这样的一个问题 就是u盘无法打开且提示需要将其格式化 有网友使用u盘的时候操作不当 直接拔插u盘导致u盘损坏需要格式化才能继续使用 但是里面
  • winform 登录跳转页面

    登录成功后跳转 改两个地方就可以解决而 第一个 上面的判断是登录成功与否 跳转需要的就是一句 当前页 改变DialogResult this DialogResult DialogResult OK 第二个 在Program cs里面 st
  • 矩形覆盖(java)

    一 问题描述 我们可以用2 1的小矩形横着或者竖着去覆盖更大的矩形 请问用n个2 1的小矩形无重叠地覆盖一个2 n的大矩形 总共有多少种方法 二 算法分析 解题思路 归纳法 列举出n 1 2 3 4 5 总结规律 分析可知 f n 可以按照
  • java.lang.ClassNotFoundException:(新建的servlet无法找到class文件)

    1 首先确定project gt Build Automatically是否勾选上 2 然后 再进行测试 能不能进行编译 如果还是不能 则进行手动编译 3 进入clean对话框 选择Clean projects selected below
  • 一个按键控制8个led灯_51单片机实现4个按键控制8个LED灯四种状态

    电路原理图 元件清单 程序 C语言 include
  • 爬虫一:用正则表达式爬取图片

    爬虫流程 发起请求 通过使用HTTP库向目标站点发起请求 即发送一个Request 请求可以包含额外的headers等信息 并等待服务器响应 获取响应内容如果服务器能正常响应 则会得到一个Response Response的内容就是所要获取
  • 如何模拟自动鼠标点击或记录鼠标和回放

    在日常办公和娱乐中 我们可能经常想让鼠标自动化的多一点 能自动点击或者循环做一些简单的重复性的程序事务 有没有办法来解决这个小问题呢 你可以使用极速自动鼠标点击器 它是一款鼠标自动点击软件工具 可以极快速的模拟自动鼠标点击或记录鼠标动作 并
  • [深入研究4G/5G/6G专题-27]: 5G NR开机流程4.5 - RRC连接应答消息MSG4、PUCCH上行控制信道首次调度、UCI与HARQ应答

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 第1章 随机接入知识准备 1 1 逻辑信道 传输信道 物理信道的映射关系
  • Office CVE-2017-11882本地复现

    Office CVE 2017 11882本地复现 这两天 office又出名了 CVE 2017 11882成了圈里关注的热点 今年office爆出好几个漏洞 从CVE 2017 0199 CVE 2017 8570到现在的CVE 201
  • Linux服务器Shell批量巡检

    关键词 Linux shell 批量巡检 1 批量巡检流程 通过Linux shell脚本实现批量服务器巡检方案 通常脚本由三部分组成 包括 巡检脚本 实现对性能信息或指标的采集与回传 巡检脚本下发脚本 由主服务器通过Except工具分别根
  • 支持向量机基础

    支持向量机 也叫支持向量网络 可以继续有监督 半监督 无监督学习 有监督学习 线性二分类与回归 非线性二分类与回归 普通连续型变量的回归 概率型连续变量的回归 无监督学习 支持向量机的聚类 SVC 异常值检测 半监督学习 转导支持向量机 支
  • h5监听页面展示隐藏返回

    在开发中遇到了需要监听页面隐藏展示 比如切到后台又切回来 这个时候我立马想到onShow生命周期 不过反应过来这个是微信小程序的 如果想在h5里面监听的话 只需要加一个监听器 document addEventListener visibi

随机推荐

  • java线程锁与解锁,Java在不同的线程上锁定和解锁

    我有一个主线程和一个工作线程 主线程将任务添加到队列中 工作线程将其用于计算数据 在将对象放入队列之前 我在任务对象内的ReentrantLock对象 在主线程上 上调用锁 当工作线程完成从队列中的任务处理时 我称为解锁 在工作线程上 问题
  • 网络层的IP协议(一)

    TCP IP的核心是互联网层 这一层类比于OSI参考模型中的第三层 即网络层 该层成熟的技术主要有IP和ICMP两种协议 IP协议共有两个版本 分别为IPv4和IPv6 网络层的主要作用是实现终端节点之间的通信 这种端点之间的通信业称为点对
  • 经过负载均衡图片加载不出来_没有预热,这不叫高并发,叫并发高

    大家都知道 高并发系统有三把斧子 缓存 熔断和限流 但还有一把斧子 经常被遗忘在角落里 郁郁不得志 那就是预热 现象举例 先说两个现象 这些现象 只能在并发高的系统中出现 好吧 它已经引起了多个故障 一 DB重启后 瞬间死亡 一个高并发环境
  • Python随便练练

    定义一个变量 如果这个变量大于60就打印 恭喜您考试及格 如果这个变量小于60 兄dei再接再厉 a 70 if a gt 60 print 兄dei你及格啦 else print 兄dei你需要再接再厉 输出 兄dei你及格啦 交互式 a
  • pycharm中设置默认的python解释器/添加现有的虚拟环境

    问题描述 conda创建新的虚拟环境后 如何设置默认的python解释器 使模型调试和运行时能够自动调用默认的解释器 操作步骤 1 使用coda env list查看所有虚拟环境的路径 从而找到目标虚拟环境的路径 2 从设置中选择pytho
  • pppoe流程

    转载自http blog sina com cn s blog 4db83b6f01000apg html PPPoE的数据报文是被封装在以太网帧的数据域内的 以太网帧头包括 目的MAC地址 该阶段为ffffffffffff的广播地址 源M
  • LeetCode刷题总结 - 面试经典 150 题 -持续更新

    LeetCode刷题总结 面试经典 150 题 持续更新 其他系列 数组 字符串 88 合并两个有序数组 27 移除元素 26 删除有序数组中的重复项 80 删除有序数组中的重复项 II 169 多数元素 189 轮转数组 121 买卖股票
  • 计算机系统盘没用的东西怎么删除,怎么删除c盘没用的文件 方法有哪些【图文】...

    近几年我国的发展可是非常的迅速 现在的电脑已经不是稀罕的东西了 台式电脑和 笔记本电脑 很多家庭都有 使用电脑我们大家都知道 电脑是一个大工程 我们的每一步操作都会在电脑上留下痕迹 尤其是我们浏览一些网页或者下载一些视频 这些垃圾就会积存在
  • 正射影像、倾斜摄影测量相关软件汇总

    从事倾斜摄影测量相关工作的同事经常会用到一些三维建模软件 使用过程中会发现不同软件的优劣势也有一定的区别 以下列举的软件排名不分先后 大家可以根据自己的工作和学习要求进行选择 1 Pix4D Mapper Pix4Dmapper是一款专门用
  • js数组队列,算法

    后面添加 let arr1 1 2 3 4 5 6 7 8 arr1 push 9 console log arr1 前面添加 arr1 unshift 0 console log arr1 前面删除 arr1 shift console
  • vscode jupyter找不到系统默认的python解释器

    今天zaivscode上使用jupyter时 select kernel发现找不到我系统的默认python解释器了 只有两个conda环境 我的系统默认的是Anaconda 而且之前已经在vscode里配置过了 今天就发现在vscode里怎
  • Windows与Linux动态库的两种加载方式

    Windows上的动态库 dll 加载方式有两种 1 静态加载 运用 pargma comment lib xxx lib 方式 这种方式需要 头文件 lib文件和dll文件配合使用 运行时是直接将动态库加载到内存中的 运用起来也比较方便
  • linux下面用C语言设计实现一个计算器

    我们对于计算器的功能已经非常熟悉了 这个计算器包括 二进制 八进制 十进制 十六进制 四种格式 格式之间可以相互切换 能够实现的的运算有 加减乘除 最基本的功能 还有比如 tan sin cos Exp x y x 3 x 2 n log
  • Java 中String类型变量的使用

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 理解 String属于引用数据类型 翻译为 字符串 声明String类型变量时 使用一对 String可以和八种基本数据类型变量做运算
  • UDP协议全面实验分析详解

    Thank For LYJ 目录 一 实验目的 二 实验环境 三 实验原理 四 实验内容 练习1 编辑并发送UDP数据报 练习2 UDP单播通信 练习3 UDP广播通信 五 实验结果 练习1 练习2 练习3 六 思考题 1 UDP协议的 校
  • Azure虚拟网络基础

    文章目录 Azure虚拟网络基础 什么是 Azure 虚拟网络 为何要使用 Azure 虚拟网络 如何创建虚拟网络 登录 Azure 创建虚拟网络 连接到VM并测试是否能够ping通 Azure虚拟网络基础 什么是 Azure 虚拟网络 A
  • Flutter 列表踩坑2

    今天遇到一个列表item 的model 更新了以后 但是list 的model没更新的问题 问题解决了 来发下心得 最后找到原因 原来是页面刷新了 以后得注意以下问题 1 我已经使用了PageControler 但是 pageControl
  • 腾讯云域名解析DNS免费版线路、DNS节点及TTL值说明

    腾讯云域名提供免费版DNS解析和付费版DNS解析 腾讯云百科来详细说下DNS解析DNSPod免费版解析配置说明 包括解析线路 DNS节点分布 域名防护 最低TTL等配置参数 腾讯云域名DNS解析DNSPod免费版 腾讯云域名可以免费试用DN
  • 《ANSYS FLUENT 16.0超级学习手册》——第2章 FLUENT软件介绍2.1 FLUENT软件特点简介...

    本节书摘来自异步社区 ANSYS FLUENT 16 0超级学习手册 一书中的第2章 第2 1节 作者 唐家鹏 更多章节内容可以访问云栖社区 异步社区 公众号查看 第2章 FLUENT软件介绍 CFD商业软件FLUENT是通用CFD软件包
  • mysql 浮点型详解 简书_8-MySQL数据类型

    下面正式开始mysql操作学习了 基础知识点会枯燥 会无味 会焦虑 但是相信当你熟练掌握后会无比的兴奋 因为你在见证数据给这个时代带来的伟大变革 你正在见证由数据库驱动的信息革命 可以W3C菜鸟教程中查看mysql中关于数据类型的部分 im