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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Igror (обговорення | внесок)
BunykBot (обговорення | внесок)
м заміна застарілого тегу source
 
(Не показані 12 проміжних версій 8 користувачів)
Рядок 1: Рядок 1:
'''Delete''' — у мовах, подібних [[SQL]], [[DML]]-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом [[Where (SQL)|Where]]. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів.
'''Delete''' — у мовах, подібних [[SQL]], [[DML]]-операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом [[Where (SQL)|Where]]. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів.


* У [[СУБД]], що підтримують [[Тригер (бази даних)|тригер]]и, операція Delete може викликати їх спрацювання;
* У [[СУБД]], що підтримують [[Тригер (бази даних)|тригери]], операція Delete може викликати їх спрацювання;
* За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності;
* За наявності на таблиці зовнішніх ключів всі дочірні до тих, що видаляються записи в підлеглих таблицях також повинні бути вилучені для забезпечення посилальної цілісності;
* У СУБД, що підтримують [[Транзакція|транзакції]], виконання операції Delete повинно бути підтверджено ([[COMMIT]]), або спростовано ([[ROLLBACK]]) викликом відповідних операцій.
* У СУБД, що підтримують [[Транзакція (бази даних)|транзакції]], виконання операції Delete повинно бути підтверджено ([[COMMIT (SQL)|COMMIT]]), або спростовано ([[rollback (SQL)|ROLLBACK]]) викликом відповідних операцій.


== Синтаксис ==
== Синтаксис ==
Рядок 9: Рядок 9:
Загальний синтаксис команди:
Загальний синтаксис команди:


<source lang="sql">DELETE FROM <Ім''я таблиці> WHERE <Умова відбору записів></source>
<syntaxhighlight lang="sql">DELETE FROM <Назва таблиці> WHERE <Умова відбору записів></syntaxhighlight>


Наслідком виконання такої команди буде видалення тих рядків з таблиці <Ім'я таблиці>, які відповідають умові <Умова відбору записів>. При цьому ніякого результату команда не повертає і, отже, не може бути використана в якості параметра в команді [[SELECT (SQL)|SELECT]].
Наслідком виконання такої команди буде видалення тих рядків з таблиці <Назва таблиці>, які відповідають умові <Умова відбору записів>. При цьому ніякого результату команда не повертає і, отже, не може бути використана як параметр у команді [[SELECT (SQL)|SELECT]].


== Видалення записів з декількох таблиць ==
== Видалення записів з декількох таблиць ==


При видаленні можна задавати конструкції [[JOIN (SQL)|JOIN]] зв'язують кілька сторінок, аналогічно тому, як зв'язуються таблиці в запитах вибірки SELECT:
При видаленні можна задавати конструкції [[Join (SQL)|JOIN]] зв'язують кілька сторінок, аналогічно тому, як зв'язуються таблиці в запитах вибірки SELECT:


<source lang="sql">
<syntaxhighlight lang="sql">
DELETE <Ім''я таблиці для видаления>
DELETE <Назва таблиці для видалення>
-> FROM <Ім''я таблиці1> JOIN <Ім''я таблиці2> ON <умова об''єднання>;
-> FROM <Назва таблиці1> JOIN <Назва таблиці2> ON <умова об'єднання>;
</syntaxhighlight>
</source>


Приклад:
Приклад:


<source lang="sql">
<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.