MySQL 数据库中的数据类型

整数类型

标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩展支持了 TINYINT、MEDIUMINT 和 BIGINT

整数类型 字节数 无符号数的取值范围 有符号数的取值范围 TINYINT 1 (0,255) (-128,127) SMALLINT 2 (0,65535) (-32768,32767) MEDIUMINT 3 (0,16777215) (-8388608,8388607) INT 4 (0,4294967295) (-2147483648,2147483647) INTEGER 4 (0,4294967295) (-2147483648,2147483647) BIGINT 8 (0,18446744073709551615) (-9223372036854775808,9223372036854775807)

浮点数类型和定点数类型

数据表中用浮点数类型和定点数类型来表示小数,浮点数类型包括单精度浮点数(FLOAT)和双精度浮点数(DOUBLE),定点数类型就是 DECIMAL

类型 字节数 负数的取值范围 非负数的取值范围 FLOAT 4 (-3.402823466E+38,-1.175494351E-38) 0,(1.175494351E-38,3.402 823466E+38) DOUBLE 4 (-1.7976931348623157E+308,-2.2250738585072014E-308) 0,(2.2250738585072014E-308,1.7976931348623157 E+308) DECIMAL(M,D) M+2 取决于 M 和 D 取决于 M 和 D

FLOAT 和 DOUBLE 类型存储数据时存储的是近似值,DECIMAL 存储的是字符串,因此提供了更高的精度。在金融系统中,表示货币金额的时候会优先考虑 DECIMAL 类型;在一般的价格体系,比如购物平台的商品标价,一般用 FLOAT 类型即可

日期和时间类型

每种日期和时间类型都有一个有效范围。如果插入的值超过此范围,系统将报告错误并将零值插入数据库

[En]

Each date and time type has a valid range if the inserted value exceeds this range, the system will report an error and insert a zero value into the database

类型 字节数 取值范围 零值 YEAR 1 1901 ~ 2155 0000 DATE 4 1000-01-01 ~ 9999-12-31 0000:00:00 TIME 3 -838:59:59 ~ 838:59:59 00-00-00 DATETIME 8 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 0000-00-00 00:00:00 TIMESTAMP 4 19700101080001 ~ 2038011911407 00000000000000

字符串类型

CHAR 类型和 VARCHAR 类型都在创建表时指定了最大长度,CHAR 类型的长度是固定的,其长度可以是 0 ~ 255 的任意值。而 VARCHAR 类型的长度是可变的,其最大值可以取 0 ~ 65535 之间的任意值,VARCHAR 类型实际占用的空间为字符串的实际长度加一,这样可以有效节约系统的空间

TEXT 类型是一种特殊的字符串类型,各种 TEXT 类型的区别在于允许的长度和存储空间不同

类型 允许的长度 存储空间 TINYTEXT 0-255 值的长度+2个字节 TEXT 0-65535 值的长度+2个字节 MEDIUMTEXT 0-16772150 值的长度+3个字节 LONGTEXT 0-4294967295 值的长度+4个字节

ENUM 类型又称枚举类型,在创建表时,ENUM 类型的取值范围以列表的形式指定

属性名 ENUM('值1', '值2', ..., '值n')
  • 属性名:指字段的名称
  • 值n:表示列表中的第 n 个值

ENUM 类型的值只能取列表中的某一个元素,取值列表最多能有 65535 个值。列表中的每个值独有一个顺序排列的编号,MySQL 存入的是这个编号,而不是列表中的值

如果 ENUM 类型加上了 NOT NULL 属性,其默认值为取值列表的第一个元素。如果不加 NOT NULL 属性,ENUM 类型将允许插入 NULL,而且 NULL 为默认值

在创建表时,SET 类型的取值范围就以列表的形式指定了

属性名 SET('值1', '值2', ..., '值n')

二进制类型

BINARY是存储二进制数据的数据类型。

[En]

Binary is the data type that stores binary data.

类型 取值范围 BINARY(M) 字节数为M,允许长度为0~M的定长二进制字符串 VARBINARY (M) 允许长度为0~M的变长二进制字符串,字节数为值的长度加1 BIT(M) M位二进制数据,M最大值为64 TINYBLOB 可变长二进制数据,最多255个字节 BLOB 可变长二进制数据,最多(2^16-1)个字节 MEDIUMBLOB 可变长二进制数据,最多(2^24-1)个字节 LONGBLOB 可变长二进制数据,最多(2^32-1)个字节

BINARY 类型的长度是固定的,不足最长长度的空间有 ‘\0’ 补全

VARBINARY 类型的长度是可变的,在最大范围内使用多少就分配多少

例如,BIT(4) 就是指定数据类型为 BIT 类型,长度为 4,若存储的数据是 0 ~ 15,因为变成二进制后的 15 的值为 1111,则其长度为 4。如果插入的值为 16,其二进制数为 10000,长度为 5 超过最大长度,则插入失败

BLOB 用来保存数据量很大的二进制数据,如图片等。BLOB 类型与 TEXT 类型类似,不同在于 BLOB 类型用于存储二进制数据,根据其二进制编码进行比较和排序,而 TEXT 类型是以文本模式进行比较和排序的

JSON 类型

在 MySQL 中,JSON 值是以字符串形式写入的,MySQL 会对字符串进行解析,如果不符合 JSON 格式,那么写入将失败

