一、DDL(数据定义语言)
- 用途:用于定义和管理数据库结构及对象,如创建、修改和删除数据库、表、索引、视图等。
- 特点
- 结构定义:专注于构建数据库的框架,确定表、视图、索引等的形态。
- 不可逆操作:像 DROP 命令,一旦执行,删除的对象无法恢复,所以操作前务必谨慎思考。
- 自动提交:执行后所有更改立即生效,不能通过回滚撤销。
- 影响数据库模式:会改变数据库的整体架构,例如新增表或者调整现有表结构。
- 常用命令
- CREATE:创建新的数据库对象。
- 示例:CREATE TABLE students (id INT, name VARCHAR (100));
- ALTER:修改已存在的数据库对象。
- 示例:ALTER TABLE students ADD age INT;
- DROP:删除数据库对象。
- 示例:DROP TABLE students;
- TRUNCATE:清空表内所有记录,但保留表结构。
- 示例:TRUNCATE TABLE students;
- CREATE:创建新的数据库对象。
二、DML(数据操作语言)
- 用途:主要处理数据库中的数据,涵盖插入、更新、删除和查询等操作。
- 特点
- 数据操作:针对数据库里的数据进行增、删、改、查。
- 可回滚:在事务处理场景中,若出错可撤销之前的操作。
- 支持事务:能通过 BEGIN TRANSACTION、COMMIT 和 ROLLBACK 等命令管控事务流程。
- 不影响数据库结构:只改变数据内容,不改变数据库的整体框架结构。
- 常用命令
- INSERT:向表中插入新数据。
- 示例:INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20);
- UPDATE:更新表中已有数据。
- 示例:UPDATE students SET age = 21 WHERE id = 1;
- DELETE:删除表中的数据。
- 示例:DELETE FROM students WHERE id = 1;
- SELECT:查询表中的数据。
- 示例:SELECT * FROM students;
- INSERT:向表中插入新数据。
总结:DDL 着重于数据库结构的搭建与管理,操作常不可逆且自动提交;DML 专注于数据的处理,支持事务与回滚操作,不涉及数据库结构的变动。