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 切库