MySQL → SQL → DDL → 表操作 → 数据类型 知识链整理成一份系统的内容

1. 知识结构

bash 复制代码
MySQL
 └── SQL(结构化查询语言)
      ├── DDL(数据定义语言) → 定义结构
      │     ├── 表操作(创建/修改/删除表)
      │     └── 数据类型(列字段类型定义)
      ├── DML(数据操作语言) → 增删改数据
      ├── DQL(数据查询语言) → 查询数据
      └── DCL(数据控制语言) → 权限、事务控制

2. DDL 表操作

操作 语法 示例
创建表 CREATE TABLE 表名 (列名 数据类型 约束, ...) CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));
如果不存在再创建 CREATE TABLE IF NOT EXISTS 表名 (...) CREATE TABLE IF NOT EXISTS users (...);
查看表结构 DESC 表名;SHOW COLUMNS FROM 表名; DESC users;
修改表名 RENAME TABLE 旧名 TO 新名; RENAME TABLE users TO members;
添加列 ALTER TABLE 表名 ADD 列名 数据类型 约束; ALTER TABLE users ADD email VARCHAR(100);
修改列数据类型 ALTER TABLE 表名 MODIFY 列名 新数据类型; ALTER TABLE users MODIFY name VARCHAR(100);
重命名列 ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型; ALTER TABLE users CHANGE name username VARCHAR(50);
删除列 ALTER TABLE 表名 DROP 列名; ALTER TABLE users DROP email;
删除表 DROP TABLE 表名; DROP TABLE users;
如果存在再删除 DROP TABLE IF EXISTS 表名; DROP TABLE IF EXISTS users;
清空表数据 TRUNCATE TABLE 表名; TRUNCATE TABLE users;

3. MySQL 常用数据类型

3.1 数值类型

类型 大小 有符号范围 (SIGNED) 无符号范围 (UNSIGNED) 用途
TINYINT 1字节 -128 ~ 127 0 ~ 255 状态、布尔值(0/1)
SMALLINT 2字节 -32768 ~ 32767 0 ~ 65535 小范围整数
MEDIUMINT 3字节 -8388608 ~ 8388607 0 ~ 16777215 中等范围整数
INT / INTEGER 4字节 -21亿 ~ 21亿 0 ~ 42亿 常用整型
BIGINT 8字节 ±9.22e18 0 ~ 1.84e19 超大整数
DECIMAL(M,D) 按精度 精确小数 精确小数 金额计算
FLOAT 4字节 非精确小数 非精确小数 科学计算
DOUBLE 8字节 非精确小数 非精确小数 高精度浮点

3.2 字符串类型

类型 最大长度 用途
CHAR(M) 固定长度,0~255 性别、状态码
VARCHAR(M) 可变长度,0~65535(取决于行大小) 姓名、标题
TEXT 65535字符 文章内容
TINYTEXT 255字符 短文本
MEDIUMTEXT 16777215字符 中长文本
LONGTEXT 4GB 大段文本
BLOB 系列 同 TEXT,但存二进制 图片、文件

3.3 日期与时间类型

类型 格式 范围 用途
DATE YYYY-MM-DD 1000-01-01 ~ 9999-12-31 出生日期、节日
TIME HH:MM:SS -838:59:59 ~ 838:59:59 事件时间
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 ~ 9999-12-31 日志时间
TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 ~ 2038-01-19 自动更新当前时间
YEAR YYYY 1901 ~ 2155 年份

4. 注意事项

  1. 表名、列名建议全小写 ,关键字大写,提高可读性:

    sql 复制代码
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50) NOT NULL
    );
  2. CHAR 固定长度,不足补空格;VARCHAR 可变长度,更节省空间。

  3. 金额一定用 DECIMAL 而不是 FLOAT/DOUBLE,避免精度丢失。

  4. TIMESTAMP 会受时区影响,DATETIME 不受时区影响。

  5. 大型文本字段(TEXT/BLOB)会单独存储,不适合频繁搜索。

相关推荐
malog_12 分钟前
Milvus向量数据库:AI时代的搜索革命
数据库·人工智能·后端·milvus
胡耀超24 分钟前
《设计数据密集型应用》(DDIA, 2nd ed.) 心智模型导览——《Designing Data-Intensive Applications》书介绍导航
大数据·数据库·分布式·ai·架构·数据
ai安歌30 分钟前
鸿蒙PC:Qt适配OpenHarmony实战【人名录】:单机联系人卡片,不读系统通讯录也能演示详情联动
数据库·qt·harmonyos
夏贰四31 分钟前
数据库管理有哪些核心要点?数据库管理该如何规范落地?
大数据·数据库·数据库管理·数据库管理员
彦为君37 分钟前
JavaSE-11-ByteBuffer(NIO核心组件)
java·开发语言·前端·数据库·后端·spring·nio
2301_803538951 小时前
数据分析中count函数怎么用更高效
数据库·oracle
YL200404261 小时前
【Redis基础篇】Redis常见命令
数据库·redis·缓存
ZengLiangYi1 小时前
ChatCrystal大量对话导入时的内存优化
sql·ai编程
码上谈兵1 小时前
一次 MySQL 连接池打满,我花一晚上重构了 Go 的数据库操作
mysql
treacle田1 小时前
达梦数据库-收缩数据库表空间步骤及示例记录总结
数据库·达梦数据库收缩表空间