какая команда удаляет таблицу
Удалить таблицу или базу MySQL (DROP TABLE, DROP DATABASE)
Дата: 17.04.2019 Категория: MySQL Комментарии: 0

В этом уроке вы узнаете, как удалить базу данных и таблицу с помощью SQL.
Удаление таблицы из базы данных
Вы можете использовать оператор DROP TABLE, чтобы легко удалить таблицы базы данных, которые вам больше не нужны. Оператор DROP TABLE навсегда удаляет все данные из таблицы, а также метаданные, которые определяют таблицу в словаре данных.
Синтаксис
DROP TABLE удаляет одну или несколько таблиц.
Удаление базы данных или таблицы нельзя отменить. Поэтому будьте осторожны при использовании оператора DROP, потому что система базы данных обычно не отображает никаких предупреждений типа «Вы уверены?». Он немедленно удалит базу данных или таблицу и все ее данные.
Попробуем удалить таблицу базы данных с помощью оператора DROP TABLE. Следующее утверждение удалит таблицу employees навсегда из базы данных.
После выполнения вышеупомянутой команды, если вы попытаетесь выполнить какую-либо операцию с таблицей, например выбрать записи из нее, вы получите сообщение об ошибке.
Удаление базы данных
Точно так же вы можете удалить базу данных с помощью оператора DROP DATABASE. Следующая команда навсегда удалит демонстрационную базу данных с сервера базы данных.
Теперь, если вы попытаетесь выбрать демонстрационную базу данных, используя USE demo; вы получите сообщение об ошибке «Неизвестная база данных» или «База данных не существует».
Как удалить таблицу в Microsoft SQL Server на T-SQL
Приветствую Вас на сайте Info-Comp.ru! Сегодня в этой заметке мы рассмотрим процесс удаления таблиц в Microsoft SQL Server. Вы узнаете, как удалить одну таблицу, как удалить несколько таблиц, а также как удаляются временные таблицы в SQL Server. Кроме этого, Вы узнаете, как проверить существование таблицы перед ее удалением.
Инструкция DROP TABLE в T-SQL
DROP TABLE – это инструкция T-SQL, с помощью которой удаляются таблицы в Microsoft SQL Server.
Команда DROP относится к группе операторов определения данных (Data Definition Language – DDL).
DROP TABLE полностью удаляет структуру таблицы и связанные с ней индексы, триггеры, ограничения, разрешения и статистику. Инструкцию нельзя использовать для удаления таблицы, на которую ссылается ограничение FOREIGN KEY, в таких случаях сначала следует удалить ссылающееся ограничение FOREIGN KEY или ссылающуюся таблицу.
DROP TABLE не удаляет функции, хранимые процедуры и представления, которые ссылаются на таблицу, поэтому мы должны проверить все зависимости перед удалением таблицы и внести соответствующие изменения в их определение, чтобы избежать возникновения непредвиденных ситуаций в работе этих функции, процедур и представлений.
DROP TABLE позволяет в одной инструкции удалить как одну таблицу, так и несколько. Временные таблицы удаляются точно так же, как и обычные таблицы с помощью инструкции DROP TABLE.
Синтаксис DROP TABLE
Удаление одной таблицы в SQL Server
Чтобы удалить одну таблицу в Microsoft SQL Server, необходимо написать инструкцию DROP TABLE и указать название таблицы.
Для примера давайте создадим таблицу Goods, а затем удалим ее с помощью инструкции DROP TABLE.
Создание таблицы
Удаление таблицы
Удаление нескольких таблиц на T-SQL в SQL Server
Если Вам необходимо удалить несколько таблиц сразу, то совсем необязательно писать инструкцию DROP TABLE для удаления каждой таблицы, достаточно написать одну инструкцию и через запятую указать названия таблиц.
Допустим, что у нас есть две таблицы: Table_1 и Table_2. И нам их необходимо удалить.
Для этого мы можем написать следующую инструкцию.
Создание таблиц
Удаление таблиц
Примечание! Если с помощью одной инструкции DROP TABLE удаляются и ссылающаяся таблица, и таблица, содержащая первичный ключ, то ссылающаяся таблица должна быть указана первой в списке.
Удаление таблицы с проверкой на существование этой таблицы
Начиная с 2016 версии Microsoft SQL Server стало возможно указывать параметр IF EXISTS, который позволяет предварительно проверить существование объекта перед его непосредственным удалением.
Теперь нет необходимости писать различные дополнительные условные конструкции IF, чтобы перед удалением проверить, существует ли таблица или нет, инструкция DROP IF EXISTS сделает эту проверку сама.
Более подробно про эту возможность мы говорили в статье – Инструкция DROP IF EXISTS в языке T-SQL.
В данном случае таблицы Goods не существует, однако инструкция успешно выполнилась.
Заметка! Начинающим рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать на T-SQL.
Удаление временной таблицы на T-SQL
Временные таблицы мы можем принудительно удалять точно так же, как и обычные таблицы.
Создание временной таблицы
Удаление временной таблицы
В этом примере мы создали временную таблицу, а затем удалили ее.
Заметка! Много статей на тему языка T-SQL Вы можете найти в разделе сайта – Microsoft SQL Server и язык T-SQL.
Удаление таблиц (компонент Database Engine)
Удалить таблицу из базы данных в SQL Server можно с помощью среды SQL Server Management Studio или Transact-SQL.
Каждое удаление таблицы следует тщательно планировать. Если на таблицу ссылаются существующие запросы, представления, определяемые пользователем функции, хранимые процедуры или программы, то удаление сделает эти объекты недействительными.
В этом разделе
Перед началом работы
Удаление таблицы с помощью следующих средств:
Перед началом
Ограничения
Инструкцию DROP TABLE нельзя использовать для удаления таблицы, на которую ссылается ограничение FOREIGN KEY. Сначала следует удалить ссылающееся ограничение FOREIGN KEY или ссылающуюся таблицу. Если и ссылающаяся таблица, и таблица, содержащая первичный ключ, удаляются с помощью одной инструкции DROP TABLE, ссылающаяся таблица должна быть первой в списке.
При удалении таблицы относящиеся к ней правила и значения по умолчанию теряют привязку, а любые связанные с таблицей ограничения или триггеры автоматически удаляются. Если таблица будет создана заново, нужно будет заново привязать все правила и значения по умолчанию, заново создать триггеры и добавить необходимые ограничения.
При удалении таблицы, которая содержит столбец varbinary (max) с атрибутом FILESTREAM, не будут удалены никакие данные, которые хранятся в файловой системе.
Инструкции DROP TABLE и CREATE TABLE нельзя выполнять для одной таблицы в одном пакете. В противном случае может произойти непредвиденная ошибка.
Любые представления или хранимые процедуры, которые ссылаются на удаляемую таблицу, необходимо явно удалить или изменить, чтобы убрать ссылку на таблицу.
безопасность
Permissions
Использование среды SQL Server Management Studio
Удаление таблицы из базы данных
В обозревателе объектов выберите таблицу, которую необходимо удалить.
Появится окно подтверждения удаления. Нажмите кнопку Да.
При удалении таблицы автоматически удаляются все связи с ней.
Использование Transact-SQL
Удаление таблицы в редакторе запросов
В обозревателе объектов подключитесь к экземпляру компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
Дополнительные сведения см. в статье DROP TABLE (Transact-SQL).
DROP TABLE (Transact-SQL)
Удаляет одно или больше определений таблиц и все данные, индексы, триггеры, ограничения и разрешения для этих таблиц. Любое представление или хранимая процедура, ссылающаяся на удаленную таблицу, должна быть явно удалена с помощью инструкции DROP VIEW или DROP PROCEDURE. Отчет о зависимостях в таблице можно получить из представления sys.dm_sql_referencing_entities.

