MySQL DDL數(shù)據(jù)定義語言示例總結(jié)
DDL:
Data Definition Language 數(shù)據(jù)定義語言
作用:
用于定義和管理數(shù)據(jù)庫對象。
包括:
- 數(shù)據(jù)庫
- 表
- 字段
- 約束
核心思想:
DDL 負責(zé)“結(jié)構(gòu)” DML 負責(zé)“數(shù)據(jù)”
數(shù)據(jù)庫操作
查詢數(shù)據(jù)庫
查詢所有數(shù)據(jù)庫
SHOW DATABASES;
查看當(dāng)前 MySQL 中所有數(shù)據(jù)庫。
查詢當(dāng)前使用的數(shù)據(jù)庫
SELECT DATABASE();
查看當(dāng)前正在操作哪個數(shù)據(jù)庫。
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫名 [DEFAULT CHARSET 字符集] [COLLATE 排序規(guī)則];
示例:
CREATE DATABASE IF NOT EXISTS school DEFAULT CHARSET utf8mb4;
關(guān)鍵點
IF NOT EXISTS
如果數(shù)據(jù)庫不存在才創(chuàng)建。
存在則不報錯。
DEFAULT CHARSET
指定字符集。
常用:
utf8mb4
支持:
- 中文
- emoji
- 特殊字符
COLLATE
指定排序規(guī)則。
一般很少手動寫。
刪除數(shù)據(jù)庫
DROP DATABASE [IF EXISTS] 數(shù)據(jù)庫名;
示例:
DROP DATABASE IF EXISTS school;
使用數(shù)據(jù)庫
USE 數(shù)據(jù)庫名;
示例:
USE school;
表示:
后續(xù)操作都在這個數(shù)據(jù)庫中進行。
表操作
查詢表
查詢當(dāng)前數(shù)據(jù)庫所有表
SHOW TABLES;
查詢表結(jié)構(gòu)
DESC 表名;
示例:
DESC student;
查看:
- 字段名
- 類型
- 是否為空
- 主鍵
- 默認值
查詢建表語句
SHOW CREATE TABLE 表名;
示例:
SHOW CREATE TABLE student;
作用:
查看當(dāng)初創(chuàng)建表時的完整 SQL。
非常重要。
創(chuàng)建表
語法:
CREATE TABLE 表名(
字段1 類型 [COMMENT 注釋],
字段2 類型 [COMMENT 注釋],
字段3 類型 [COMMENT 注釋]
)[COMMENT 表注釋];
示例:
CREATE TABLE student(
id INT COMMENT '編號',
name VARCHAR(20) COMMENT '姓名',
age INT COMMENT '年齡'
) COMMENT '學(xué)生表';
修改表
添加字段
ALTER TABLE 表名 ADD 字段名 類型(長度) [COMMENT 注釋] [約束];
示例:
ALTER TABLE student ADD gender CHAR(1) COMMENT '性別';
修改字段類型
ALTER TABLE 表名 MODIFY 字段名 新類型(長度);
示例:
ALTER TABLE student MODIFY name VARCHAR(50);
作用:
修改字段數(shù)據(jù)類型。
修改字段名
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型(長度) [COMMENT 注釋] [約束];
示例:
ALTER TABLE student CHANGE name username VARCHAR(30);
作用:
- 修改字段名
- 修改字段類型
一起完成。
修改表名
ALTER TABLE 舊表名 RENAME TO 新表名;
示例:
ALTER TABLE student RENAME TO student_info;
刪除表
DROP TABLE [IF EXISTS] 表名;
示例:
DROP TABLE IF EXISTS student;
清空表
TRUNCATE TABLE 表名;
示例:
TRUNCATE TABLE student;
作用:
刪除所有數(shù)據(jù)。
特點:
- 保留表結(jié)構(gòu)
- 相當(dāng)于重新創(chuàng)建表
- 執(zhí)行速度快
刪除字段
ALTER TABLE 表名 DROP 字段名;
示例:
ALTER TABLE student DROP age;
DDL 最核心理解
DDL 操作的是:
數(shù)據(jù)庫結(jié)構(gòu)
不是數(shù)據(jù)本身。
比如:
- 創(chuàng)建數(shù)據(jù)庫
- 創(chuàng)建表
- 修改字段
- 刪除字段
這些都屬于:
定義結(jié)構(gòu)
高頻面試點
DROP、DELETE、TRUNCATE 區(qū)別
DROP
直接刪除整個對象。
表沒了 結(jié)構(gòu)也沒了 數(shù)據(jù)也沒了
DELETE
刪除數(shù)據(jù)。
表還在 結(jié)構(gòu)還在
可以加 WHERE。
TRUNCATE
清空整張表。
表還在 結(jié)構(gòu)還在 數(shù)據(jù)全沒
執(zhí)行速度比 DELETE 快。
最后總結(jié)
| 操作 | 語句 |
|---|---|
| 查詢數(shù)據(jù)庫 | SHOW DATABASES |
| 創(chuàng)建數(shù)據(jù)庫 | CREATE DATABASE |
| 刪除數(shù)據(jù)庫 | DROP DATABASE |
| 使用數(shù)據(jù)庫 | USE |
| 查詢表 | SHOW TABLES |
| 查看表結(jié)構(gòu) | DESC |
| 查看建表語句 | SHOW CREATE TABLE |
| 創(chuàng)建表 | CREATE TABLE |
| 添加字段 | ALTER TABLE ADD |
| 修改字段 | ALTER TABLE MODIFY |
| 修改字段名 | ALTER TABLE CHANGE |
| 刪除字段 | ALTER TABLE DROP |
| 刪除表 | DROP TABLE |
| 清空表 | TRUNCATE TABLE |
記憶口訣
CREATE 創(chuàng)建 ALTER 修改 DROP 刪除 TRUNCATE 清空 DESC 看結(jié)構(gòu) SHOW 看信息 USE 切庫
到此這篇關(guān)于MySQL DDL數(shù)據(jù)定義語言示例總結(jié)的文章就介紹到這了,更多相關(guān)MySQL DDL數(shù)據(jù)定義語言內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL表空間結(jié)構(gòu)詳解表空間到段頁操作
在MySQL架構(gòu)和存儲引擎專題中介紹了使用不同存儲引擎創(chuàng)建表時生成的表空間數(shù)據(jù)文件,在本章節(jié)主要介紹使用InnoDB存儲引擎創(chuàng)建表時生成的表空間數(shù)據(jù)文件,對mysql表空間結(jié)構(gòu)及表空間到段頁相關(guān)知識感興趣的朋友一起看看吧2025-05-05
MySQL高效處理ORDER BY與GROUP BY查詢的優(yōu)化策略
在高并發(fā)、大數(shù)據(jù)量的業(yè)務(wù)場景中,SQL 查詢性能直接影響系統(tǒng)整體響應(yīng)速度,本文將深入探討 MySQL 中排序與分組的執(zhí)行機制,并提供一系列實用的優(yōu)化策略,希望對大家有所幫助2026-02-02

