DML (Data Manipulation Language) - 数据操纵语言
DML语句用于操作数据库中的数据,即插入、更新、删除数据记录。常见的DML命令有INSERT、UPDATE、DELETE。
插入数据:
INSERT INTO students (name, age, class) VALUES ('Alice', 18, 'A');
更新数据:
UPDATE students SET age = 19 WHERE name = 'Alice';
删除数据:
DELETE FROM students WHERE age > 20;
DDL (Data Definition Language) - 数据定义语言
DDL语句用于定义和管理数据库的结构,如创建、修改、删除表、索引、视图等数据库对象。
创建表:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
修改表结构:
ALTER TABLE students ADD COLUMN email VARCHAR(100);
删除表:
DROP TABLE students;
DAL (Data Access Layer) - 数据访问层
严格来说,DAL不是SQL语句的一部分,而是一种编程设计模式或架构概念,用于抽象化数据存储的细节,为业务逻辑层提供统一的数据访问接口。例如,在Java中,使用JDBC、Hibernate或Spring Data JPA编写的数据访问代码就属于DAL。
示例(非SQL,以Java使用JDBC为例):
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM students");
DQL (Data Query Language) - 数据查询语言
DQL用于查询数据库中的数据,最核心的命令是SELECT,用于检索满足条件的数据记录。
简单查询:
SELECT * FROM students;
条件查询:
SELECT name, age FROM students WHERE age >= 18;
排序与限制:
SELECT * FROM students ORDER BY age DESC LIMIT 10;
总结来说,DML处理数据的增删改,DDL处理数据库结构的定义与修改,DAL是应用程序中处理数据访问逻辑的层次,而DQL则专注于数据的查询操作。