Denne artikel viser SQL'en UPDATE
syntaks, som implementeret af forskellige databasestyringssystemer (DBMS'er). Syntaksen er angivet nøjagtigt som hver leverandør har angivet den på deres hjemmeside. Klik på det relevante link for at se flere detaljer om syntaksen for en bestemt leverandør.
De dækkede DBMS'er er MySQL, SQL Server, PostgreSQL og Oracle Database.
MySQL
Fra MySQL 5.7 Reference Manual.
Enkeltbordssyntaks:
UPDATE [LOW_PRIORITY] [IGNORE]table_reference
SETcol_name1
={expr1
|DEFAULT} [,col_name2
={expr2
|DEFAULT}] ... [WHEREwhere_condition
] [ORDER BY ...] [LIMITrow_count
]
Syntaks for flere tabeller:
UPDATE [LOW_PRIORITY] [IGNORE]table_references
SETcol_name1
={expr1
|DEFAULT} [,col_name2
={expr2
|DEFAULT}] ... [WHEREwhere_condition
]
SQL-server
Fra Transact-SQL-referencen:
[ 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
Fra PostgreSQL 9.5-manualen:
[ 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-database
Fra Oracle Database Online Documentation 12c Udgivelse 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_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) [ (+) ]
update_set_clause ::=
SET { { (column [, column ]...) = (subquery) | column = { expr | (subquery) | DEFAULT } } [, { (column [, column]...) = (subquery) | column = { expr | (subquery) | DEFAULT } } ]... | VALUE (t_alias) = { expr | (subquery) } }
hvor_klausul ::=
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 } ]
Om UPDATE
Erklæring
OPDATERING sætning ændrer værdierne for de angivne kolonner i alle rækker, der opfylder betingelsen. Kun de kolonner, der skal ændres, skal medtages i SET klausul; kolonner, der ikke er eksplicit ændret, bevarer deres tidligere værdier.