Mysql
 sql >> база данни >  >> RDS >> Mysql

Синтаксис на SQL DELETE – изброен от СУБД

Тази статия изброява SQL DELETE синтаксис, както се изпълнява от различни системи за управление на бази данни (СУБД). Синтаксисът е посочен точно както всеки доставчик го е посочил на своя уебсайт. Щракнете върху приложимата връзка, за да видите повече подробности за синтаксиса за конкретен доставчик.

Обхванатите СУБД са MySQL, SQL Server, PostgreSQL и Oracle Database.

MySQL

От Справочното ръководство за MySQL 5.7.

Синтаксис на една таблица:

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

Синтаксис за множество таблици:

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

Или:

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

SQL сървър

От справочника за 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

От ръководството за 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 ] [, ...] ]

База данни на Oracle

От Oracle Database Online Documentation 12c Издание 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 (partition)
| PARTITION FOR (partition_key_value [, partition_key_value]...)
| SUBPARTITION (subpartition)
| SUBPARTITION FOR (subpartition_key_value [, subpartition_key_value]...)
}

clause_subquery_restriction_clause::=

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

израз за_колекция_таблица::=

TABLE (collection_expression) [ (+) ]

където_клауза::=

WHERE condition

клауза за връщане ::=

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

клауза_за_регистриране на грешка ::=

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

Относно DELETE Изявление

 DELETE Инструкцията е израз на език за манипулиране на данни (DML), който премахва посочените редове от таблица.

 ИЗТРИВАНЕ оператор изтрива редове, които отговарят на WHERE клауза от посочената таблица. Ако КЪДЕ клаузата липсва, всички редове в таблицата ще бъдат изтрити, оставяйки таблицата празна.

Съвет

 TRUNCATE оператор (или в случай на SQL Server, TRUNCATE TABLE изявление ) е подобно на DELETE изявление без WHERE клауза; обаче TRUNCATE е по-бърз и използва по-малко ресурси на системата и транзакциите.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преглед на продукта – Stellar Repair за MySQL

  2. Как работи функцията EXPORT_SET() в MySQL

  3. Каква е разликата между BIT и TINYINT в MySQL?

  4. Създайте MySQL потребител на Linux чрез командния ред

  5. MySQL ПРИСЪЕДИНЕТЕ само най-новия ред?