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)会单独存储,不适合频繁搜索。

相关推荐
what丶k14 分钟前
SpringBoot3 缓存抽象深度实践:Caffeine+Redis多级缓存,穿透/雪崩/击穿防御全方案
数据库·redis·缓存
咖啡の猫15 分钟前
Redis简单介绍
数据库·redis·缓存
-XWB-16 分钟前
【Oracle】Oracle诊断系列(4/6):表空间与对象管理——存储优化与空间规划
数据库·oracle
山峰哥23 分钟前
SQL优化全解析:从索引策略到查询性能飞跃
大数据·数据库·sql·编辑器·深度优先
葫三生32 分钟前
存在之思:三生原理与现象学对话可能?
数据库·人工智能·神经网络·算法·区块链
不凉帅35 分钟前
NO.6 数据库设计基础知识
数据库·分布式数据库·软考·数据库设计
TOOLS指南39 分钟前
谷歌AI Gemin怎么使用?Gemini国内使用指南!
数据库·微软
cuber膜拜43 分钟前
Weaviate 简介与基本使用
数据库·python·docker·向量数据库·weaviate
西京刀客1 小时前
MySQL字符集排序规则冲突问题(utf8mb4_unicode_ci和utf8mb4_0900_ai_ci )
mysql·排序·utf8mb4
MAHATMA玛哈特科技1 小时前
以曲求直:校平技术中的反直觉哲学
前端·数据库·制造·校平机·矫平机·液压矫平机