什么是 Data Manipulation Language 即 DML

简介: 什么是 Data Manipulation Language 即 DML

Data Manipulation Language(DML)是 Structured Query Language(SQL)的一个子集,用于管理和操作数据库中的数据。DML 提供了多种语句,包括 INSERT、UPDATE、DELETE 和 SELECT,使得用户能够执行数据的插入、修改、删除和查询操作。


DML 的关键操作

  1. INSERT 语句用于向数据库表中添加新的数据行。例如,如果我们有一个名为 Students 的表格,其中包括 idnameage 三个字段,我们可以使用以下 SQL 代码来插入一条新记录:
INSERT INTO Students (id, name, age) VALUES (1, `张三`, 20);

这条语句将为 Students 表添加一条新数据,其中 id 是 1,name张三age 是 20。


2.UPDATE 语句允许用户修改表中已存在的数据。继续使用上面的 Students 表为例,如果我们需要更新 张三 的年龄,可以执行以下操作:

UPDATE Students SET age = 21 WHERE id = 1;

此语句查找 id 等于 1 的记录,并将 age 字段更新为 21。


3.DELETE 语句用于从表中删除数据。如果 张三 不再是我们数据库中的一员,我们可以这样删除他的记录:

DELETE FROM Students WHERE id = 1;


执行后,id 为 1 的记录将从 Students 表中被彻底删除。


4.SELECT 语句用于查询表中的数据。如果我们想检索表中所有学生的信息,可以使用:

SELECT * FROM Students;


这会返回 Students 表中所有的记录。


DML 和数据完整性

使用 DML 时,数据库管理系统(DBMS)通常提供了一系列的数据完整性保证措施。例如,通过外键约束确保引用的完整性,或使用事务来保证操作的原子性,一致性,隔离性和持久性(ACID 特性)。事务是一个操作序列,这些操作作为一个整体一起执行,以确保数据的一致性和正确性。


事务的控制语句

DML 操作通常涉及事务控制语句,包括 BEGIN TRANSACTIONCOMMITROLLBACK


  • BEGIN TRANSACTION 标记事务的开始。
  • COMMIT 用于提交事务,确保所有操作的修改被永久保存。
  • ROLLBACK 在遇到错误时撤销事务中所有未提交的操作。


例如,如果在一个银行应用中转账,我们可能需要执行两个 UPDATE 操作,一个是从付款人账户扣款,另一个是向收款人账户增款。我们可以将这两个操作放在一个事务中:

BEGIN TRANSACTION;
UPDATE Accounts SET balance = balance - 100 WHERE id = 1; -- 付款人账户
UPDATE Accounts SET balance = balance + 100 WHERE id = 2; -- 收款人账户
COMMIT;

如果任何一个 UPDATE 操作失败,事务将回滚,保证账户余额不会错误地只完成一个操作。


DML 的高级应用

在更复杂的数据库应用中,DML 可以配合条件语句和循环控制结构使用,如 SQL 的 CASE 或 WHILE 语句。这使得 DML 不仅限于简单的数据操作,还能处理复杂的业务逻辑。


结论

DML 是任何涉及数据存储、检索和管理的系统的基石。掌握其用法对于数据库设计者、开发者以及最终用户都极为重要。正确使用 DML


可以高效、安全地管理数据,满足从简单的个人应用到复杂的企业级系统的需求。通过结合其他 SQL 组件和编程技巧,DML 的强大功能可以为用户带来极大的灵活性和效益。

相关文章
什么是 SAP ABAP Cumulating Locks
什么是 SAP ABAP Cumulating Locks
|
11月前
|
SQL Java HIVE
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(一)
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(一)
|
11月前
|
SQL 分布式计算 HIVE
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(二)
Hive学习---3、DML(Data Manipulation Language)数据操作、查询(二)
|
11月前
|
机器学习/深度学习 数据采集 人工智能
|
SQL 关系型数据库 MySQL
MySQL数据库:第十四章:(DML)Data Manipulation Language数据操纵语言
MySQL数据库:第十四章:(DML)Data Manipulation Language数据操纵语言
|
存储 SQL 关系型数据库
|
存储 SQL 关系型数据库