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

MySQL 数据类型与运算符详解

本文将系统梳理 MySQL 数据类型运算符 以及 存储引擎,帮助初学者更高效地使用 MySQL。

一、数据类型

MySQL 提供了多种数据类型,主要分为以下几类:

1. 整数类型

  • TINYINT(m):1字节,范围 -128 ~ 127

  • SMALLINT(m):2字节,范围 -32768 ~ 32767

  • MEDIUMINT(m):3字节,范围 -8388608 ~ 8388607

  • INT(m):4字节,范围 -2147483648 ~ 2147483647

  • BIGINT(m):8字节,范围 ±9.22×10^18

特殊属性:AUTO_INCREMENT
  • 用于生成唯一标识符或顺序值。

  • 只能应用于 整数类型,通常结合 PRIMARY KEYUNIQUE KEY

  • 默认从 1 开始,每次递增 1。

注意:如果字段定义了 UNSIGNED,则最大值翻倍,且最小值为 0。

2. 小数类型

  • FLOAT:单精度浮点数,4字节,存储近似值。

  • DOUBLE:双精度浮点数,8字节,存储近似值。

  • DECIMAL(M,D):定点数,以字符串形式存储,适合需要高精度的场景(如货币)。

参数说明
  • M:数字总位数(1~65,默认10)

  • D:小数点后的位数(0~30,且不能大于M,默认0)

示例:DECIMAL(5,2) 可存储范围为 -999.99 -- 999.99

3. 字符串类型

  • CHAR(n):固定长度字符串(0~255)

  • VARCHAR(n):可变长度字符串(0~65535)

  • TEXT 系列

    • TINYTEXT:最大 255 字符

    • TEXT:最大 65535 字符

    • MEDIUMTEXT:最大 2^24-1 字符

    • LONGTEXT:最大 2^32-1 字符

  • BLOB 系列(二进制大对象):

    • TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB

区别
  • CHAR:长度固定,未填满会用空格补齐。

  • VARCHAR:长度可变,按实际长度+1存储。

  • BLOB:适合存储二进制数据,如图片、文件。

4. 日期和时间类型

  • DATE:YYYY-MM-DD

  • DATETIME:YYYY-MM-DD HH:MM:SS

  • TIMESTAMP:时间戳,自动记录时间

  • TIME:HH:MM:SS

  • YEAR:YYYY

MySQL 允许多种日期格式输入,非法值会存储为 0000-00-00

5. 其他数据类型

  • ENUM:枚举类型,最多 65535 个值(适合单选字段,如性别)。

  • SET:集合类型,最多 64 个元素(适合多选字段,如爱好)。

  • 二进制类型:BINARY、VARBINARY

  • 空间类型:Geometry、Point、Polygon 等

二、MySQL 运算符

MySQL 提供丰富的运算符,用于数据查询和处理。

1. 算术运算符

  • + 加法

  • - 减法

  • * 乘法

  • / 除法(自然除)

  • DIV 整除(只取整数部分)

  • %MOD(a,b) 取余数

2. 比较运算符

  • = 相等

  • <=> 安全相等(NULL 也可比较)

  • <>!= 不等

  • <<=>>=

  • IS NULLIS NOT NULL

  • IN (…)/NOT IN (… )

  • BETWEEN a AND b

  • LIKE 模糊匹配

  • REGEXP 正则匹配

3. 逻辑运算符

  • AND / &&

  • OR / ||

  • NOT / !

  • XOR 异或

4. 位运算符

  • | 按位或

  • & 按位与

  • ^ 按位异或

  • ~ 按位取反

  • << 左移

  • >> 右移

5. 运算符优先级

  • 优先级高的先执行

  • 同级运算符从左到右依次执行

  • 可使用 () 强制指定优先级


三、存储引擎简介

MySQL 采用 插件式存储引擎,不同引擎在性能、事务、索引支持等方面存在差异。

1. 查看支持的存储引擎

SHOW ENGINES;

2. 常见存储引擎

  • InnoDB(默认):支持事务、行锁、外键,适合高并发场景。

  • MyISAM:不支持事务,查询速度快,占用空间小。

  • Memory:数据存放在内存中,适合临时数据、高速查询。

  • CSV:以 .csv 格式存储,可直接导入导出,方便与 Excel 交互。

