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

[mysql]数据类型精讲下

目录

ENUM类型

SET类型

二进制字符串类型

BLOB类型

JSON类型

空间类型

小结:

课后练习


ENUM类型

也被叫枚举类型,

就是因为这里面都是文本字符串类型,所以经常被归类到文本字符串类型.

这里我们插入数据的时候,就必须是在这5个类型中选择

这里大写的也可以插入,因为mysql是忽略大小写的.如果我们输入数字代表的就是对应的位置,比如春代表的就是1,夏代表2,...字符串数字也可以.并且我们是可以输入NULL值.

SET类型

SET类型代表的就是可以输入多个类型

,,比如A,B,C,A

看这个表格就可以知道,我们set和ENUM是什么时候使用了.

开发的时候我们用char和varchar会比较多一些

二进制字符串类型

BINARY与VARBINARY类型

储存视频和图片等二进制类型

BINARY代表是就是固定长度的二进制字符串

VARBINARY(M)代表的是可变长度的二进制字符串,M表示是最多能储存的字节

M是必须填写的,和我们的char和varchar是很相似的

这里重要的区别就是长度测试的时候,无论什么时候长度都是设定的长度BINARY

BLOB类型

存储图片和音频类型

我们一般不会用它来存储图片和音频,我们会把它的内存存储到数据库的磁盘中,然后将本地链接存储到数据库中.

然后查看这个表,点击对应的空来导入图片和音频.

TEXT和BLOB如果删除后会留下很大的空洞,

除非前缀索引否则尽量不要使用SELECT查询

储存BLOB和text的时候最好还是让他们单独一个表,避免执行查询的时候网络传输大量的BLOB和TEXT的值

JSON类型

是一个多层嵌套表的格式,是一种轻量的数据交换格式.比如我们要查询

这里我们也是用字符串格式来存储json格式,但是这个字符串是固定格式的,我们是可以使用->来操作json格式的

比如我想要表test_json中的字段js的name内容,那么我就可以使用

SELECT  js ->’$.name’ AS NAME

FROM test_json

这样我们就可以获取到NAME字段

空间类型

这个到时候要用的时候大家再具体搜索,

小结:

如果数据是整数就使用INT,如果是小数,就使用DECIMAL(M,D)如果是日期和时间就使用DATETIME,确保你的系统不会因为数据类型定义储存,效率不是最高的.但是可靠性是最大的

字符串的选择就参考阿里巴巴的开发手册:

1.任何字段如果是非负数,就必须使用UNSIGNED

2.小数全部使用DECIMAL

FLOAT和DOUBLE都存在精度损失的问题,很可能在比较值的时候得到错误的结果,如果存储的数据范围超过了DECIMAL的时候就分为整数和小数

  1. 如果字符串短或字符串长度差不多,就使用CHAR
  2. VARCHAR在你的字符串不确定长度的时候使用,长度长且变化大的情况下使用VARCHAR,当长度超过了5000的时候就不能在使用varchar,要使用TEXT了TEXT要记得单独建立一个表,因为TEXT操作的时候容易出现空洞导致文件碎片化.所以最好还是单独建立一个表使,原表的文档字段长度固定.

课后练习

掌握mysql规范的各种数据类型

熟悉数据类型常设置的属性

DECIMAL一定要加上M和D,UNSIGN非负属性之类的

掌握不同类型的使用场景

http://www.xdnf.cn/news/2104.html

相关文章:

  • 【Linux网络】HTTP协议全解析 - 从请求响应到方法与Header
  • SpringBoot UserAgentUtils获取用户浏览器 操作系统设备统计 信息统计 日志入库
  • 从基础到实战的量化交易全流程学习:1.1 量化交易本质与行业生态
  • C++---类和对象(二)
  • VO包装类和实体类分别是什么?区别是什么?
  • C++学习笔记(四十)——STL之归约算法
  • 深入探究 MySQL 架构:从查询到硬件
  • Apache NetBeans 25 发布
  • 任务管理系统,Java+Vue,含源码与文档,科学规划任务节点,全程督办保障项目落地提效
  • priority_queue的学习
  • GoFly快速开发框架新增UI素材库-帮助开发者快速开发管理后台UI基于ArcoDesign框架开发
  • 服务器传输数据存储数据建议 传输慢的原因
  • 文本预处理(NLTK)
  • 图像处理——边缘检测
  • 【C++11】Lambda表达式
  • 区块链实战:Hyperledger Fabric多节点网络部署与高性能业务链码
  • 【运维】Windows 与 Linux 中实时查看日志的命令对比详解(tail -f)
  • 二叉搜索树的实现与应用场景
  • 指标监控:Prometheus 结合 Grafana,监控redis、mysql、springboot程序等等
  • 3:QT联合HALCON编程—海康相机SDK二次程序开发
  • 深入详解人工智能数学基础——微积分中拉格朗日乘数法在GAN训练中的应用
  • python调用ffmpeg对截取视频片段,可批量处理
  • 写了一个关于SpringAop记录用户操作的功能
  • A. Ambitious Kid
  • MySQL 联合查询教程
  • 使用PyTorch实现简单图像识别(基于MNIST手写数字数据集)的完整代码示例,包含数据加载、模型定义、训练和预测全流程
  • 深度探索:DeepSeek赋能WPS图表绘制
  • Docker化HBase排错实录:从Master hflush启动失败到Snappy算法未支持解决
  • Oracle官宣 MySQL+APEX+AI三认证限时免费
  • 使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第二部分