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

【MySQL】(3) 数据类型

一、一些概念

        同一个东西,在不同领域中有不同的叫法:

        定义实体的属性,取名+指定数据类型,本文讲数据库中的数据类型。

二、数值型

类型大小范围M/D含义M/D范围不足 M备注
BIT[(M)]0 和 1 组成的序列序列的位数1~64,省略默认 1左边填0
TINYINT[(M)]1字节,相当于 Byte 类型。显示宽度左边填0,搭配ZEROFILL 使用
BOLL1字节,同TINYINT(1)
SMALLINT[(M)]2字节,相当于 Short 类型。同 TINYINT同 TINYINT
MEDIUMINT[(M)]3字节同 TINYINT同 TINYINT
INT[(M)]4字节,相当于 Int 类型。同 TINYINT同 TINYINT
INGEGER[(M)]4字节,同 INT同 TINYINT同 TINYINT
BIGINT[(M)]8字节,相当于 Long 类型。同 TINYINT同 TINYINT
FLOAT[(M, D)]4字节,相当于 Float 类型M总位数,D小数点后位数D最多是7由于精度问题,开发时不用
DOUBLE[(M, D)]8字节,相当于 Double 类型同FLOATD最多是15由于精度问题,开发时不用
DECIMAL[(M, D)]动态,不存在精度损失。相当于BigDecimal同FLOATM最多64,省略默认10。D最多30,省略默认0。不计小数点、负号。分成多份,每份用 int 存,剩下不足 int 的用最小单位 SMALLINT。

真实开发中,存金额这样的小数:

  • 用不损失精度的 Decimal,但使用过程麻烦(不能直接跟整数、小数进行混合运算)。
  • 把金额换成更小的单位,用 INT 存。

三、字符串类型

类型大小范围M/D含义M/D范围不足 M备注
CHAR[(M)]相当于字符数组,0~255字符数(认为每个字符 1字节)0~255右侧填充空格,省略默认1
VARCHAR(M)可变长,0~65535字节最大字符数最常用
TINYTEXT小文本,最大255个字节
TEXT文本,最大65535个字节
MEDIUMTEXT中文本,最大16,777,215个字节
LONGTEXT大文本,最大4,294,967,295个字节
BINARY[(M)]存二进制,固定长度最大字节0~255默认1不用
VARBINARY(M)存二进制,可变长度最大字节不用
TINYBLOB小二进制字节最大字节最大255不用
BLOB[(M)]二进制字节最大字节最大65535不用
MEDIUMBLOB[(M)]中二进制字节最大字节最大16,777,215不用
LONGBLOB大二进制字节最大字节最大4,294,967,295不用
ENUM('value1','valu e2',...)枚举。从'value1'、'valu e2'...... 或 '' 、NULL 中选一个单个元素最大255字节,最多65535个元素。不用。
SET('value1','value 2',...)集合。从'value1'、'valu e2'中选0个或多个最多64个元素,单个最多255字节。不用。
  • 保存二进制文件,不用 BINARY 等,而是保存二进制文件在网络空间上的地址。直接保存图片、视频等二进制文件,需要大量存储空间。
  • 二进制的列,排序规则以 _bin 结尾,如 utf8mb4_bin。
  • char 和 varchar 的区别:取数据时,char 会截去尾部空格;varchar 不会截去尾部空格。char 存储字符串不足 M,右边填充空格;允许M=0,表示 '' 或 NULL。varchar 存储字节数不超过 255,多一个字节记录使用字节长度;超过255,多二个字节存储使用字节长度。因此 varchar 读写效率更低,需要根据记录长度读取。
  • varchar 和 text 的区别:最大存储字节都一样,但是 text 不够时,会自动往上转换varchar 不超过768字节部分保存在当前行,超过768字节部分保存在溢出页,当前行还需保存溢出页地址;text 当前行只保存溢出页,整体存在溢出页varchar 可以创建索引,查询性能比 text 高
  • SQL语句不是越复杂越好,简单的SQL语句能够几条并行执行,效率更高。

四、日期类型

类型大小说明
TIMESTAMP[(fsp)]1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.499999不用,2038 年不够
DATETIME[(fsp)]1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.499999   日期+时间fsp 是小数秒,最大为 6,省略默认为 0。
DATE1000-01-01 ~ 9999-12-31  日期
TIME[(fsp)]-838:59:59.000000 ~ 838:59:59.000000  时间fsp 同上
YEAR[(4)]1901 ~ 2155  年
  • CURRENT_DATE 、CURRENT_DATE() 、CURDATE() 获取当前日期。
  • CURRENT_TIME 、CURRENT_TIME([fsp]) 、CURTIME() 获取当前时间。
  • CURRENT_TIMESTAMP、CURRENT_TIMESTAMP([fsp]) 、NOW() 获取当前的日期+时间。

相关文章:

  • 韩国互联网巨头 NAVER 如何借助 StarRocks 实现实时数据洞察
  • 【系统架构设计师】软件架构的重要性
  • STM32——串口通信 UART
  • Gartner:数据安全平台DSP提升数据流转及使用安全
  • 大白话css第九章主要聚焦于前沿技术整合、生态贡献与技术传承
  • 一文了解Conda使用
  • 数据结构:八大排序(冒泡,堆,插入,选择,希尔,快排,归并,计数)详解
  • 《HarmonyOS赋能的智能影像诊断系统安全架构与临床实践》
  • 轻松部署 Stable Diffusion WebUI 并实现局域网共享访问:解决 Conda Python 版本不为 3.10.6 的难题
  • 软件工程与实践(第4版 新形态) 练习与实践1
  • Power Settings Explorer官网下载地址: Windows电源选项设置管理工具
  • 自由学习记录(41)
  • Hive-03之传参、常用函数、explode、lateral view、行专列、列转行、UDF
  • Hive-优化(参数优化篇)
  • 下拉单选(选择后高亮)测试用例
  • llama.cpp: GGUF格式及模型量化参数介绍
  • 数据结构基础之《(19)—矩阵处理》
  • 并发编程(线程池)面试题及原理
  • Matlab实现车牌识别
  • 算法-回溯篇08-子集
  • 电商的网站设计/代刷网站推广链接0元价格
  • 室内设计公司的运营模式/seo关键词优化最多可以添加几个词
  • 企业网站的切片怎么做/百度小说排行榜完本
  • 通常做网站要多久/seo搜索引擎优化总结
  • 签名设计在线生成器/西安seo顾问
  • 快速提升网站排名/建站平台哪家好