Тази статия изброява SQL UPDATE
синтаксис, както се изпълнява от различни системи за управление на бази данни (СУБД). Синтаксисът е посочен точно както всеки доставчик го е посочил на своя уебсайт. Щракнете върху приложимата връзка, за да видите повече подробности за синтаксиса за конкретен доставчик.
Обхванатите СУБД са MySQL, SQL Server, PostgreSQL и Oracle Database.
MySQL
От Справочното ръководство за MySQL 5.7.
Синтаксис на една таблица:
UPDATE [LOW_PRIORITY] [IGNORE]table_reference
SETcol_name1
={expr1
|DEFAULT} [,col_name2
={expr2
|DEFAULT}] ... [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
Синтаксис за множество таблици:
UPDATE [LOW_PRIORITY] [IGNORE]table_references
SETcol_name1
={expr1
|DEFAULT} [,col_name2
={expr2
|DEFAULT}] ... [WHEREwhere_condition
]
SQL сървър
От справочника за Transact-SQL:
[ WITH <common_table_expression> [...n] ] UPDATE [ TOP ( expression ) [ PERCENT ] ] { { table_alias | <object> | rowset_function_limited [ WITH ( <Table_Hint_Limited> [ ...n ] ) ] } | @table_variable } SET { column_name = { expression | DEFAULT | NULL } | { udt_column_name.{ { property_name = expression | field_name = expression } | method_name ( argument [ ,...n ] ) } } | column_name { .WRITE ( expression , @Offset , @Length ) } | @variable = expression | @variable = column = expression | column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression | @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression | @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression } [ ,...n ] [ <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 [, ...] ] UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ] SET { column_name = { expression | DEFAULT } | ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) | ( column_name [, ...] ) = ( sub-SELECT ) } [, ...] [ FROM from_list ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
База данни на Oracle
От Oracle Database Online Documentation 12c Издание 1 (12.1):
UPDATE [ hint ] { dml_table_expression_clause | ONLY (dml_table_expression_clause) } [ t_alias ] update_set_clause [ 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) [ (+) ]
update_set_clause ::=
SET { { (column [, column ]...) = (subquery) | column = { expr | (subquery) | DEFAULT } } [, { (column [, column]...) = (subquery) | column = { expr | (subquery) | DEFAULT } } ]... | VALUE (t_alias) = { expr | (subquery) } }
където_клауза ::=
WHERE condition
клауза за връщане::=
{ RETURN | RETURNING } expr [, expr ]... INTO data_item [, data_item ]...
error_logging_clause::=
LOG ERRORS [ INTO [schema.] table ] [ (simple_expression) ] [ REJECT LIMIT { integer | UNLIMITED } ]
Относно UPDATE
Изявление
АКТУАЛИЗИРАНЕ оператор променя стойностите на посочените колони във всички редове, които отговарят на условието. Само колоните, които трябва да се променят, трябва да бъдат включени в SET клауза; колоните, които не са изрично модифицирани, запазват предишните си стойности.