数据操纵语言

家族的语法元素用于选择、插入、删除和更新数据库中的数据

数据操纵语言(Data Manipulation Language, DML)是用于数据库操作,对数据库其中的物件和资料执行存取工作的编程语句,通常是数据库专用编程语言之中的一个子集,例如在资讯软件产业通行标准的SQL语言中,以INSERTUPDATEDELETE三种指令为核心,分别代表插入(意指新增或创建)、更新(修改)与删除(销毁)。在使用数据库的系统开发过程中,其中应用程式必然会使用的指令;而加上 SQL的SELECT语句,欧美地区的开发人员把这四种指令,以“CRUD”(分别为 Create, Retrieve, Update, Delete英文四前缀字母缩略的术语)来称呼;而亚洲地区使用汉语的开发人员,或可能以四个汉字:增 查 改 删 来略称。

语法结构

DML 的主要功能即是存取资料,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他指令都可能需搭配WHERE指令来过滤资料范围,或是不加WHERE指令来存取全部的资料。

SELECT

SELECT是SQL数据操纵语言(DML)中用于查询表格内字段资料的指令,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。

基本格式有:

SELECT [ALL | DISTINCT] 欄位名 [,欄位名...]
 FROM 資料表名 [,資料表名...]
 [WHERE 篩選條件式]
 [GROUP BY 欄位名[,欄位名...]]
 [ORDER BY 欄位名[,欄位名...]]


INSERT

INSERT 是将资料插入到数据库物件中的指令,可以插入资料的数据库物件有资料表以及可更新查看表两种。

基本格式有:

INSERT INTO [資料表或可更新檢視表物件名稱] (欄位1, 欄位2, 欄位3, ...) VALUES (1, 2, 3, ...) -- 只需要根據指定的欄位來設定插入值。
INSERT INTO [資料表或可更新檢視表物件名稱] VALUES (1, 2, 3, ...) -- 必須要指定所有欄位的插入值。

例如:

INSERT INTO myTable (col1, col2, col3, col4, col5) VALUES (1, 2, 3, '4', '5')
INSERT INTO myTable VALUES (1, 2, 3, '4', '5')

UPDATE

UPDATE 指令是依给定条件,将符合条件的资料表中的资料更新为新的数值,其基本格式为:

UPDATE [資料表或可更新檢視表物件名稱] SET 1=1, 2=2, 3=3, ... WHERE [指定條件]

例如:

UPDATE myTable SET Col1 = 3, Col2 = 5, Col4 = 5 WHERE Col0 = 198273

DELETE

DELETE 指令为自数据库物件中删除资料的指令,基本语法为:

DELETE FROM [資料表或可更新檢視表名稱] WHERE [給定條件]
DELETE * FROM [資料表或可更新檢視表名稱] WHERE [給定條件] -- 部份資料庫需要加 "*" 才會生效,例如 Microsoft Access

例如:

DELETE FROM myTable WHERE col0 = 1918299

用户界面的增查改删功能

CRUD在多数用户界面的应用程式,也是与系统相关的重要功能。 例如在通讯录软件中,基本存储单元是单个联络人条目。一个通讯录软件最基本的功能,必须允许用户可以操作:

  • 添加或创建新的联络人条目
  • 读取,检索,搜索或查看现有条目
  • 更新或编辑现有条目
  • 删除现有条目

如果没有这四个操作,该软件或许不是完整的版本。由于这些操作很重要,它们通常在一个大的功能标题下记录和描述,例如“联络人管理”,“内容管理”或“联络人维护”(或“文档管理”),具体取决于基本存储单元 特定的应用程式)。

参考文献

  1. 完整的 SQL 中文参考网站
  2. MySQL SQL Syntax页面存档备份,存于互联网档案馆
  3. Oracle® Database SQL Language Reference[失效链接]
  4. Transact-SQL Reference页面存档备份,存于互联网档案馆
  5. PostgreSQL SQL Commands页面存档备份,存于互联网档案馆