Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
204.67 Кб
Скачать

50.Видалення даних в sql

DELETE - операція видалення записів з таблиці. Критерій відбору записів для видалення визначається виразом where. У разі, якщо критерій відбору не визначений, виконується видалення всіх записів.

Синтаксис команди :

DELETE FROM <Имя Таблицы> WHERE <Условие отбора записей>

Видалення рядків з таблиці бази даних - це ще одна операція, без якої неможливо обійтися. Для видалення рядків таблиці використовується оператор DELETE FROM. Його синтаксис виглядає наступним чином:

DELETE [FROM] table_name WHERE column_name = 'value'

Ключове слово FROM використовувати необов'язково. Видаляти рядки з таблиць, а також оновлювати таблиці, можна за допомогою видів.

У наступному прикладі оператор DELETE використовується для видалення всіх рядків, які задовольняють критерію, визначеному в директиві WHERE оператора DELETE. Цим критерієм є наявність в стовпці Department значення SALES.

DELETE FROM Employee WHERE Department = 'SALES'

Примітка. Щоб визначити кількість рядків, які ви збираєтеся вилучити, можете скористатися функцією COONT () в операторі SELECT з такою ж директивою WHERE, як і операторі DELETE

Користуючись оператором DELETE, пам'ятайте, що дуже велике значення має порядок сортування, вибраний під час установки SQL Server. Якщо вибір регістру символів (верхнього або нижнього) для визначення критерію в директиві WHERE ніяк не впливає на результати її роботи, то, швидше за все, порядок сортування є незалежним від регістра. Якщо ви хочете, щоб в подальшому всі оператори DELETE і UPDATE залежали від регістра, то вам доведеться перевстановити SQL Server і вибрати регістрозавісімий порядок сортування.

Оператор DELETE FROM використовується для видалення як окремих, так і кількох рядків з таблиці. Але тільки застосовуйте його обережно. Якщо оператор DELETE FROM не містить директиви WHERE, то будуть вилучені всі рядки таблиці, і вона залишиться порожньою (зверніть увагу-оператор DELETE видаляє рядки, але не саму таблицю!). Причому перед виконанням оператора видалення ви не отримаєте ніякого попереджуючого повідомлення. Нижче наведено приклад видалення всіх рядків таблиці Employee:

DELETE FROM Employee

Примітка. Видалення всіх рядків таблиці за допомогою оператора DELETE, не містить директиви WHERE, найчастіше відбувається в результаті помилки Якщо ви хочете видалити всі рядки таблиці, але при цьому зберегти структуру самої таблиці в цілості й схоронності, скористайтеся оператором TRUNCATE. Синтаксис оператора TRUNCATE TABLE виглядає наступним чином

TRUNCATE TABLE table_name

Перевага використання оператора TRUNCATE TABLE полягає в тому, що рядки видаляються набагато швидше, ніж у випадку застосування оператора DELETE.

Причина в тому, що оператор TRUNCATE TABLE одночасно видаляє цілі сторінки інформації, що містять безліч рядків, а не окремі рядки, як оператор DELETE. Але майте на увазі, що, видаливши рядки таблиці за допомогою оператора TRUNCATE TABLE, відновити їх ви вже не зможете. На відміну від оператора DELETE, він не зберігає копії вилучених рядків, навіть якщо він є частиною транзакції.

Оператори TRUNCATE TABLE і DELETE TABLE, видаляючи рядки, зберігають структуру таблиці бази даних.

Якщо ви хочете видалити саму таблицю, а також все що містяться в ній рядки, скористайтеся оператором DROP TABLE. Його синтаксис виглядає наступним чином

DROP TABLE table_name

Видаливши таблицю за допомогою оператора DROP TABLE, ви не зможете відновити рядки, які в ній містилися. Допомогти вам зможе тільки попередньо збережена резервна копія бази даних.

Ще одна перевага оператора TRUNCATE полягає в тому, що він не реєструє процедуру видалення інформації в журналі транзакцій. І якщо навіть журнал транзакцій виявиться повним, ви зможете скористатися оператором TRUNCATE, щоб видалити непотрібні рядки і звільнити місце для нової інформації.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]