Delete (SQL): відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Igror (обговорення | внесок) |
м заміна застарілого тегу source |
||
(Не показані 12 проміжних версій 8 користувачів) | |||
Рядок 1: | Рядок 1: | ||
'''Delete''' — у мовах, подібних [[SQL]], [[DML]]-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом [[Where (SQL)|Where]]. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів. |
'''Delete''' — у мовах, подібних [[SQL]], [[DML]]-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом [[Where (SQL)|Where]]. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів. |
||
* У [[СУБД]], що підтримують [[Тригер (бази даних)| |
* У [[СУБД]], що підтримують [[Тригер (бази даних)|тригери]], операція Delete може викликати їх спрацювання; |
||
* За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності; |
* За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності; |
||
* У СУБД, що підтримують [[Транзакція|транзакції]], виконання операції Delete повинно бути підтверджено ([[COMMIT]]), або спростовано ([[ROLLBACK]]) викликом відповідних операцій. |
* У СУБД, що підтримують [[Транзакція (бази даних)|транзакції]], виконання операції Delete повинно бути підтверджено ([[COMMIT (SQL)|COMMIT]]), або спростовано ([[rollback (SQL)|ROLLBACK]]) викликом відповідних операцій. |
||
== Синтаксис == |
== Синтаксис == |
||
Рядок 9: | Рядок 9: | ||
Загальний синтаксис команди: |
Загальний синтаксис команди: |
||
< |
<syntaxhighlight lang="sql">DELETE FROM <Назва таблиці> WHERE <Умова відбору записів></syntaxhighlight> |
||
Наслідком виконання такої команди буде видалення тих рядків з таблиці < |
Наслідком виконання такої команди буде видалення тих рядків з таблиці <Назва таблиці>, які відповідають умові <Умова відбору записів>. При цьому ніякого результату команда не повертає і, отже, не може бути використана як параметр у команді [[SELECT (SQL)|SELECT]]. |
||
== Видалення записів з декількох таблиць == |
== Видалення записів з декількох таблиць == |
||
При видаленні можна задавати конструкції [[ |
При видаленні можна задавати конструкції [[Join (SQL)|JOIN]] зв'язують кілька сторінок, аналогічно тому, як зв'язуються таблиці в запитах вибірки SELECT: |
||
< |
<syntaxhighlight lang="sql"> |
||
DELETE < |
DELETE <Назва таблиці для видалення> |
||
-> FROM < |
-> FROM <Назва таблиці1> JOIN <Назва таблиці2> ON <умова об'єднання>; |
||
</syntaxhighlight> |
|||
</source> |
|||
Приклад: |
Приклад: |
||
< |
<syntaxhighlight lang="sql"> |
||
DELETE ab, b |
DELETE ab, b |
||
FROM Authors AS a, AuthorArticle AS ab, Articles AS b |
FROM Authors AS a, AuthorArticle AS ab, Articles AS b |
||
WHERE a.AuthID=ab.AuthID AND ab.ArticleID=b.ArticleID |
WHERE a.AuthID=ab.AuthID AND ab.ArticleID=b.ArticleID |
||
AND AuthorLastName='Henry'; |
AND AuthorLastName='Henry'; |
||
</syntaxhighlight> |
|||
</source> |
|||
== Пов'язані команди == |
== Пов'язані команди == |
||
Видалення всіх записів з таблиці при наявності [[Зовнішній ключ (бази даних)|зовнішніх ключів]] і механізм [[Транзакція|транзакцій]] може зайняти тривалий час. Для повного очищення таблиці може бути використана операція [[Truncate (SQL)|TRUNCATE]]. |
Видалення всіх записів з таблиці при наявності [[Зовнішній ключ (бази даних)|зовнішніх ключів]] і механізм [[Транзакція (бази даних)|транзакцій]] може зайняти тривалий час. Для повного очищення таблиці може бути використана операція [[Truncate (SQL)|TRUNCATE]]. |
||
{{SQL}} |
{{SQL}} |
||
[[Категорія:SQL]] |
[[Категорія:SQL]] |
||
[[Категорія:Статті з прикладами коду мовою SQL]] |
|||
[[cs:DELETE]] |
|||
[[en:Delete (SQL)]] |
|||
[[ja:DELETE (SQL)]] |
|||
[[ko:Delete (SQL)]] |
|||
[[lv:Delete (SQL)]] |
|||
[[nl:Delete (SQL)]] |
|||
[[no:Delete (SQL)]] |
|||
[[pt:Delete (SQL)]] |
|||
[[ru:Delete (SQL)]] |
|||
[[sq:Delete (SQL)]] |
|||
[[sr:Delete (SQL)]] |
|||
[[zh:删除 (SQL)]] |
Поточна версія на 12:53, 12 травня 2020
Delete — у мовах, подібних SQL, DML-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом Where. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів.
- У СУБД, що підтримують тригери, операція Delete може викликати їх спрацювання;
- За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності;
- У СУБД, що підтримують транзакції, виконання операції Delete повинно бути підтверджено (COMMIT), або спростовано (ROLLBACK) викликом відповідних операцій.
Загальний синтаксис команди:
DELETE FROM <Назва таблиці> WHERE <Умова відбору записів>
Наслідком виконання такої команди буде видалення тих рядків з таблиці <Назва таблиці>, які відповідають умові <Умова відбору записів>. При цьому ніякого результату команда не повертає і, отже, не може бути використана як параметр у команді SELECT.
При видаленні можна задавати конструкції JOIN зв'язують кілька сторінок, аналогічно тому, як зв'язуються таблиці в запитах вибірки SELECT:
DELETE <Назва таблиці для видалення>
-> FROM <Назва таблиці1> JOIN <Назва таблиці2> ON <умова об'єднання>;
Приклад:
DELETE ab, b
FROM Authors AS a, AuthorArticle AS ab, Articles AS b
WHERE a.AuthID=ab.AuthID AND ab.ArticleID=b.ArticleID
AND AuthorLastName='Henry';
Видалення всіх записів з таблиці при наявності зовнішніх ключів і механізм транзакцій може зайняти тривалий час. Для повного очищення таблиці може бути використана операція TRUNCATE.
|