当前位置: 首页 > news >正文

MySQL: 数据类型介绍

文章目录

  • 数据类型
    • 数值类型
    • 字符串类型
    • 日期类型


数据类型

数值类型

分为整型和浮点型:
在这里插入图片描述

  • BIT类似于数据结构中的位图,BIT可以认为是一组二进制bit位.
    BIT(10)表示这个类型里就存最多10个bit位.

  • 虽然TINYINT和SMALLINT更节省空间,但是还是更推荐使用INT或者BIGINT.

    如果存储空间不够了,多花点钱,多买几个更大的硬盘,用不了几千~
    如果因为使用TINYINT / SMALLINT,用出bug了,这样的bug造成的损失可远远不是几个硬盘能比的.
    TINYINT: -128 => +127
    SMALLINT: -32768 => +32767
    一旦出现bug,天知道有多损失.

  • FLOAT(M,D) 单精度浮点数

  • DOUBLE(M,D) 双精度浮点数

    M表示浮点数的长度(总共有几位).
    D表示小数点后有几位.
    比如定义类型的时候,写作double(3,1).
    数字长度为3,小数点后是1位.
    在这里插入图片描述

  • DECIMAL(M,D) 和 NUMERIC(M,D) 这俩差别不大,一般使用decimal类型即可.

    DECIMAL(M,D) 不再使用IEEE754这一套了,而是自己设定了一套存储格式,自己设定的这个存储格式,相当于"变长的",付出了更多的空间,来使存储的数据更精确.
    其实不仅仅是空间代价,还有时间代价.拿着两个decimal进行运算的速度,要比拿着两个double进行运算的速度慢很多.

  • 其实MySQL的类型中也提供了"无符号类型",但是在MySQL官方文档中,明确说明了,不建议使用无符号类型.甚至无符号类型可能会在未来的更高版本的MySQL中被删除掉.

字符串类型

在这里插入图片描述

  • char(SIZE) 固定长度,比如char(50),表示这个类型(这一列)固定就是50个字符.
    如果接下来存储的数据都是5,6个字节这种,这时每个字段都是消耗50字节,实际上只用上了5,6个字节,剩下的都还空着呢!

  • varchar(SIZE) 可变长度,varchar(50) 表示这个类型就是可变长的,最大是50字符.

    强调: varchar(SIZE) 的单位是字符,不是字节!!!
    尤其在utf8这样的编码方式下,一个字符=好几个字节!!

  • TEXT 也是可变长的字符串,不需要指定最大长度,完全根据你存储的数据自适应,

    虽然TEXT和varchar都是可变长的.
    但是实际使用的时候,还是更倾向于varchar.
    varchar可以指定最大长度,而TEXT没法指定.(TEXT就可能会很大,大小难以预估)

  • BLOB 存储的是二进制的数据.

    前面的那几个都是存储文本数据的~
    如果要存储图片/视频/音频…
    那就使用blob.
    但是一般不建议使用数据库直接存储图片/视频/音频等内容…

    • 一方面,数据库SQL里提供了很多非常丰富的功能,但是这些功能都是只针对数字/字符串/时间日期才有效的…
      只是存二进制数据,上述的功能就不能用了.
    • 另一方面,数据库往往是一个系统中,执行效率比较低的环节,容易成为性能瓶颈.
      把二进制数据提出来,不使用数据库保存,也能够有效降低数据库的负担~

日期类型

在这里插入图片描述

  • TIMESTAMP 这个4字节的版本的时间戳,现在不推荐使用了,因为当超过2038年,就溢出了~~

    计算机发展历史上,有一个知名问题,千年虫问题.感兴趣可以去搜一搜~

本文到这里就结束啦~

在这里插入图片描述


http://www.mrgr.cn/news/36053.html

相关文章:

  • 只要孩子感兴趣,学什么都不会白学
  • 如何根据拍立淘API返回值进行商品数据分析
  • USB-CAN的使用说明
  • QT开发模式(二):QML/JS/C++混合编程
  • 初识C#(二)- 流程控制
  • 微积分复习笔记(1):单变量微积分
  • 提取出来的ip与我原本的ip是在同一个区吗
  • Icarus翼星求生教你使用服务器开服
  • 鸿萌数据恢复:如何降低 RAM 故障风险,以避免数据丢失?
  • WebGL与Web Workers
  • 用于扩展 微软Azure OpenAI 服务工作负载的全球预置托管部署
  • USB Micro-A、Micro-B 插头与 Micro-AB、Micro-B 插座,及其引脚定义
  • 一文理解AXI4-lite与AXI4-stream协议
  • GEE APP:基于gee开发一个在线监测Landsat5、7、8的云量面积和百分比的可视化应用
  • 戏曲多多 1.0.6.0 专为电视端设计的戏曲与生活内容APP,同样适用于安卓手机,方便老年人使用
  • 如何在算家云搭建text-generation-webui(文本生成)
  • Python 中的时间处理
  • hexo github部署,通过域名访问你的博客
  • 要让创业者有钱赚!李彦宏百度为创业者提供最好的智能体分发渠道
  • 【游戏设计】游戏中需要管理的数据分类