MySQL DDL(数据定义语言)总结

DDL:

text 复制代码
Data Definition Language
数据定义语言

作用:

用于定义和管理数据库对象。

包括:

  • 数据库
  • 表
  • 字段
  • 约束

核心思想:

text 复制代码
DDL 负责"结构"
DML 负责"数据"

数据库操作


查询数据库

查询所有数据库

sql 复制代码
SHOW DATABASES;

查看当前 MySQL 中所有数据库。


查询当前使用的数据库

sql 复制代码
SELECT DATABASE();

查看当前正在操作哪个数据库。


创建数据库

sql 复制代码
CREATE DATABASE [IF NOT EXISTS] 数据库名
[DEFAULT CHARSET 字符集]
[COLLATE 排序规则];

示例:

sql 复制代码
CREATE DATABASE IF NOT EXISTS school
DEFAULT CHARSET utf8mb4;

关键点

IF NOT EXISTS

如果数据库不存在才创建。

存在则不报错。


DEFAULT CHARSET

指定字符集。

常用:

text 复制代码
utf8mb4

支持:

  • 中文
  • emoji
  • 特殊字符

COLLATE

指定排序规则。

一般很少手动写。


删除数据库

sql 复制代码
DROP DATABASE [IF EXISTS] 数据库名;

示例:

sql 复制代码
DROP DATABASE IF EXISTS school;

使用数据库

sql 复制代码
USE 数据库名;

示例:

sql 复制代码
USE school;

表示:

后续操作都在这个数据库中进行。


表操作


查询表

查询当前数据库所有表

sql 复制代码
SHOW TABLES;

查询表结构

sql 复制代码
DESC 表名;

示例:

sql 复制代码
DESC student;

查看:

  • 字段名
  • 类型
  • 是否为空
  • 主键
  • 默认值

查询建表语句

sql 复制代码
SHOW CREATE TABLE 表名;

示例:

sql 复制代码
SHOW CREATE TABLE student;

作用:

查看当初创建表时的完整 SQL。

非常重要。


创建表

语法:

sql 复制代码
CREATE TABLE 表名(
    字段1 类型 [COMMENT 注释],
    字段2 类型 [COMMENT 注释],
    字段3 类型 [COMMENT 注释]
)[COMMENT 表注释];

示例:

sql 复制代码
CREATE TABLE student(
    id INT COMMENT '编号',
    name VARCHAR(20) COMMENT '姓名',
    age INT COMMENT '年龄'
) COMMENT '学生表';

修改表


添加字段

sql 复制代码
ALTER TABLE 表名
ADD 字段名 类型(长度)
[COMMENT 注释]
[约束];

示例:

sql 复制代码
ALTER TABLE student
ADD gender CHAR(1) COMMENT '性别';

修改字段类型

sql 复制代码
ALTER TABLE 表名
MODIFY 字段名 新类型(长度);

示例:

sql 复制代码
ALTER TABLE student
MODIFY name VARCHAR(50);

作用:

修改字段数据类型。


修改字段名

sql 复制代码
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 类型(长度)
[COMMENT 注释]
[约束];

示例:

sql 复制代码
ALTER TABLE student
CHANGE name username VARCHAR(30);

作用:

  • 修改字段名
  • 修改字段类型

一起完成。


修改表名

sql 复制代码
ALTER TABLE 旧表名
RENAME TO 新表名;

示例:

sql 复制代码
ALTER TABLE student
RENAME TO student_info;

删除表

sql 复制代码
DROP TABLE [IF EXISTS] 表名;

示例:

sql 复制代码
DROP TABLE IF EXISTS student;

清空表

sql 复制代码
TRUNCATE TABLE 表名;

示例:

sql 复制代码
TRUNCATE TABLE student;

作用:

删除所有数据。

特点:

  • 保留表结构
  • 相当于重新创建表
  • 执行速度快

删除字段

sql 复制代码
ALTER TABLE 表名
DROP 字段名;

示例:

sql 复制代码
ALTER TABLE student
DROP age;

DDL 最核心理解

DDL 操作的是:

text 复制代码
数据库结构

不是数据本身。

比如:

  • 创建数据库
  • 创建表
  • 修改字段
  • 删除字段

这些都属于:

text 复制代码
定义结构

高频面试点


DROP、DELETE、TRUNCATE 区别

DROP

直接删除整个对象。

text 复制代码
表没了
结构也没了
数据也没了

DELETE

删除数据。

text 复制代码
表还在
结构还在

可以加 WHERE。


TRUNCATE

清空整张表。

text 复制代码
表还在
结构还在
数据全没

执行速度比 DELETE 快。


最后总结

操作 语句
查询数据库 SHOW DATABASES
创建数据库 CREATE DATABASE
删除数据库 DROP DATABASE
使用数据库 USE
查询表 SHOW TABLES
查看表结构 DESC
查看建表语句 SHOW CREATE TABLE
创建表 CREATE TABLE
添加字段 ALTER TABLE ADD
修改字段 ALTER TABLE MODIFY
修改字段名 ALTER TABLE CHANGE
删除字段 ALTER TABLE DROP
删除表 DROP TABLE
清空表 TRUNCATE TABLE

记忆口诀

text 复制代码
CREATE 创建
ALTER 修改
DROP 删除
TRUNCATE 清空
DESC 看结构
SHOW 看信息
USE 切库
相关推荐
geovindu6 分钟前
Pivoting and Unpivoting Data in SQL using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
我命由我123459 分钟前
6-3.Python 异常处理 - 异常处理进阶(else 块与 finally 块、异常传递、自定义异常)
开发语言·前端·数据库·后端·python·学习·java-ee
Elastic 中国社区官方博客17 分钟前
Elastic 重大事件功能如何将 100 条日志样本转化为检测规则
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎
adinnet202617 分钟前
持续智能问数:多轮对话状态管理、下钻钻取与经营驾驶舱的演进
javascript·数据库·人工智能
系统集成-鹰翔1 小时前
ERP接口月度统计少了零单月份:SQLite分组与最近三个月均值排查
javascript·数据库·经验分享·后端
ClouGence1 小时前
支付机构为什么需要数据同步:从监管报送到跨云业务协作
数据库·数据分析
wuyk5551 小时前
PyQt6-第14讲-数据库与Excel双向同步
数据库·python·ui·excel·pyqt
乐观的Terry1 小时前
AI翻译助手-JWT与redis无状态认证
数据库·redis·缓存
胖头鱼的鱼缸(尹海文)2 小时前
胖头鱼的技术专栏-482 Oracle AI DB 23.26.4新特性一览(20261027)
数据库·人工智能·oracle
ss2732 小时前
PostgreSQL事务隔离级别与案例
数据库·postgresql