DML是“數據操縱語言”( Data Manipulation Language )的簡寫。
如果說SELECT語句對數據進行的是讀操作,那麼DML語句對數據進行的是寫操作。
DML語句的操作對象是表中的行,這樣的語句一次可以影響一行或多行數據。
DML包括三種操作:插入( INSERT )、刪除(DELETE )、修改( UPDATE )。
INSERT語句
INSERT語句的作用是往表中插入一行,它的語法格式為:
INSERT INTO 表(列1 ,列2 …) VALUES (表達式1 ,表達式2 .. ) ;
在向表中插入一行時, INSERT語句將表達式的值作為對應列的值,列的排列順序、數據類型和數量應該與表達式一致,否則可能會出錯。
如果沒有指定某個列,那麼在插入數據時這個列的值將為空。
在表達式中,字符串類型數據的大小寫是敏感的,日期型數據的格式在不同系統中是有區別的。
在INSERT語句中如果指定了列名,那麼它們的順序可以隨意,只要與VALUES子句中的表達式一一對應即可。
如果要為所有的列都提供數據,則可以省略列名,但是VALUES 子句中表達式的順序、數據類型和數量必須與表中列的定義一致。
在INSERT語句中為各列指定數據時,可以指定一個常量,或者指定一個表達式,如函數、算術運算表達式等。
利用INSERT語句還可以從另一個表中復制數據,這時要在INSERT語句中使用子查詢,對應的語法格式為:
INSERT INTO 表1 (列1 ,列2 …)
SELECT 列 1 ,列2 ••• FROM 表2 WHERE 條件表達式;
這裡的SELECT子句實際上是一個子查詢。
執行這樣的語句時,首先執行SELECT 子句,將返回的查詢結果作為指定列的值,插入到表中。
用這種方法可以-次向表中插入多行,但是需要注意的是,表指定的各列要與SELECT子句中的各列在排列順序、數據類型和數量上保持一致。
DELETE語句
DELETE 語句用來從表中刪除指定的行,它一次可以刪除一行,也可以刪除多行。
DELETE語句的語法格式為:
DELETE FROM 表名稱 WHERE 條件;
在默認情況下, DELETE語句可以不使用WHERE子句,這時將刪除表中的所有行。
如果希望只刪除表中的一部分數據,需要通過WHERE指定條件。
在DELETE語句的WHERE子句也可以使用子查詢,子查詢與SELECT語句中的子查詢用法相同。
UPDATE語句
UPDATE語句的作用是對表中已經存在的數據進行修改。
它可以一次修改一行,也可以修改多行。
這條語句的語法格式為:
UPDATE 表名稱 SET 列名稱=表達式1, 列名稱=表達式2 WHERE 條件;
UPDATE語句通過SET子句為指定列指定新值,將列值修改為指定的表達式。
在SET子句中指定所有需要修改的列。
在默認情況下,UPDATE語句不需要WHERE子句,這時UPDATE語句將修改表中的所有行。
如果通過WHERE子句指定了條件,那麼UPDATE語句只修改滿足條件的行。
在UPDATE語句的WHERE子句中,也可以使用子查詢。這時的條件並不是一個確定的條件,而是依賴於對另一個表的查詢。