Name
DELETE
Synopsis
The DELETE
statement erases records from a specified table or tables. It is a
logged operation, meaning that it can be undone with a
ROLLBACK
command.
Vendor |
Command |
---|---|
SQL Server |
Supported, with variations |
MySQL |
Supported, with variations |
Oracle |
Supported |
PostgreSQL |
Supported |
Warning
It is rare to issue a DELETE
statement without a
WHERE
clause, because this results in deleting
all rows from the affected table.
SQL99 Syntax and Description
DELETE [FROM] [owner.]table_name [WHERE clause]
If it becomes necessary to remove all the rows in a table, it is
preferable to use the TRUNCATE
TABLE
statement. In those databases that
support the command, this is usually a faster method to physically
remove all rows. TRUNCATE TABLE
is faster than
DELETE
because TRUNCATE
is
not logged, making rollback impossible. The reduction of logging
overhead saves considerable time when erasing a large number of
records.
Microsoft SQL Server Syntax and Variations
DELETE [FROM] [owner.] {table_name | view_name} [WITH (query_hint[,...n]] [FROM table_source[,...n]] [WHERE clause | [CURRENT OF [GLOBAL] cursor_name]] [OPTION (query_hint[,...n])]
Microsoft SQL Server allows records to be deleted both from tables
and from views that describe a single table. (There are some other
special rules that allow deletion from a multitable view, but they
are quite complex and beyond the scope of this book.) At two points
in the command, after the first FROM
and at the end of the statement, SQL Server’s ...
Get SQL in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.