第三章 MySQL 核心基础

AAI脑图#3656472026-05-14 02:49
11040

内容详情

一、数据类型

数值类型

  • 整数
    • TINYINT(1字节)
    • SMALLINT(2字节)
    • INT(4字节)
    • BIGINT(8字节)
  • 浮点
    • FLOAT(单精度,存在精度丢失)
    • DOUBLE(双精度,存在精度丢失)
  • 定点
    • DECIMAL(精确小数,适用于金额等场景)
  • 位类型
    • BIT(存储0或1的位值)

日期时间类型

  • 基础类型
    • DATE(仅日期)
    • TIME(仅时间)
    • YEAR(年份)
  • 复合类型
    • DATETIME(无时区支持,范围:1000-9999年)
    • TIMESTAMP(带有时区转换,受2038年问题限制)

字符串类型

  • 定长与变长
    • CHAR(定长字符串,查询速度快)
    • VARCHAR(变长字符串,节省存储空间)
  • 大对象类型
    • TEXT系列(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT,用于大文本)
    • BLOB系列(用于存储二进制数据如图片、文件)
  • 枚举与集合
    • ENUM(枚举类型,仅允许预定义单值)
    • SET(集合类型,允许多个预定义值组合)

二、表约束

DEFAULT 默认值

  • 未显式赋值时自动填充指定值

NOT NULL 非空

  • 禁止字段值为NULL

UNIQUE 唯一

  • 字段值不可重复,允许多个NULL值(因NULL不参与比较)

PRIMARY KEY 主键

  • 同时具备非空与唯一性,每表仅可定义一个

三、自动增长

关键字

  • AUTO_INCREMENT(用于自动生成递增值)

条件

  • 必须为整数类型,且为主键或唯一键

特点

  • 起始值默认为1,删除记录后ID不回退

用途

  • 自动生成ID、订单编号等唯一标识

四、字符集与校对集

字符集

  • 常见类型
    • latin1(仅支持西欧字符,不支持中文)
    • gbk(支持中文,但非国际标准)
    • utf8mb4(完整UTF-8实现,支持emoji,推荐使用)

校对集

  • 比较规则
    • _ci(case-insensitive,不区分大小写)
    • _bin(binary comparison,按字节比较,区分大小写)

优先级

  • 字段 > 表 > 数据库 > 服务器(逐级覆盖)

乱码解决

  • 全链路统一采用utf8mb4字符集

五、综合应用

设计原则

  • 规范化与反规范化平衡

类型选择

  • 根据业务需求选择最合适的字段类型

约束搭配

  • 结合DEFAULT、NOT NULL、UNIQUE等提升数据完整性

建表示例

  • 包含字段定义、约束、字符集及AUTO_INCREMENT的完整CREATE TABLE语句