DROP — оператор у мові SQL, що призначений для видалення об'єктів із реляційних баз даних. Типи об'єктів, які можуть бути видалені, залежать від використовуваної СКБД, але більшість із них підтримують видалення таблиць, користувачів і самих баз даних. Деякі системи (як-от PostgreSQL) дозволяють оператору DROP та іншим DDL-командам виконуватися всередині транзакції і, таким чином, мати можливість скасування.

Типове використанняРедагувати

DROP "objecttype" "objectname"

Оператор DROP відрізняється від операторів DELETE і TRUNCATE тим, що два останні не видаляють саму таблицю. Наприклад, DELETE може видалити всі чи деякі дані з таблиці, при цьому залишаючи саму таблицю в базі даних, тоді як оператор DROP видаляє всю таблицю з бази даних.

  • видалення таблиці
DROP TABLE [object_name] {RESTRICT | CASCADE}

Оператор DROP TABLE видаляє наявну таблицю. Якщо таблиця має залежності, то видалення проведено не буде. При видаленні таблиці будуть видалені всі тригери на її події та індекси, побудовані для її полів.

Тільки власник таблиці і адміністратори мають привілеї на використання DROP TABLE.

Наприклад, якщо ми хочемо видалити таблицю з ім'ям employees:

DROP TABLE employees

В результаті цього відбувається видалення таблиці employees бази даних.

  • видалення подання
DROP VIEW [object_name] {RESTRICT | CASCADE}

Оператор DROP VIEW видаляє одне або кілька подань з поточної бази даних. Інструкцію DROP VIEW можна виконувати для індексованих подань. Якщо подання має залежності, то видалення проведено не буде.

Тільки власник подання та адміністратори мають привілеї на використання DROP VIEW.

Наприклад, якщо ми хочемо видалити подання з ім'ям number_of_employees:

DROP VIEW number_of_employees

В результаті цього відбувається видалення подання number_of_employees бази даних.

DROP DOMAIN [object_name] {RESTRICT | CASCADE}

Оператор DROP DOMAIN видаляє домен, наявний в базі даних. Неможливо видалити домен, на який посилаються стовпці таблиць бази даних або якщо він був задіяний в одному з PSQL модулів. Щоб видалити такий домен, необхідно видалити з таблиць усі стовпці, що посилаються на домен і видалити всі посилання на домен з PSQL модулів.

Видалити домен може будь-який користувач, підключений до бази даних, за умови, що це не заважає залежним об'єктам.

Наприклад, якщо ми хочемо видалити домен з ім'ям salary:

DROP DOMAIN salary

В результаті цього відбувається видалення домену salary бази даних.[1]

ЗауваженняРедагувати

Оператор DROP не можна використовувати для видалення таблиці, на яку посилається обмеження по зовнішньому ключу. Спочатку необхідно видалити обмеження, що посилається по зовнішньому ключу або таблицю, що посилається. Після видалення таблиці всі її об'єкти також видаляються, включно з обмеженнями цілісності даних. При відновленні таблиці необхідно заново створити всі її об'єкти й обмеження.

Інструкцію DROP TABLE можна застосувати і до системних таблиць[2].

ПриміткиРедагувати

  1. Руководство по языку SQL СУБД Firebird 2.5. www.ibase.ru. Архів оригіналу за 27 травня 2017. Процитовано 26 травня 2017. 
  2. Инструкция DROP TABLE (SQL Server Compact). technet.microsoft.com (російською). Архів оригіналу за 6 серпня 2014. Процитовано 24 травня 2017.