
# DELETE
#### 功能描述
从指定的表里删除满足WHERE子句的行。如果WHERE子句不存在，将删除表中所有行，结果只保留表结构。
![](https://support.huaweicloud.com/devg-fabric/public_sys-resources/note_3.0-zh-cn.png)
目前仅Iceberg表支持Delete。
#### 注意事项
要删除表中的数据，用户必须对它有DELETE权限。同样也必须有USING子句引用的表以及condition上读取的表的SELECT权限。
![](https://support.huaweicloud.com/devg-fabric/public_sys-resources/warning_3.0-zh-cn.png)
避免使用DELETE删除全表数据，考虑使用TRUNCATE TABLE代替。
#### 语法格式
```
DELETE FROM table_name [ * ] [ [ AS ] alias ]
    [ USING using_list ]
    [ WHERE condition ]
```
#### 参数说明
- table_name：目标表的名字。取值范围：已存在的表名。

- alias：目标表的别名。取值范围：字符串，符合标识符命名规范。
- using_list：using子句。
- condition：一个返回boolean值的表达式，用于判断哪些行需要被删除。
 
#### 示例
创建表reason_t2：
```
CREATE TABLE reason_t2
(
    TABLE_SK          INTEGER               ,
    TABLE_ID          VARCHAR(20)           ,
    TABLE_NA          VARCHAR(20)
) STORE AS iceberg;
INSERT INTO reason_t2 VALUES (1, 'S01', 'StudentA'),(2, 'T01', 'TeacherA'),(3, 'T02', 'TeacherB');
```
使用WHERE条件删除：
```
DELETE FROM reason_t2 WHERE TABLE_SK = 2;
DELETE FROM reason_t2 AS rt2 WHERE rt2.TABLE_SK = 2;
```
使用IN语法删除：
```
DELETE FROM reason_t2 WHERE TABLE_SK in (1,3);
```