3. 数据表文件说明

  • InnoDB:一个 .frm 文件(表结构)+ ibdata1 文件(数据、索引)。

  • MyISAM:三个文件:

    • .frm(表结构)

    • .MYD(数据文件)

    • .MYI(索引文件)


四、总结

  • 数据类型选择:尽量精确匹配业务需求,数值型选取合适范围,货币类推荐 DECIMAL

  • 运算符使用:注意比较运算中的 NULL,避免浮点数精度误差。

  • 存储引擎选择:事务场景用 InnoDB,读密集型可考虑 MyISAM,临时计算可用 Memory。

掌握这些基础知识,可以让 MySQL 使用更加高效与稳定。


文章转载自:

http://Rgq17Pb1.tqxng.cn
http://taiKAuto.tqxng.cn
http://bPdPiJyF.tqxng.cn
http://FyY0YIrg.tqxng.cn
http://80bNUXyj.tqxng.cn
http://dJ6adVcS.tqxng.cn
http://wDPv0ocs.tqxng.cn
http://ADIJcLon.tqxng.cn
http://rVyeQQ3y.tqxng.cn
http://8NgREmPl.tqxng.cn
http://jxOuRdAt.tqxng.cn
http://5LYqv7WF.tqxng.cn
http://ZtFURdLf.tqxng.cn
http://HewyqI6m.tqxng.cn
http://e1yB3Lkb.tqxng.cn
http://WpgZYA5R.tqxng.cn
http://6IPRNzg5.tqxng.cn
http://Nlrs0ake.tqxng.cn
http://wnCrVo0h.tqxng.cn
http://pD4NZYAf.tqxng.cn
http://t4BB5Fei.tqxng.cn
http://5XvOhYdX.tqxng.cn
http://6EUSGk5k.tqxng.cn
http://ehuNTZ3U.tqxng.cn
http://MeT1N9rU.tqxng.cn
http://5IFwZtvh.tqxng.cn
http://G2DUasye.tqxng.cn
http://FfdwycLc.tqxng.cn
http://fBEDJNcM.tqxng.cn
http://knYqC20o.tqxng.cn
http://www.dtcms.com/a/379338.html

相关文章:

  • 编程实战:类C语法的编译型脚本解释器(五)变量表
  • 原生js拖拽
  • 数据结构--Map和Set
  • P1122 最大子树和
  • 【3DV 进阶-3】Hunyuan3D2.1 训练代码详细理解之-Flow matching 训练 loss 详解
  • Python写算法基础
  • 数据结构 优先级队列(堆)
  • FunASR GPU 环境 Docker 构建完整教程(基于 CUDA 11.8)
  • 探讨:线程循环与激活(C++11)
  • 拆解格行随身WiFi多网协同模块:智能切网+马维尔芯片,如何实现5秒跨网?
  • 游泳溺水检测识别数据集:8k图像,2类,yolo标注
  • ARM裸机开发:链接脚本、进阶Makefile(bsp)、编译过程、beep实验
  • 开始 ComfyUI 的 AI 绘图之旅-Flux.1图生图之局部重绘(Inpaint)和扩图(Outpaint)(九)
  • 2025.9.11day1QT
  • ubuntu24.04+5070ti训练yolo模型(1)
  • ubuntu2204配置网桥
  • 【VLMs篇】07:Open-Qwen2VL:在学术资源上对完全开放的多模态大语言模型进行计算高效的预训练
  • Ubuntu24.04安装 Fcitx5并设置五笔字型的方法
  • 格式塔是什么?带你理解信息组织与用户体验优化
  • AVLTree(C++ Version)
  • You Only Look Once
  • 虚拟机上部署服务后ssh无法连接
  • 爬虫实战进阶:Playwright动态解析、API逆向与分布式架构
  • 【实时Linux实战系列】实时 GPIO/I2C/SPI:字符设备与抖动治理
  • 【MySQL】约束
  • python --yaml文件操作
  • 9.11网编项目——UDP网络聊天
  • 互联网“黑话”生存实用指南(100)
  • 装饰器模式:C++动态扩展游戏角色能力
  • C#线程理解