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

【MySQL02】: MySQL类型

MySQL数据类型详解=

数值类型

整数类型

MySQL提供了多种整数类型,每种类型的存储空间和取值范围如下:

类型字节有符号范围无符号范围
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32,768 ~ 32,7670 ~ 65,535
MEDIUMINT3-8,388,608 ~ 8,388,6070 ~ 16,777,215
INT4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295
BIGINT8-2^63 ~ 2^63-10 ~ 2^64-1

重要特性

  • 使用UNSIGNED关键字可声明无符号整数
  • MySQL严格检查数据完整性,插入越界值会导致错误而非截断

位类型

  • BIT(M):M表示位数,范围1~64
  • 适用场景:状态标志、位图存储

浮点与精确小数类型

FLOAT类型

  • 语法:FLOAT[(M,D)] [UNSIGNED]
    • M:总位数
    • D:小数位数
    • 示例:FLOAT(4,2)范围:-99.99 ~ 99.99

DECIMAL类型

  • 高精度定点数,适合财务等需要精确计算的场景
  • 与FLOAT比较:
    • FLOAT:可能进行四舍五入
    • DECIMAL:保持精确值

字符串类型

定长与变长字符串

类型特点最大长度存储方式
CHAR(L)定长255字符固定分配空间
VARCHAR(L)变长65,535字节动态分配+长度记录

选型建议

  • CHAR:数据长度固定(如MD5哈希、邮编)
  • VARCHAR:数据长度变化大(如用户名、地址)

注意:MySQL字符串以字符为单位,不同于C/C++的字节单位

日期时间类型

类型格式字节特点
DATE‘YYYY-MM-DD’3仅日期
DATETIME‘YYYY-MM-DD HH:MM:SS’8日期时间
TIMESTAMP时间戳4自动更新

枚举与集合类型

ENUM类型

  • 单选枚举值
  • 可通过数字下标访问(1-based)

SET类型

  • 多选值集合
  • 存储为位图格式
  • 示例用法:
    INSERT INTO test_set VALUES ("hrj", 1, "羽毛球,代码");
    

集合查询技巧

  1. 精确匹配:

    SELECT * FROM table_name WHERE key='值';
    
  2. 包含查询:

    -- 查找包含任意指定项的记录
    SELECT * FROM test_set 
    WHERE FIND_IN_SET("羽毛球", hobby) OR FIND_IN_SET("代码", hobby);-- 查找包含所有指定项的记录
    SELECT * FROM test_set
    WHERE hobby LIKE '%羽毛球%' AND hobby LIKE '%代码%';
    
  3. 位运算查询(高效方式):

    -- 假设羽毛球=1, 代码=2
    SELECT * FROM test_set WHERE hobby & 3 = 3;
    

注意:MySQL中空串(‘’)与NULL是不同的概念

http://www.dtcms.com/a/313751.html

相关文章:

  • 深度学习TR3周:Pytorch复现Transformer
  • 软件测试自学之路
  • 架构师面试(三十九):微服务重构单体应用
  • 第三阶段—8天Python从入门到精通【itheima】-143节(pyspark实战——数据计算——flatmap方法)
  • RAG From Scratch 系列教程-4: Query_Construction
  • 向量空间模型
  • 开源的时间跟踪工具TimeTagger
  • PHP进阶语法详解:命名空间、类型转换与文件操作
  • 动态规划技巧:深入解析“组合总和IV”与“不同的二叉搜索树”中的卡特兰数
  • 豆包1.6+PromptPilot实战:构建智能品牌评价情感分类系统的技术探索
  • Jwts用于创建和验证 ​​JSON Web Token(JWT)​​ 的开源库详解
  • 【盘古100Pro+开发板实验例程】FPGA学习 | 基于 UDP 的以太网传输实验例程
  • Oracle 在线重定义
  • git操作命令和golang编译脚本
  • 力扣301:删除无效的括号
  • Scikit-learn - 机器学习库初步了解
  • Javascript面试题及详细答案150道之(046-060)
  • (论文速读)RMT:Retentive+ViT的视觉新骨干
  • 【优选算法】分治--归并排序
  • 力扣1124:表现良好的最长时间段
  • 进程生命周期管理:从创建到终止的完整逻辑
  • [激光原理与应用-136]:光学器件 - 光经过不同的材料,为什么会有折射?
  • 基于springboot的学习辅导系统设计与实现
  • ESP32开发问题汇总
  • 【解决办法】报错Found dtype Long but expected Float
  • SaProt 模型部署与运行教程
  • 【量化交易】日内交易有效特征因子
  • 智慧社区(六)——社区居民人脸识别功能实现详解:从腾讯 API 集成到模拟验证
  • Mysql深入学习:索引篇一
  • Linux操作系统的相关操作介绍