{"content":{"title":"一文带你玩转SQL中的DML（数据操作）语言：数据操作不再难！","body":"前面我们介绍了SQL语句中数据定义语言（DDL）的概念以及它的常用语句，那么DML又是什么呢？二者有什么区别呢？本篇文章将为你讲述。\r\n\r\n## 一、DML简介\r\n\r\nDML是指数据操作语言，英文全称是Data Manipulation Language，用来对数据库中表的数据记录进行更新。\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436011-KPd24T.png)\r\n\r\n它创建的模式（表）使用数据操作语言来填充。DDL填充表的行，每行称为Tuple。使用DML，您可以插入，修改，删除和检索表中的信息。DML命令有助于管理存储在数据库中的数据。但是，DML命令不会自动提交，因此变化不是永久性的。所以，可以回滚操作。\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436095-V992i5.png)\r\n\r\n一些DML命令包括insert，update，delete和select。insert命令有助于将新记录或行存储到表中；update命令有助于修改表中的现有记录；delete命令允许从表中删除某个记录或一组记录；select命令允许从一个或多个表中检索特定记录。\r\n\r\n关键字：\r\n\r\n* 插入 insert\r\n* 删除 delete\r\n* 更新 update\r\n\r\n## 二、DDL 语句与DML 语句的主要区别\r\n\r\nDDL 语句与DML 语句是SQL语言中的两种主要语句类别，它们在数据库操作中起到了不同的作用。\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436454-xcrRmi.png)\r\n\r\n具体来说，DDL有助于更改数据库的结构。它主要用于定义或修改数据库的架构，包括创建、删除和修改表、数据类型、索引等。常用的DDL语句关键字包括CREATE、DROP和ALTER等。例如，可以使用CREATE TABLE语句来创建一个新表，使用ALTER TABLE语句来修改现有表的结构。\r\n\r\n相反，DML有助于管理数据库中的数据。它涵盖了SQL中处理数据的基本操作，包括查询、插入、更新和删除数据。DML语句通常用于从数据库中提取信息、修改现有数据或添加新数据。一些常用的DML语句关键字包括SELECT、INSERT、UPDATE和DELETE等。通过这些语句，用户可以对数据库中的数据进行各种操作，以满足其需求。\r\n\r\n总之，DDL和DML分别代表了在数据库操作中的结构定义和管理数据的两个关键方面，它们共同构成了SQL语言的核心功能，使用户能够有效地创建和管理数据库。\r\n\r\n> 你还在苦恼找不到真正免费的编程学习平台吗?可以试试[云端源想](https://ydcode.cn/memberIndex?sourceId=226)！课程视频、在线书籍、在线编程、实验场景模拟、一对一咨询……你想要的全部学习资源这里都有，重点是统统免费！[点这里即可查看](https://ydcode.cn/memberIndex?sourceId=226)\r\n\r\n## 三、DML 常见操作\r\n\r\n前面我们已经了解了DML的概念和与DDL 语句的主要区别，下面我们来看看DML 常用语法有哪些。\r\n\r\n首先，准备一张表：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436495-h7Vc48.png)\r\n\r\n### 1. 插入数据(INSERT)\r\n\r\n#### 1.1 语法：\r\n\r\n```\r\nINSERT INTO 表名[(字段1,字段2,...)] VALUES(字段的1值,字段2的值,...)\r\n```\r\n\r\n\r\n注:在语法定义上\"\\[]\"中的内容表示可写可不写。\r\n\r\n例：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436525-26w318.png)\\\r\n注:\r\n\r\n* 数据库中字符串的字面量是使用单引号’'表达的\r\n* VALUES中指定的值要与指定的字段名个数,顺序,以及类型完全一致\r\n* 查看表中数据\r\n\r\n```\r\nSELECT * FROM person\r\n```\r\n\r\n\r\n#### 1.2 插入默认值\r\n\r\n当插入数据时不指定某个字段，那么该字段插入默认值。若创建表时字段没有显示的指定默认值时，默认值插入NULL。\r\n\r\n例：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436782-1gp4av.png)\r\n\r\n**注意事项：**\r\n\r\n* age字段没有指定，因此插入默认值NULL；\r\n* 数据库中任何字段任何类型默认值都是NULL，当然可以在创建表时使用DEFAULT指定。\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436831-dmig9k.png)\r\n\r\n#### 1.3 全列插入\r\n\r\n当我们插入数据不指定任何字段名时，就是全列插入。此时VALUES子句中需要为每个字段指定值。并且要求(个数，顺序，类型必须与表完全一致)\r\n\r\n例：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436854-5O6N98.png)\r\n\r\n### 2. 修改数据(UPDATE)\r\n\r\n#### 2.1 语法\r\n\r\n```\r\nUPDATE 表名 SET 字段1=新值1[,字段2=新值2,...][WHERE 过滤条件]\r\n```\r\n\r\n\r\n例：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436908-Oq4O5U.png)\r\n\r\n**注意：**\r\n\r\nUPDATE语句通常都要添加WHERE子句，用于添加要修改记录的条件，否则全表修改！\r\n\r\n#### 2.2 修改指定记录(添加WHERE子句)\r\n\r\n例：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436953-Ge54Fv.png)\r\n\r\nWHERE子句中常用的条件\r\n\r\n\\=, <, <= ,> ,>= ,<>(不等于使用<>。!=不是所有数据库都支持)\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699436985-6bmLy1.png)\r\n\r\n#### 2.3 将一个计算表达式的结果作为值使用\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699437016-3tKy6T.png)\r\n\r\n#### 2.4 同时修改多个字段\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699437040-VPcyIj.png)\r\n\r\n### 3. 删除语句(DELETE)\r\n\r\n#### 3.1 语法:\r\n\r\n```\r\nDELETE FROM 表名 [WHERE 过滤条件]\r\n```\r\n\r\n**\r\n\r\n**注：DELETE语句通常都要添加WHERE子句，否则是清空表操作**\r\n\r\n例：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699437105-jcgk14.png)\r\n\r\n#### 3.2 清空表操作\r\n\r\n```\r\nDELETE FROM person\r\n```\r\n\r\n\r\n练习：\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699437160-9EL45i.png)\r\n\r\n## 四、总结\r\n\r\nDML是一种用于操作数据库中数据的语言。它提供了对数据的增、删、改、查等基本操作，是进行数据库编程的重要工具之一。\r\n\r\n![Description](https://ydcqoss.ydcode.cn/ydyx/bbs/1699437192-DzSvZ6.png)\r\n\r\n在DML中，我们可以使用SELECT语句来查询数据库中的数据，使用INSERT语句来插入新的数据，使用UPDATE语句来更新已有的数据，以及使用DELETE语句来删除数据。这些操作可以通过简单的语法来实现，使得开发者能够更方便地对数据库中的数据进行处理。\r\n\r\n除了基本操作外，DML还支持事务处理机制。事务可以确保一系列操作的完整性和一致性，如果其中任何一个步骤失败，则所有步骤都会被回滚，否则它们将被提交到数据库中。这种机制对于需要保证数据一致性的应用程序非常重要。\r\n\r\n总的来说，DML是进行数据库编程不可或缺的一部分。通过熟练掌握DML的基本操作和事务处理机制，我们可以更高效地管理和操作数据库中的数据。同时，在实际应用中需要注意一些技巧和安全问题，如避免SQL注入攻击、优化查询语句等。"},"author":{"user":"https://learnblockchain.cn/people/17279","address":null},"history":null,"timestamp":1699864795,"version":1}