Тази статия изброява SQL INSERT
синтаксис, както се изпълнява от различни системи за управление на бази данни (СУБД). Синтаксисът е посочен точно както всеки доставчик го е посочил на своя уебсайт. Щракнете върху приложимата връзка, за да видите повече подробности за синтаксиса за конкретен доставчик.
Обхванатите СУБД са MySQL, SQL Server, PostgreSQL и Oracle Database.
MySQL
От Справочното ръководство за MySQL 5.7:
<предварително ВЪВЕТЕ [НИСък_ПРИОРИТЕТ | ОТЛОЖЕНО | HIGH_PRIORITY] [ИГНОРИ] [INTO]tbl_name
[PARTITION (partition_name
,...)] [(col_name
). ,...)] {СТОЙНОСТИ | VALUE} ({expr
| ПО ПОДРАЗБИРАНЕ},...),(...),... [ ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИКАТ КЛЮЧ col_name
=expr
[, col_name
=expr
] ... ] Или:
<предварително ВЪВЕТЕ [НИСък_ПРИОРИТЕТ | ОТЛОЖЕНО | HIGH_PRIORITY] [ИГНОРИ] [INTO]tbl_name
[PARTITION (partition_name
,...)] SET col_name
={expr
| ПО ПОДРАЗБИРАНЕ}, ... [ ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИРАН КЛЮЧ col_name
=expr
[, col_name
=expr
] ... ] Или:
<предварително ВЪВЕТЕ [НИСък_ПРИОРИТЕТ | HIGH_PRIORITY] [ИГНОРИ] [INTO]tbl_name
[PARTITION (partition_name
,...)] [(col_name
). ,...)] ИЗБЕРЕТЕ ... [ ПРИ АКТУАЛИЗИРАНЕ НА ДУПЛИКАТ КЛЮЧ col_name
=expr
[, col_name
=expr
] ... ] SQL сървър
От справочника за Transact-SQL:
[ WITH[ ,...n ] ]INSERT { [ TOP ( израз ) [ PERCENT ] ] [ INTO ] { <обект> | rowset_function_limited [ WITH ( [ ...n ] ) ] { [ ( column_list ) ] [
-- Синтаксис само за външен инструмент INSERT { [BULK] [ database_name . [име_на_схема]. | schema_name . ] [ table_name | view_name] () [с [[[,] check_constraints] [[,] fire_triggers] [[,] keep_nulls] [[,] kilobytes_per_batch =kilobytes_per_batch] [[,] rows_per_batch =rows_per_batch] { колона [ ASC | DESC ] } [ ,...n ] ) ] [ [ , ] TABLOCK ] ) ]}[; ]
PostgreSQL
От ръководството за PostgreSQL 9.5:
[ С [ РЕКУРСИВНО ] with_query [, ...] ]INSERT INTO table_name [ КАТО псевдоним ] [ ( име_на_колона [, ...] ) ] { СТОЙНОСТИ ПО ПОДРАЗБИРАНЕ | СТОЙНОСТИ ( { израз | ПО ПОДРАЗБИРАНЕ } [, ...] ) [, ...] | заявка } [ ПРИ КОНФЛИКТ [ conflict_target ] конфликтно_действие ] [ ВРЪЩАНЕ * | изходен_израз [ [ AS ] име_на_изход ] [, ...] ]където conflict_target може да бъде едно от:( { index_column_name | ( индекс_израз ) } [ COLLATE колекция ] [ opclass ] [, ...] ) [ WHERE index_predicate ] ЗА ОГРАНИЧЕНИЕ име_на_ограничение и конфликтно_действие е едно от:ДА НИЩО НЕ ДА АКТУАЛИЗИРАТЕ SET { име_на_колона ={ израз | ПО ПОДРАЗБИРАНЕ } | ( име_на_колона [, ...] ) =( { израз | ПО ПОДРАЗБИРАНЕ } [, ...] ) | ( име_на_колона [, ...] ) =( подизбиране ) } [, ...] [ WHERE условие ]
База данни на Oracle
От Oracle Database Online Documentation 12c Издание 1 (12.1):
INSERT [ намек ] { single_table_insert | multi_table_insert };
По-долу е описание на клаузите и техните съставни подклаузи.
вмъкване на единична_таблица ::=
insert_into_clause{ values_clause [ returning_clause ]| подзаявка } [ error_logging_clause ]
insert_into_clause ::=
INTO dml_table_expression_clause [ t_alias ][ (колона [, колона ]...) ]
клауза_стойности ::=
СТОЙНОСТИ ({ expr | ПО ПОДРАЗБИРАНЕ } [, { израз | ПО ПОДРАЗБИРАНЕ } ]... )
клауза за връщане::=
{ ВРЪЩАНЕ | ВЪРНАНЕ } expr [, expr ]...INTO елемент_данни [, елемент_данни ]...
multi_table_insert ::=
{ ВСИЧКИ { insert_into_clause [ values_clause ] [error_logging_clause] }...| conditional_insert_clause} подзаявка
условна_клауза_вставка ::=
[ ВСИЧКИ | ПЪРВО ]КОГА условиеТОГАВА insert_into_clause [ values_clause ] [ error_logging_clause ] [ insert_into_clause [ values_clause ] [ error_logging_clause ] ]...[ КОГА условие ТОГАВА insert_into_clause [ values_clause ] [ error_logging_clause ] [ insert_into_clause [ values_clause ] [ error_logging_clause ] ]...]...[ ELSE insert_into_clause [ values_clause ] [ error_logging_clause ] [ insert_into_clause [ values_clause ] [ error_logging_clause ] ]...]
DML_table_expression_clause::=
{ [ схема. ] { таблица [ клауза_разширение_раздел | @ dblink ] | { преглед | материализиран изглед } [ @ dblink ] }| ( подзаявка [ клауза_ограничение на подзаявка ] )| израз_колекция_таблица}
клауза_разширение_раздел::=
{ PARTITION (раздел)| ДЯЛ ЗА (стойност_на_ключ_на_партиция [, стойност_на_ключ_на_партиция]...)| ПОДДЯЛ (подраздел)| ПОДраздел ЗА (стойност на ключ_подраздел [, стойност_на_ключ_подраздел]...)}
clause_subquery_restriction_clause::=
С { САМО ЧЕТЕНЕ | ПРОВЕРИ ОПЦИЯ } [ ОГРАНИЧЕНИЕ ограничение ]
израз за_колекция_таблица ::=
ТАБЛИЦА (израз на_колекция) [ (+) ]
клауза_за_регистриране на грешка ::=
ГРЕШКИ В РЕГИСТРАЦИЯ [ INTO [схема.] таблица ] [ (прост_израз) ] [ ОГРАНИЧЕН ОТХВЪРЛЯНЕ { цяло число | НЕОГРАНИЧЕН } ]
Относно INSERT Изявление
INSERT оператор вмъква нови редове в таблица. Можете да вмъкнете един или повече реда, посочени от изрази за стойности, или нула или повече реда, получени от заявка.