在数据库开发中,SQL 是我们与数据交互的核心语言。它不仅能帮我们查询、修改数据,还能定义数据库的结构和权限。今天,我们就从 SQL 分类入手,结合实战案例,把常用操作一网打尽。
一、SQL 五大分类:各司其职
1. 数据查询语言(DQL)
核心作用:从数据库中查询和检索数据(仅读取,不修改数据),是最常用的 SQL 类别。
核心关键字:SELECT(核心)、FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT、JOIN 等。
示例:查询前 10 名年龄大于 20 的用户姓名和手机号,并按年龄降序排列
SELECT name, phone
FROM users
WHERE age > 20
ORDER BY age DESC
LIMIT 10;
2. 数据操作语言(DML)
核心作用:操作(增/删/改)数据库中的数据(仅修改数据内容,不改变表结构)。
核心关键字:INSERT(新增)、UPDATE(修改)、DELETE(删除)、MERGE(合并,部分数据库支持)。
示例:
• 新增一条用户记录:
INSERT INTO users (name, age, phone) VALUES ('张三', 25, '13800138000');
• 修改用户手机号:
UPDATE users SET phone = '13900139000' WHERE id = 1;
• 删除年龄小于 18 的用户:
DELETE FROM users WHERE age < 18;
3. 数据定义语言(DDL)
核心作用:定义/修改/删除数据库对象(表、索引、视图、触发器、数据库等)的结构,操作会直接生效(无需事务提交)。
核心关键字:CREATE(创建)、ALTER(修改)、DROP(删除)、TRUNCATE(清空表,属于 DDL 而非 DML)、RENAME(重命名)。
示例:
• 创建用户表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT,
phone VARCHAR(20) UNIQUE
);
• 给用户表新增 email 字段:
ALTER TABLE users ADD COLUMN email VARCHAR(100);
• 删除用户表:
DROP TABLE users;
• 清空用户表(删除所有数据且不可回滚):
TRUNCATE TABLE users;
4. 数据控制语言(DCL)
核心作用:管理数据库的权限和事务,控制用户对数据库的访问权限、事务提交/回滚等。
核心关键字:GRANT(授权)、REVOKE(撤销权限)、COMMIT(提交事务)、ROLLBACK(回滚事务)、SAVEPOINT(保存点)、SET TRANSACTION(设置事务属性)。
示例:
• 授予用户 test 对 users 表的查询/插入权限:
GRANT SELECT, INSERT ON users TO 'test'@'localhost';
• 撤销 test 用户的插入权限:
REVOKE INSERT ON users FROM 'test'@'localhost';
• 提交事务(确认 DML 操作):
COMMIT;
• 回滚事务(撤销未提交的 DML 操作):
ROLLBACK;
5. 事务控制语言(TCL)
补充说明:部分分类体系中,TCL 会从 DCL 中独立出来,专门聚焦事务管理(本质是 DCL 的子集)。
核心关键字:COMMIT、ROLLBACK、SAVEPOINT。
示例:
• 开启事务(部分数据库需显式声明)
START TRANSACTION;
UPDATE users SET age = 26 WHERE id = 1;
• 设置保存点
SAVEPOINT sp1;
DELETE FROM users WHERE id = 2;
• 回滚到保存点(仅撤销删除操作,修改操作保留)
ROLLBACK TO sp1;
• 提交最终修改
COMMIT;
二、表结构修改实战:ALTER TABLE 详解
在日常开发中,我们经常需要修改已存在的表结构,ALTER TABLE 就是我们的核心工具。下面是常用操作的实战示例:
1. 新增字段(ADD)
— 增加字段
ALTER TABLE students ADD COLUMN dateT date;
— 设置默认值
ALTER TABLE students ADD dateT date DEFAULT "2025-12-12";
2. 修改字段(MODIFY)
注意:MODIFY 后必须明确指定「字段类型」,哪怕只是修改注释,也要重新声明类型。
— 修改字段类型、属性
ALTER TABLE students MODIFY dataT datetime;
ALTER TABLE students MODIFY dateT date comment "日期";
— 修改字段默认不为空
ALTER TABLE students MODIFY stu_id int not null;
— 修改字段默认为空
ALTER TABLE students MODIFY stu_id int default null;
3. 删除字段(DROP)
— 删除字段
ALTER TABLE students DROP length;
4. 重命名字段(CHANGE)
— 修改字段名称
ALTER TABLE students CHANGE stu_id sid varchar(255);
5. 修改表字符集
— 修改表的字符集
ALTER TABLE students CHARACTER SET utf8;
6. 重命名表(RENAME TO)
— 修改表名
ALTER TABLE students RENAME TO student;
— 另外一种写法
RENAME TABLE students TO student;
7. 删除表(DROP TABLE)
— 删除表
DROP TABLE IF EXISTS students;
三、核心总结表
| 分类 | 核心作用 | 核心关键字 | 典型操作 |
| DQL | 查询数据 | SELECT、FROM、WHERE | 多表查询、统计 |
| DML | 增删改数据 | INSERT、UPDATE、DELETE | 新增记录、改值 |
| DDL | 定义/修改数据库结构 | CREATE、ALTER、DROP | 建表、删索引 |
| DCL | 权限/事务控制(广义) | GRANT、REVOKE、COMMIT | 授权、提交事务 |
| TCL | 事务控制(狭义) | COMMIT、ROLLBACK、SAVEPOINT | 回滚、保存点 |
掌握 SQL 的分类和常用操作,能让我们在数据库开发中更加得心应手。无论是查询数据、修改表结构,还是管理权限和事务,都能游刃有余。
网硕互联帮助中心







评论前必须登录!
注册