名称 描述 json_array() 创建json数组 json_array_append() 数组尾部追加元素 json_array_insert() 在数组的指定位置插入元素 json_extract() / -> / ->> 根据条件提取文档中的数据 json_contains(target,candidate[,path]) 查询文档中是否包含指定的元素 json_contains_path() 查询文档中是否包含指定的路径 json_depth() json文档的深度(元素最大嵌套层数) json_insert() 向json文档插入值 json_keys() 提取json中的键值为json数组 json_length() json文档的长度(元素的个数) json_merge() / json_merge_preserve() 将两个文档合并,保留重复键值 json_merge_patch() 将两个文档合并,替换重复键值 json_object() 创建json对象 json_pretty() 美化json格式 json_quote() / json_unquote() 加上/去掉json文档两边的双引号 json_remove() 删除文档中指定位置的元素 json_replace() 替换文档中指定位置的元素 json_search() 返回所有符合条件的路径集合 json_set() 给文档中指定位置的元素设置新值 json_storage_free() json文档更新操作后的剩余空间 json_storage_size() json文档占用的存储空间 json_table() 将json文档转换为表格 json_type() json文档类型(数组/对象/标量) json_valid() json格式是否合法

Spatial 数据类型

Spatial 数据即空间数据,又称几何数据,表示物体的位置、形态、大小分布等各方面信息

MySQL 包含的空间数据类型有几何体(GEOMETRY)、点(POINT)、线(LINESTRING)和多边形(POLYGON),其中几何体可以存储任何类型的几何数据,而其他三种只能存储对应类型的几何数据

Original: https://www.cnblogs.com/Yee-Q/p/16153180.html
Author: 低吟不作语
Title: MySQL 数据库中的数据类型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505480/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Selenium 4 有哪些不一样?

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/d59b986c.html 你好,我是测试蔡坨坨。 众所周知,Selenium在2021年10月13号发…

    数据库 2023年6月11日
    087
  • 升级JDK8的坎坷之路

    为更好的适应JAVA技术的发展,使用更先进及前沿的技术。所以推出将我们现在使用的JDK1.6(1.7)及tomcat6(7)升级至JDK1.8及tomcat8,使我们的系统获得更好…

    数据库 2023年6月6日
    098
  • 设置颜色与画笔

    设置画笔 默认情况下,Graphics绘图类 使用的画笔属性是粗细为I个像素的正方形,而Graphics2D类可以调用 setStroke()方法 设置画笔的属性,如改变线条的粗细…

    数据库 2023年6月16日
    095
  • MySQL 8 新特性之Clone Plugin

    Clone Plugin是MySQL 8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为Group Replication服务。在Group Replic…

    数据库 2023年6月11日
    0116
  • Java学习-第一部分-第三阶段-项目实战:满汉楼项目

    满汉楼项目 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 注意:笔记内容仅为实现该项目的基本后端功能,并不会实…

    数据库 2023年6月11日
    0107
  • CSS速学!!

    padding:内边距 缩写:缩写: padding:值; 上下左右的内边距一样 padding:值1 值2; 值1代表上下内边距,值2代表左右内边距 padding:值1 值2 …

    数据库 2023年6月16日
    078
  • 不同分层中的对象的使用

    在项目中,控制层,业务层,数据层,视图层(返回值)。中分别使用了的对象,暂时不太理解这样做的好处,先记录下来。 如下: 控制层:也可以叫做入参对象, UserQuery userQ…

    数据库 2023年6月11日
    072
  • 2022-08-17 DQL—-子查询,日期格式

    子查询、日期格式 DQL查询语言 子查询 根据结果集中的行数,子查询可以分为以下几类: [En] According to the number of rows in the re…

    数据库 2023年5月24日
    094
  • 4. 事务和锁

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    0102
  • 从零搭建云原生技术kubernetes(K8S)环境-通过kubesPhere的AllInOne方式

    前言 k8s云原生搭建,步骤有点多,但通过kubesphere,可以快速搭建k8s环境,同时有一个以 Kubernetes 为内核的云原生分布式操作系统-kubesphere,本文…

    数据库 2023年6月16日
    094
  • mysql常用操作汇总

    工作中经常用会遇到这种情况,可以访问mysql所在的服务器,但是服务器端口不对外暴露(通常因为安全原因)。这时,操作数据库只能通过命令行和 mysql client窗口来实现。我对…

    数据库 2023年5月24日
    081
  • CMD命令 压缩包与图片完美融合,隐藏文件必备撒

    CMD命令 压缩包与图片完美融合,隐藏文件必备撒 在Windows端,将图片和压缩包完美融合,先将 源文件展示 压缩方案1 copy /b D:\project\IE11完整离线安…

    数据库 2023年6月9日
    0157
  • go context详解

    Context通常被称为上下文,在go中,理解为goroutine的运行状态、现场,存在上下层goroutine context的传递,上层goroutine会把context传递…

    数据库 2023年6月9日
    0108
  • 常见的dos命令

    常用快捷键 alt+f4 常见的dos命令 打开CMD的方式 开始+系统+命令提示符 win+R 输入cmd打开控制台 在任意文件夹下,按住shift+鼠标右键点击 资源管理器的地…

    数据库 2023年6月11日
    099
  • MySQL新建用户与授权

    test为用户名,1234为密码,%意思是任何一台主机都可以登录,如果只能本机登录则设置为localhost 说明:test为数据库的名称 说明:第一个test为数据库的名称,第二…

    数据库 2023年6月9日
    086
  • java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端

    新增功能:培训学习模块, PDF电子课程、视频课程、直播课程(自己搭建直播流服务器) 人脸识别(考试时验证,有开关)、补考开关 组建试卷:创建试卷,题目、类型、总分、及格分数、时长…

    数据库 2023年6月6日
    090
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球