DELETE FROM
적용 대상: Databricks SQL Databricks Runtime
조건자와 일치하는 행을 삭제합니다. 조건자가 제공되지 않은 경우 모든 행을 삭제합니다.
이 문은 Delta Lake 테이블에서만 지원됩니다.
구문
DELETE FROM table_name [table_alias] [WHERE predicate]
매개 변수
-
기존 테이블을 식별합니다. 이름에는 임시 사양이 포함되지 않아야 합니다.
table_name
는 외세 테이블이 아니어야 합니다. -
테이블의 별칭을 정의합니다. 별칭에 열 목록을 포함하면 안 됩니다.
-
조건자로 행을 필터링합니다.
WHERE
조건자는IN
,NOT IN
,EXISTS
,NOT EXISTS
, 스칼라 하위 쿼리를 비롯한 하위 쿼리를 지원합니다. 다음 형식의 하위 쿼리는 지원되지 않습니다.- 중첩된 하위 쿼리, 즉 다른 하위 쿼리 내의 하위 쿼리
OR
내의NOT IN
하위 쿼리(예:a = 3 OR b NOT IN (SELECT c from t)
)
대부분의 경우
NOT EXISTS
를 사용하여NOT IN
하위 쿼리를 다시 작성할 수 있습니다.NOT IN
하위 쿼리가 있는DELETE
는 느릴 수 있으므로, 가능한 경우 항상NOT EXISTS
를 사용하는 것이 좋습니다.
예제
> DELETE FROM events WHERE date < '2017-01-01'
> DELETE FROM all_events
WHERE session_time < (SELECT min(session_time) FROM good_events)
> DELETE FROM orders AS t1
WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)
> DELETE FROM events
WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')