细枝末节
1. DELETE和TRUNCATE区别:
1) DELETE可以使用条件删除,TRUNCATE不能
2) TRUNCATE删除效率高
3) 删除后再插入值时,DELETE自增长列的值从断点开始,TRUNCATE从1开始
4) DELETE有返回值,TRUNCATE没有返回值
5) DELETE可以回滚,TRUNCATE不能回滚
2.TRUNCATE是自表中记录的第一行开始将所有记录截断删除,而表的列结构不变
格式
删除单表记录
/* 方式一: DELETE */
DELETEFROM
表名
WHERE
筛选条件;
/* 方式二: TRUNCATE */
删除多表记录
/* 方式一 */
DELETE 表1,表2
FROM 表1,表2
WHERE 连接条件
AND 筛选条件;
/* 方式二 */
DELETE 表1,表2
FROM 表1
[连接类型] JOIN 表2
ON 连接条件
WHERE 筛选条件;
示例
删除man数据表
/* 方式一 */
DELETEFROM man;
/* 方式二 */
TRUNCATE man;
删除手机尾号为9的女生的信息
DELETEFROM
woman
WHERE phone LIKE'%9';
删除张无忌的女朋友的信息
/* 方式一 */
DELETE woman
FROM woman,man
WHERE woman.bf_id=man.id
AND man.name='张无忌';
/* 方式二 */
DELETE woman
FROM woman
INNERJOIN man
ON woman.bf_id=man.id
WHERE man.name='张无忌';
删除黄晓明及其女朋友的信息
/* 方式一 */
DELETE man,woman
FROM man,woman
WHERE man.gf_id=woman.id
AND man.name='黄晓明';
/* 方式二 */
DELETE man,woman
FROM man
INNERJOIN woman
ON man.gf_id=woman.id
WHERE man.name='黄晓明';