DML、DDL、DAL、DQL的含义与区别

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则专注于数据的查询操作。