Синтаксис
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
database_name
Имя базы данных, в которой создана таблица.
База данных SQL Azure поддерживает формат трехкомпонентного имени имя_базы_данных.[имя_схемы].имя_объекта, если имя_базы_данных — это текущая база данных или tempdb, а имя_объекта начинается с символа #. База данных SQL Azure не поддерживает четырехкомпонентные имена.
IF EXISTS
Применимо к: SQL Server (с SQL Server 2016 (13.x); до текущей версии).
Условное удаление таблицы только в том случае, если она уже существует.
schema_name
Имя схемы, которой принадлежит таблица.
table_name
Имя таблицы, предназначенной для удаления.
Комментарии
Инструкцию DROP TABLE нельзя использовать для удаления таблицы, на которую ссылается ограничение FOREIGN KEY. Сначала следует удалить ссылающееся ограничение FOREIGN KEY или ссылающуюся таблицу. Если и ссылающаяся таблица, и таблица, содержащая первичный ключ, удаляются с помощью одной инструкции DROP TABLE, ссылающаяся таблица должна быть первой в списке.
Несколько таблиц можно удалить из любой базы данных. Если удаляемая таблица ссылается на первичный ключ другой таблицы, которая также удаляется, ссылающаяся таблица с внешним ключом должна стоять в списке перед таблицей, содержащей указанный первичный ключ.
При удалении таблицы относящиеся к ней правила и значения по умолчанию теряют привязку, а любые связанные с таблицей ограничения или триггеры автоматически удаляются. Если таблица будет создана заново, нужно будет заново привязать все правила и значения по умолчанию, заново создать триггеры и добавить необходимые ограничения.
При удалении всех строк в таблице с помощью инструкции DELETE tablename или TRUNCATE TABLE таблица продолжает существовать, пока она не будет удалена.
Большие таблицы и индексы, использующие более 128 экстентов, удаляются в два этапа: логически и физически. На логическом этапе существующие единицы распределения, используемые в таблице, отмечаются для освобождения и остаются заблокированными до фиксации транзакции. В физической фазе страницы IAM, помеченные для освобождения, физически удаляются пакетами.
При удалении таблицы, которая содержит столбец VARBINARY(MAX) с атрибутом FILESTREAM, не будут удалены никакие данные, которые хранятся в файловой системе.
Инструкции DROP TABLE и CREATE TABLE нельзя выполнять для одной таблицы в одном пакете. В противном случае может произойти непредвиденная ошибка.
Разрешения
Примеры
A. Удаление таблицы из текущей базы данных
Б. Удаление таблицы из другой базы данных
Следующий пример удаляет таблицу SalesPerson2 из базы данных AdventureWorks2012. Пример может быть выполнен из любой базы данных на экземпляре сервера.
В. Удаление временной таблицы
Следующий пример создает временную таблицу, проверяет ее наличие, удаляет ее и снова проверяет ее наличие. В этом примере не используется синтаксис IF EXISTS, доступный с версии SQL Server 2016 (13.x);.
Г. Удаление таблицы с помощью IF EXISTS
Применимо к: SQL Server (с SQL Server 2016 (13.x); до текущей версии).
В следующем примере создается таблица с именем T1. Затем вторая инструкция удаляет таблицу. Третья инструкция не выполняет никаких действий, так как таблица уже удалена, однако это не вызывает ошибку.
Как удалить все таблицы в базе mysql через консоль
Работал сегодня с сервером mysql. Надо было проверять дампы баз и искать в них данные. Постоянно загружал и удалял таблицы, базы и т.д. В общем, работал много с mysql, а чтобы все было максимально быстро, то через консоль. Оказалось, что простого и быстрого способа удалить разом все таблицы в базе mysql нет. Рассказываю, как поступал я для очистки таблиц без удаления самой базы данных.
В общем случае удалить таблицы из базы данных можно командой в консоли mysql:
Если у вас таблиц десятки и сотни, очевидно, что вручную их указывать неудобно. Дальше каждый изобретает свой велосипед в виде различных скриптов на php или bash. Мне не захотелось этим заниматься, уверен был, что можно найти способ проще и я его нашел.
Можно воспользоваться mysqldump и некоторыми ключами.
Эта команда сделает дамп только структуры базы данных, при этом для каждой таблицы перед ее созданием будет команда на удаление. Вот эти команды на удаление мы и заберем из дампа.
Мы получили набор команд на удаление всех таблиц. Теперь направим эти команды в mysql консоль на исполнение.
У меня настроена авторизация в mysql из консоли без пароля. В общем случае, с паролем команда будет выглядеть вот так:
Таким простым способом, без скриптов, можно прямо в консоли сервера удалить все таблицы из базы данных mysql, не удаляя саму базу. Может возникнуть вопрос, а почему не удалить все же базу и не создать заново. Причин может быть несколько:
Если у вас есть какое-то свое простое решение по удалению таблиц из базы, делитесь в комментариях.






