SQL оператор DROP TABLE
В этом учебном материале вы узнаете, как использовать SQL оператор DROP TABLE с синтаксисом и примерами.
Описание
SQL оператор DROP TABLE позволяет вам удалить таблицу из базы данных SQL.
Синтаксис
Синтаксис для оператора DROP TABLE в SQL.
DROP TABLE table_name;
Параметры или аргумент
table_name Имя таблицы для удаления из базы данных
Пример
Возможно, вы обнаружили, что создали таблицу, которая вам больше не нужна. Вы можете использовать оператор DROP TABLE, чтобы удалить таблицу из вашей базы данных.
Давайте посмотрим на пример, который показывает, как удалить таблицу с помощью оператора DROP TABLE.
Например.
DROP TABLE suppliers;
Этот пример DROP TABLE удаляет таблицу suppliers . Это позволит удалить записи, связанные с таблицей suppliers , а также определение таблицы.
После удаления таблицы вы можете воссоздать таблицу suppliers , не получив сообщение об ошибке, что таблица уже существует.
Давайте посмотрим на еще одну пример, где мы ставим префикс имени таблицы с именем базы данных.
Например.
DROP TABLE ОПЕРАТОР
Oracle/PLSQL оператор DROP TABLE позволяет очистить или удалить таблицу из базы данных Oracle.
Синтаксис
Синтаксис оператора DROP TABLE в Oracle:
DROP TABLE [schema_name].table_name
[ CASCADE CONSTRAINTS ]
[ PURGE ];
Параметры или аргументы
schema_name
наименование схемы, которой принадлежит таблица.
table_name
наименование таблицы, которая будет удалена из базы данных Oracle.
CASCADE CONSTRAINTS
Необязательный. Если этот параметр задан, все ограничения ссылочной целостности будут также удалены.
PURGE
Необязательный. Если указано, таблица и ее зависимые объекты будут удалены из корзины, и вы не сможете восстановить таблицу. Если PURGE не указан, таблица и ее зависимые объекты помещаются в мусорную корзину и могут быть восстановлены позже, если это необходимо.
Примечание
- Если есть ограничения ссылочной целостности на table_name и вы не указали параметр CASCADE CONSTRAINTS , оператор DROP TABLE возвращает ошибку, и Oracle не будет удалять таблицу.
Пример
Рассмотрим пример, который показывает, как удалить таблицу в Oracle с помощью оператора DROP TABLE.
Например:
SQL DROP
Используя запрос DROP можно удалить таблицы (TABLE), индексы (INDEX) и базы данных (DATABASE).
DROP TABLE
DROP TABLE, применяемый в базе данных Oracle. Обычно с таблицей в базе данных связано несколько объектов, например индекс, создаваемый первичным ключом, или ограничение UNIQUE, налагаемое на столбцы таблицы. При удалении таблицы Oracle автоматически удаляет и любой связанный с ней индекс. Для удаления таблицы из БД необходимо выполнить команду DROP TABLE:
DROP TABLE Пример 1.
DROP TABLE table;
Однако удалить таблицу не всегда столь просто. В любой момент мы можем создать таблицу с ограничениями целостности. Ограничение целостности (Integrityconstraint ) – это правило, устанавливаемое для таблицы и ограничивающее тип данных, которые можно вводить в эту таблицу. Если попытаться удалить таблицу с ограничениями целостности, возвращается сообщение об ошибке следующего вида: «Unique/primary keys in table referenced by foreign keys» (на уникальные/первичные ключи таблицы ссылаются внешние ключи). Когда существуют ограничения для других таблиц, на которые ссылается удаляемая таблица, можно пользоваться каскадной конструкцией CASCADE CONSTRAINTS:
DROP TABLE. Пример 2
Удаление таблицы с ограничениями целостности:
DROP TABLE table CASCADE CONSTRAINTS;
DROP TABLE, применяемый в mySQL
DROP TABLE. Пример 3
Для удаления таблицы также используется запрос:
DROP TABLE table;
DROP TABLE. Пример 4
В случае, если необходимо установить проверку на существование таблицы при удалении (если существует удалить таблицу) запрос принимает следующий вид:
DROP TABLE IF EXISTS table;
Данный запрос будет выполнен в том случае, если удаляемая таблица существует в базе данных. DROP INDEX Данный запрос DROP INDEX используется для удаления индексов в таблице. DROP INDEX, применяемый в базе данных Oracle: Когда индекс в базе данных больше не нужен, разработчик может удалить его командой DROP INDEX. После удаления индекса эффективность поиска с использованием столбца или столбцов, ограниченных индексом, больше не повышается и упоминание об индексе исчезает из словаря данных. Индекс, применяемый для первичного ключа, удалить нельзя. Синтаксис оператора DROP INDEX одинаков для удаления индекса любого типа (уникальности, битовой карты или В-дерева). Чтобы каким-то образом улучшить индекс, нужно сначала удалить его, а потом создать новый.
DROP INDEX. Пример 1
DROP INDEX my_index;
DROP INDEX, применяемый в mySQL:
DROP INDEX. Пример 2
Для удаления индексов (INDEX) используется запрос:
DROP INDEX my_index ON table;
Данный запрос удаляет индексы, указанные в my_index из таблицы table, но она не работает в версиях MySQL до 3.22. В версиях 3.22 и более поздних используется команда:
ALTER TABLE table_name DROP INDEX index_name;
DROP DATABASE DROP DATABASE. Пример 1
DROP DATABASE database;
Запрос DROP DATABASE удаляет базу данных database.
TRUNCATE TABLE
Запрос TRUNCATE TABLE используется для того, чтобы удалить данные внутри таблицы, тем самым не затрагивая саму таблицу. В нужном случае TRUNCATE TABLE может быть очень полезен. TRUNCATE TABLE, примеры использования TRUNCATE TABLE:
TRUNCATE TABLE. Пример 1
TRUNCATE TABLE table;
DROP SEQUENCE DROP SEQUENCE используется для удаления последовательности.
DROP SEQUENCE. Пример 1
DROP SEQUENCE sequence_name;
DROP SYNONYM DROP SYNONYM используется для удаления синонимов.
DROP SYNONYM. Пример 1
DROP SYNONYM synonym_name;
Для удаления общих синонимов необходимо воспользоваться командой DROP PUBLIC SYNONYM.
DROP SYNONYM. Пример 2
Удаление таблицы
Команда DROP TABLE удаляет существующую таблицу. После команды нужно указать имя таблицы.
Обращаю внимание. В конце команды ввели точку с запятой. SQL*Plus проверяет буфер ввода. Если программа распознала команду ORACLE, которая заканчивается символом «;», то пытается её выполнить сразу по завершению ввода.
Для завершения ввода без выполнения не вводите точку с запятой и дважды нажмите «Enter».
В буфере ввода команда DROP TABLE.
3. Повторно выполним:
Получили сообщение об ошибке: таблица с указанным именем не существует.
4. Текст команды CREATE TABLE был сохранен в файле cre_exdoc.sql. Вводим команду:
Получили сообщение: таблица создана.
Команда SQL*Plus start выполняет команды, которые записаны в текстовом файле.
Если не указывать расширение файла, то SQL*Plus будет искать файл с расширением «sql». Файл должен располагаться в папке, из которой была запущена программа.
Обращаю внимание. Программа «Блокнот», которая используется в качестве текстового редактора, при сохранении файла частенько сама подставляет расширение «txt». Поэтому обязательно указывайте расширение»sql» и записывайте в режиме «Все файлы *.*».
5. Убедимся в существовании таблицы.
Выведено описание таблицы exdoc. Таблица существует.
Создание таблицы для позиций с товарами
1. Создадим таблицу с позициями счёта expos. Вводим:
create table expos
Дважды нажимаем «Enter»
Продолжаем в текстовом редакторе:
create table expos
, good_n varchar2( 60)
, quant number( 9,2)
, price number( 9,2)
, cost number( 12, 2)
, sum_tax number( 12, 2)
, sum_pos number( 12, 2)
3. Выполним команду.
4. Запишем в файл.
Создание таблицы для услуг
1. Создадим таблицу с услугами exsvc.
Если на экране видно текст последней команды, то можно поступить так.
Первый вариант: выделите мышкой участок текста; скопируйте его в буфер обмена Windows; вставьте текст из буфера. SQL*Plus будет «вводить» текст начиная c текущей позиции ввода. Этим способом можно «переносить» заготовленные для выполнения команды в SQL*Plus из любого другого приложения Windows.
Второй вариант: выделите мышкой участок текста в окне SQL*Plus; не отпуская левую клавишу мышки, нажмите на правую клавишу. Текст будет скопирован в строку набора команд. Это вариант удобен для исправления ошибок или повторного ввода команд.
Попробуйте оба варианта.
Помним о команде edit.
Итак. Команда для создания таблицы с услугами.
create table exsvc
( doc_nd number ( 6)
, service_n varchar2 ( 60)
, cost number ( 12,2)
, sum_tax number ( 12,2)
, sum_svc number ( 12,2)