Инструменты пользователя

Инструменты сайта


insert

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
insert [2009/05/21 12:15]
10.1.0.250
insert [2012/07/17 14:07] (текущий)
Строка 1: Строка 1:
 +====== INSERT ======
  
 +===== Версии сервера =====
 +Firebird v0.9       ​Firebird v1.0       ​Firebird v1.5       ​Firebird v2.0 
 +
 +===== Формат =====
 +<​code>​
 +INSERT INTO <​object>​ [(col [, col ...])]
 +{VALUES (<​val>​ [, <val> ...]) | <​select_expr>​} ​
 +[RETURNING <​column_list>​ [INTO <​variable_list>​]];​
 +
 +<​object>​ = tablename | viewname
 +
 +val = {:variable | constant | expr
 +| function | udf ([val [, val …]])
 +| NULL | USER | RDB$DB_KEY | ?
 +} [COLLATE collation]
 +
 +<​constant>​ = num | '​string'​ | charsetname '​string'​
 +
 +<​expr>​ = Допустимое выражение SQL, которое возвращает в одиночное значение столбца.
 +
 +<​function>​ = {
 +CAST (<​val>​ AS <​datatype>​)
 +  | UPPER (<​val>​)
 +  | GEN_ID (generator, <​val>​)
 +  }
 +
 +<​select_expr>​ = SELECT возвращающий ноль или более строк,
 +  где число столбцов в каждой строке такое же,
 +  как число элементов,​ которые должны быть вставлены.
 +</​code>​
 +
 +^ Аргумент ^ Описание ^
 +|INTO <​object>​ |Имя существующей таблицы или вида, в которую вставляются данные.|
 +|col |Имя существующего столбца в таблице или виде, в который вставляются значения.|
 +|VALUES (<​val>​ [, <val> ...] |Список значению для вставки в таблицу или вид. Значения должны быть в том же порядке,​ как целевые столбцы.|
 +|RETURNING <​column_list>​ [INTO <​variable_list>​]| Только для Firebird 2.0 и выше.|
 +|<​select_expr>​ |Запрос,​ который возвращает значения,​ для вставки в целевые столбцы.|
 +|<​column_list>​ |Список возвращаемых доменов объекта. :!: только Firebird v2.0 и выше|
 +|<​variable_list>​ |Список переменных в которые будут помещены возвращаемые домены объекта. :!: только Firebird v2.0 и выше|
 +
 +
 +===== Описание =====
 +INSERT добавляет одну или более новых строк данных к существующей таблице или виду. INSERT - одна из привилегий базы данных,​ которая контролируется инструкциями [[GRANT]] и [[REVOKE]].
 +
 +Значения вставляются в столбцы строки по порядку их следования,​ если не задан факультативный список столбцов. Если список столбцов задан на множестве всех доступных столбцов,​ во все неперечисленные столбцы автоматически вcтавляется или значение по умолчанию,​ или NULL.
 +
 +Если факультативный список столбцов упущен,​ предложение VALUES должно содержать значения для всех столбцов таблицы.
 +
 +Чтобы вставить одну строку данных,​ должно присутствовать предложение VALUES и содержать определенный список значений.
 +
 +Чтобы вставить несколько строк данных,​ определите <​select_expr>,​ которое возвращает уже существующие данные из другой таблицы. Выбранные строки должны соответствовать списку столбцов.
 +
 +:!: Допустимо выбирать из той же таблицы,​ в которую строки вставляются,​ но эта практика не рекомендуется,​ так как подобные действия могут привести к бесконечным вставкам строк (зацикливанию).
 +
 +===== Пример =====
 +Следующая инструкция добавляет строку в таблицу,​ присваивает значения двум столбцам:​
 +<​code>​
 +INSERT INTO EMPLOYEE_PROJECT (EMP_NO, PROJ_ID) VALUES (52, '​DGPII'​);​
 +</​code>​
 +Следующая инструкция определяет значения,​ чтобы вставить в таблицу,​ используя инструкцию SELECT:
 +<​code>​
 +INSERT INTO PROJECTS
 +  SELECT * FROM NEW_PROJECTS
 +    WHERE NEW_PROJECTS.START_DATE > '​6-JUN-1994';​
 +</​code>​
 +
 +===== См. также =====
 +[[RETURNING]],​ [[INTO]], [[UPDATE OR INSERT]], [[UPDATE]], ​ [[DELETE]], ​ [[SELECT]], ​ [[GRANT]], ​ [[REVOKE]]
 +
 +===== Источник =====
 +langref.pdf ​
insert.txt · Последние изменения: 2012/07/17 14:07 (внешнее изменение)