Insert (SQL): відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
VolkovBot (обговорення | внесок)
м робот додав: ru:Insert (SQL)
 
(Не показано 23 проміжні версії 19 користувачів)
Рядок 1: Рядок 1:
'''INSERT''' — оператор мови [[SQL_(мова_програмування)|SQL]], котрий додає рядки в таблицю або view.
'''INSERT''' — оператор мови [[SQL (мова програмування)|SQL]], котрий додає рядки в таблицю або view.
В реляційній [[СУБД]] можна визначити два варіанти оператора INSERT.
В реляційній [[СКБД]] можна визначити два варіанти оператора INSERT.
* ''Однорядковий'' оператор INSERT дозволяє додавати в таблицю один новий рядок. Він широко використовується в повсякденних аплікаціях, наприклад програмах введення даних.
* ''Однорядковий'' оператор INSERT дозволяє додавати в таблицю один новий рядок. Він широко використовується в повсякденних аплікаціях, наприклад програмах введення даних.
* ''Багаторядковий'' оператор INSERT забезпечує витягування даних з однієї частини бази даних, їх трансформацію і додавання в іншу частину. Використовується зазвичай при пакетній обробці і створенні нових даних.
* ''Багаторядковий'' оператор INSERT забезпечує витягування даних з однієї частини бази даних, їх трансформацію і додавання в іншу частину. Використовується зазвичай при пакетній обробці і створенні нових даних.


==Однорядковий INSERT ==
== Однорядковий INSERT ==


Синтакс оператора INSERT виглядає наступним чином:
Синтаксис оператора INSERT виглядає так:


<pre>
<pre>
Рядок 12: Рядок 12:
</pre>
</pre>


Для [[SQL-92|SQL2]] є дійсним більш розширений синтексис
Для [[SQL-92|SQL2(SQL-92)]] є дійсним більш розширений синтаксис
<pre>
<pre>
INSERT [INTO]
INSERT [INTO]
Рядок 43: Рядок 43:
</pre>
</pre>


==Багаторядковий INSERT ==
== Багаторядковий INSERT ==


Синтаксис
Синтаксис
Рядок 60: Рядок 60:
В стандарті [[SQL-92|SQL2]] останні два обмеження були послаблені і в запиті дозволяється об'єднання операторів, об'єднання таблиць і виразів, дозволяється «самододавання».
В стандарті [[SQL-92|SQL2]] останні два обмеження були послаблені і в запиті дозволяється об'єднання операторів, об'єднання таблиць і виразів, дозволяється «самододавання».


== Дивіться також ==
== Див. також ==


* [[Реляційна алгебра]]
* [[Реляційна алгебра]]
* [[SQL]]
* [[SQL]]


{{compu-stub}}
{{SQL}}

{{Compu-prog-stub}}


[[Категорія:SQL]]
[[Категорія:SQL]]
[[Категорія:Бази даних]]
[[Категорія:Бази даних]]

[[cs:INSERT]]
[[en:Insert (SQL)]]
[[ja:INSERT (SQL)]]
[[nl:Insert (SQL)]]
[[no:Insert (SQL)]]
[[ru:Insert (SQL)]]
[[vi:Insert (SQL)]]

Поточна версія на 21:29, 7 лютого 2017

INSERT — оператор мови SQL, котрий додає рядки в таблицю або view. В реляційній СКБД можна визначити два варіанти оператора INSERT.

  • Однорядковий оператор INSERT дозволяє додавати в таблицю один новий рядок. Він широко використовується в повсякденних аплікаціях, наприклад програмах введення даних.
  • Багаторядковий оператор INSERT забезпечує витягування даних з однієї частини бази даних, їх трансформацію і додавання в іншу частину. Використовується зазвичай при пакетній обробці і створенні нових даних.

Однорядковий INSERT

[ред. | ред. код]

Синтаксис оператора INSERT виглядає так:

INSERT INTO таблиця (колонка1, [колонка2, ... ]) VALUES (значення1, [значення2, ...]) 

Для SQL2(SQL-92) є дійсним більш розширений синтаксис

INSERT [INTO] 
    { table_name WITH ( < table_hint_limited > [ ...n ] ) 
        | view_name 
        | rowset_function_limited 
    } 

    {    [ ( column_list ) ] 
        { VALUES 
            ( { DEFAULT | NULL | expression } [ ,...n] ) 
            | derived_table 
            | execute_statement 
        } 
    } 
    | DEFAULT VALUES 

< table_hint_limited > ::= 
    { FASTFIRSTROW 
        | HOLDLOCK 
        | PAGLOCK 
        | READCOMMITTED 
        | REPEATABLEREAD 
        | ROWLOCK 
        | SERIALIZABLE 
        | TABLOCK 
        | TABLOCKX 
        | UPDLOCK 
    } 

Багаторядковий INSERT

[ред. | ред. код]

Синтаксис

INSERT INTO таблиця (колонка1, [колонка2, ... ]) SELECT (колонка1a, [колонка2a, ...]) FROM таблиця_вибірки WHERE ...  


В запис, що міститься в середині багаторядкового оператора INSERT, стандарт SQL1 вимагає деяких логічних обмежень:

  • В запит не можна включати ORDER BY.
  • Таблиця результату запиту повинна містити таку ж кількість колонок, що і оператор INSERT.
  • Запит не може бути запитом на об'єднання кількох різних операторів SELECT.
  • Ім'я цільової таблиці оператора INSERT не може бути присутнім в виразі FROM запиту на читання чи любого запиту, вкладеного в нього. Таким чином забороняється додавання таблиці саму в себе.

В стандарті SQL2 останні два обмеження були послаблені і в запиті дозволяється об'єднання операторів, об'єднання таблиць і виразів, дозволяється «самододавання».

Див. також

[ред. | ред. код]