Delete (SQL): відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
м заміна застарілого тегу source |
|||
(Не показані 5 проміжних версій 4 користувачів) | |||
Рядок 1: | Рядок 1: | ||
'''Delete''' — у мовах, подібних [[SQL]], [[DML]]-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом [[Where (SQL)|Where]]. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів. |
'''Delete''' — у мовах, подібних [[SQL]], [[DML]]-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом [[Where (SQL)|Where]]. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів. |
||
* У [[СУБД]], що підтримують [[Тригер (бази даних)| |
* У [[СУБД]], що підтримують [[Тригер (бази даних)|тригери]], операція Delete може викликати їх спрацювання; |
||
* За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності; |
* За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності; |
||
* У СУБД, що підтримують [[Транзакція|транзакції]], виконання операції Delete повинно бути підтверджено ([[COMMIT]]), або спростовано ([[rollback (SQL)|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 <Назва таблиці1> JOIN <Назва таблиці2> ON <умова об |
-> 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]] |
Поточна версія на 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.
|