Delen via


DELETE FROM

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Hiermee verwijdert u de rijen die overeenkomen met een predicaat. Als er geen predicaat wordt opgegeven, worden alle rijen verwijderd.

Deze verklaring wordt alleen ondersteund voor Delta Lake-tabellen.

Syntaxis

[ common_table_expression ]
    DELETE FROM table_name [table_alias] [WHERE predicate]

Parameterwaarden

  • algemene tabelexpressie

    Veelgebruikte tabelexpressies (CTE) zijn een of meer benoemde query's die meerdere keren in het hoofdqueryblok kunnen worden gebruikt om herhaalde berekeningen te voorkomen of om de leesbaarheid van complexe geneste query's te verbeteren.

  • table_name

    Identificeert een bestaande tabel. De naam mag geen tijdelijke specificatie bevatten.

    table_name mag geen refererende tabel zijn.

  • table_alias

    Definieer een alias voor de tabel. De alias mag geen kolomlijst bevatten.

  • WHERE

    Rijen filteren op predicaat.

    Het WHERE predicaat ondersteunt subquery's, waaronder IN, NOT IN, EXISTSen NOT EXISTSscalaire subquery's. De volgende typen subquery's worden niet ondersteund:

    • Geneste subquery's, dat wil gezegd, een subquery in een andere subquery
    • NOT IN subquery binnen een OR, bijvoorbeeld a = 3 OR b NOT IN (SELECT c from t)

    In de meeste gevallen kunt u subquery's opnieuw schrijven NOT IN met behulp van NOT EXISTS. We raden u aan waar mogelijk te gebruiken NOT EXISTS , omdat DELETE subquery's NOT IN traag kunnen zijn.

Voorbeelden

> 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')