sql >> Databáze >  >> RDS >> Mysql

Syntaxe SQL DELETE – uvedena podle DBMS

Tento článek obsahuje seznam SQL DELETE syntaxe, jak je implementována různými systémy pro správu databází (DBMS). Syntaxe je uvedena přesně tak, jak ji každý prodejce uvedl na svých webových stránkách. Kliknutím na příslušný odkaz zobrazíte další podrobnosti o syntaxi pro konkrétního dodavatele.

Pokryté DBMS jsou MySQL, SQL Server, PostgreSQL a Oracle Database.

MySQL

Z referenční příručky MySQL 5.7.

Syntaxe jedné tabulky:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [PARTITION (partition_name,...)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

Syntaxe více tabulek:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]

Nebo:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]

SQL Server

Z Reference Transact-SQL:

[ WITH <common_table_expression> [ ,...n ] ]
DELETE 
    [ TOP ( expression ) [ PERCENT ] ] 
    [ FROM ] 
    { { table_alias
      | <object> 
      | rowset_function_limited 
      [ WITH ( table_hint_limited [ ...n ] ) ] } 
      | @table_variable
    }
    [ <OUTPUT Clause> ]
    [ FROM table_source [ ,...n ] ] 
    [ WHERE { <search_condition> 
            | { [ CURRENT OF 
                   { { [ GLOBAL ] cursor_name } 
                       | cursor_variable_name 
                   } 
                ]
              }
            } 
    ] 
    [ OPTION ( <Query Hint> [ ,...n ] ) ] 
[; ]

<object> ::=
{ 
    [ server_name.database_name.schema_name. 
      | database_name. [ schema_name ] . 
      | schema_name.
    ]
    table_or_view_name 
}

PostgreSQL

Z příručky PostgreSQL 9.5:

[ WITH [ RECURSIVE ] with_query [, ...] ]
DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
    [ USING using_list ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

Databáze Oracle

Z online dokumentace databáze Oracle 12c Vydání 1 (12.1):

DELETE [ hint ]
   [ FROM ]
   { dml_table_expression_clause
   | ONLY (dml_table_expression_clause)
   } [ t_alias ]
     [ where_clause ]
     [ returning_clause ]
     [error_logging_clause];

 DML_table_expression_clause::=

{ [ schema. ]
  { table
    [ partition_extension_clause
    | @ dblink
    ]
  | { view | materialized view } [ @ dblink ]
  }
| ( subquery [ subquery_restriction_clause ] )
| table_collection_expression
}

partition_extension_clause::=

{ PARTITION (partition)
| PARTITION FOR (partition_key_value [, partition_key_value]...)
| SUBPARTITION (subpartition)
| SUBPARTITION FOR (subpartition_key_value [, subpartition_key_value]...)
}

subquery_restriction_clause::=

WITH { READ ONLY
     | CHECK OPTION 
     } [ CONSTRAINT constraint ]

table_collection_expression::=

TABLE (collection_expression) [ (+) ]

where_clause::=

WHERE condition

returning_clause ::=

{ RETURN | RETURNING } expr [, expr ]...
INTO data_item [, data_item ]...

error_logging_clause ::=

LOG ERRORS 
  [ INTO [schema.] table ]
  [ (simple_expression) ]
  [ REJECT LIMIT { integer | UNLIMITED } ]

O DELETE Prohlášení

Tlačítko DELETE je příkaz DML (data manipulation language), který odstraňuje zadané řádky z tabulky.

Tlačítko DELETE příkaz odstraní řádky, které splňují WHERE klauzule ze zadané tabulky. Pokud KDE klauzule chybí, všechny řádky v tabulce budou smazány a tabulka zůstane prázdná.

Tip

 TRUNCATE (nebo v případě SQL Serveru TRUNCATE TABLE příkaz ) je podobný příkazu DELETE příkaz bez WHERE doložka; nicméně TRUNCATE je rychlejší a využívá méně prostředků systému a protokolu transakcí.


  1. Chyba testovací aplikace django - Při vytváření testovací databáze došlo k chybě:oprávnění k vytvoření databáze odepřeno

  2. Poskytovatel není kompatibilní s verzí chyby klienta Oracle při použití Oracle.DataClient

  3. Spusťte soubor PostgreSQL .sql pomocí argumentů příkazového řádku

  4. Jak zjistit, který oddíl bude použit v Postgres hash partitioning?