# DML 資料操縱語言

參考資料:語法小抄([http://note.drx.tw/2012/12/mysql-syntax.html](http://note.drx.tw/2012/12/mysql-syntax.html))

參考資料:([https://zh.wikipedia.org/wiki/%E8%B3%87%E6%96%99%E6%93%8D%E7%B8%B1%E8%AA%9E%E8%A8%80](https://zh.wikipedia.org/wiki/%E8%B3%87%E6%96%99%E6%93%8D%E7%B8%B1%E8%AA%9E%E8%A8%80))

`Insert`、`Update`、`Delete` 新增、修改、刪除。 對於資料庫的操作，對其中的物件、資料執行存取工作。

加上 `Select` 統稱為 CRUD (增查改刪) (Create,Read,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, ...)　-- 必須要指定所有欄位的插入值。
```

## UPDATE 基本格式

UPDATE 指令是依給定條件，將符合條件的資料表中的資料更新為新的數值。

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

## DELETE 基本格式

DELETE 指令為自資料庫物件中刪除資料的指令。

```
DELETE FROM [資料表或可更新檢視表名稱] 
WHERE [給定條件]

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

## 清空資料表

`TRUNCATE TABLE tableName;`
