DROP TABLE
В MySQL команда DROP TABLE удаляет одну или несколько таблиц из существующей базы данных.
Пользователь, использующий команду DROP, должен иметь привилегию DROP для каждой таблицы (таблиц), которую он хочет удалить. Команда удаляет все данные и определение таблицы из базы данных.
DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] ... [RESTRICT | КАСКАД]
Аргумент
Имя | Описание |
---|---|
имя таблицы | Таблица для удаления. |
IF EXIST | Необязательное предложение IF EXIST может использоваться, чтобы избежать сообщения об ошибке, когда указанная таблица в списке таблиц, переданная как аргумент, не существует в база данных. |
RESTRICT и CASCADE | Параметры RESTRICT и CASCADE могут использоваться для упрощения портирования. |
TEMPORARY | Это предложение с оператором удаляет только TEMPORARY таблицы. ВРЕМЕННАЯ таблица видна только сеансу, созданному пользователем. Использование TEMPORARY — хорошая практика, чтобы случайно не уронить такую важную для вас таблицу. |
Пример :
Если вы хотите удалить таблицу newauthor, можно использовать следующий sql.
DROP TABLE IF EXISTS newauthor;
Приведенный выше оператор MySQL удалит таблицу newauthor со всеми данными из существующей базы данных.
MySQL DROP all TABLES или MySQL DROP DATABASE
Если вы хотите удалить все таблицы из базы данных, вам нужно использовать команду DROP DATABASE sql для удаления все таблицы в базе данных или очистить базу данных. Но вы должны быть очень осторожны с этим оператором, и для использования DROP DATABASE вам потребуется привилегия DROP для базы данных
Синтаксис:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
Предложение IF EXISTS используется для предотвращения отображения сообщения об ошибке, когда конкретная база данных не существует, которая будет удалена.
Оператор DROP DATABASE удаляет те файлы и каталоги, которые были созданы самим MySQL во время создания базы данных. Расширения файлов — .BAK, .DAT, .HSH, .MRG, .MYD, .MYI, .TRG, .TRN, .db, .frm, .ibd, .ndb и .par.
Вот наши базы данных.
mysql> SHOW DATABASES; + -------------------- + | База данных | + -------------------- + | information_schema || bmcnetbank || bupf || сотрудник || empoloyee || mucemppf || mysql || performance_schema || сакила || база данных tempdatabase || тест || world | + -------------------- + 12 строк в наборе (0,00 сек)
Мы хотим удалить все таблицы из база данных tempdatabase .
Здесь таблицы базы данных tempdatabase .
mysql> SHOW ТАБЛИЦЫ; + ------------------------ + | Tables_in_tempdatabase | + ------------------------ + | table1 || table2 | + ------------------------ + 2 строки в наборе (0. 00 сек)
Теперь вы можете УДАЛИТЬ все таблицы в базе данных, а также базу данных. Вы можете заново создать базу данных. Перед тем, как удалить базу данных, запустите сервер MySQL, затем перейдите в командную строку, затем введите пароль, подключитесь к серверу, в следующей подсказке mysql> введите оператор.
mysql> DROP DATABASE tempdatabase; Запрос ОК, затронуты 2 строки (0,27 сек)
После DROP база данных здесь — это оставшиеся базы данных.
mysql> ПОКАЗАТЬ БАЗЫ ДАННЫХ; + -------------------- + | База данных | + -------------------- + | information_schema || bmcnetbank || bupf || сотрудник || empoloyee || mucemppf || mysql || performance_schema || сакила || тест || world | + -------------------- + 12 строк в наборе (0,00 сек)
MySQL DROP multiple TABLES
Здесь таблицы базы данных tempdatabase .
mysql> SHOW tables; + ----- ------------------- + | Tables_in_tempdatabase | + ------------------------ + | table1 || table2 || table3 || table4 || table5 | + ------------------------ + 5 строк в наборе (0,10 сек)
Если вы хотите удалить таблицы table2, table4 и table5 из базы данных tempdatabase , можно использовать следующий sql.
mysql> DROP TABLE table2, table4, table5; Запрос ОК, затронуты 0 строк (0,24 секунды) mysql> SHOW TABLES; + --------------- --------- + | Tables_in_tempdatabase | + ------------------------ + | table1 || table3 | + ------------------------ + 2 строки в наборе (0,00 сек)
Столбец MySQL DROP
Если команда MySQL ALTER используется с DROP после имени столбца таблицы, этот столбец будет удален из таблицы.
Пример:
Если мы хотим удалить столбец cate_descrip из таблицы newcate , следующий оператор может быть использован.
ALTER TABLE newcate DROP cate_descrip;
MySQL DROP несколько столбцов
Вот таблица table1.
mysql> ОПИСАТЬ table1; + ------- + ------------- + ------ + ---- - + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Дополнительно | + ------- + ------------- + ------ + ----- + --------- + - ----- + | col2 | варчар (15) | ДА | | NULL | || col4 | int (5) | ДА | | NULL | || col1 | int (5) | ДА | | NULL | || col3 | int (10) | ДА | | NULL | || col5 | int (5) | ДА | | NULL | || col6 | int (5) | ДА | | NULL | || col7 | int (5) | ДА | | NULL | || col8 | int (5) | ДА | | NULL | || col9 | int (10) | ДА | | NULL | || col10 | int (5) | ДА | | NULL | || col11 | int (5) | ДА | | NULL | || col12 | int (5) | ДА | | NULL | | + ------- + ------------- + ------ + ----- + --------- + --- ---- + 12 строк в наборе (0,01 сек)
Если вы хотите удалить столбцы col1, col11 и col12 из таблицы table1 , можно использовать следующий оператор sql.
mysql> ALTER TABLE table1 drop col1, drop col11, drop col12; Запрос ОК, затронуты 0 строк (0,20 сек) Записи: 0 Дубликаты: 0 Предупреждения: 0
Вот структура таблицы после удаления столбцов.
mysql> описать table1; + ------- + ------------- + ------ + ----- + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Дополнительно | + ------- + ------------- + ------ + ----- + --------- + - ----- + | col2 | варчар (15) | ДА | | NULL | || col4 | int (5) | ДА | | NULL | || col3 | int (10) | ДА | | NULL | || col5 | int (5) | ДА | | NULL | || col6 | int (5) | ДА | | NULL | || col7 | int (5) | ДА | | NULL | || col8 | int (5) | ДА | | NULL | || col9 | int (10) | ДА | | NULL | || col10 | int (5) | ДА | | NULL | | + ------- + ------------- + ------ + ----- + --------- + --- ---- + 9 строк в наборе (0,01 сек)
MySQL DROP VIEW
Команда MySQL DROP VIEW используется для бросьте взгляд. У вас должна быть привилегия DROP для каждого просмотра. Если имя представления, указанное в операторе DROP VIEW, не существует, MySQL возвращает ошибку с указанием имени.
Синтаксис:
УДАЛИТЬ ПРОСМОТР [ЕСЛИ СУЩЕСТВУЕТ] имя_представления [, имя_представления] ... [ОГРАНИЧИТЬ | КАСКАД]
Аргумент
Имя | Описание |
---|---|
название представления | Представление, подлежащее удалению. |
IF EXISTS | Предложение IF EXISTS предотвращает отображение сообщения об ошибке из-за операции, происходящей для представлений, не существует. |
RESTRICT, CASCADE | RESTRICT и CASCADE, если они заданы, анализируются и игнорируются. |
Если вы хотите отбросить представление view_bookmast , можно использовать следующий оператор sql.
DROP VIEW view_bookmast;
MySQL DROP INDEX
Команда MySQL DROP INDEX удаляет индекс со стола. Этот оператор сопоставляется с оператором ALTER TABLE для удаления индекса.
Синтаксис:
DROP INDEX имя_индекса ON имя_таблицы [параметр_алгоритма | параметр_блокировки] ... параметр_алгоритма: АЛГОРИТМ [=] {ПО УМОЛЧАНИЮ | ВСТУПИТЬ | КОПИРОВАТЬ} параметр_блокировки: БЛОКИРОВКА [=] {ПО УМОЛЧАНИЮ | НЕТ | ОБЩИЙ | ИСКЛЮЧИТЕЛЬНО}
Аргументы
Имя | Описание |
---|---|
имя индекса | Индекс, который нужно удалить. |
имя таблицы | Таблица, к которой принадлежит индекс. |
АЛГОРИТМ [=] {DEFAULT | INPLACE | COPY} | DEFAULT — вам это нужно, когда вы применяете ALTER TABLE в более ранние версии MySQL ( ALGORITHM = INPLACE продолжает операцию внутри механизмов хранения InnoDB, используя технику на месте, и сбой, которые не поддерживают эти функции, с ошибкой. COPY — то же самое, что и отсутствие предложения ALGORITHM вообще. |
LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE} | ПО УМОЛЧАНИЮ — разрешить серию совпадающих событий, т. е. операций чтения и записи, если они поддерживаются. В противном случае разрешить одновременные чтения, если поддерживается, иначе обеспечить монопольный доступ. NONE — если поддерживается, разрешить одновременные чтения и записи, иначе вернуть сообщение об ошибке. SHARED — если поддерживается, разрешить одновременные чтения, но ограничить запись. Помните, что записи будут заблокированы, даже если параллельные записи поддерживаются механизмом хранения для данного предложения ALGORITHM (если есть) и операции ALTER TABLE. Если одновременные чтения не поддерживаются, будет возвращено сообщение об ошибке. EXCLUSIVE — это обеспечивает монопольный доступ. Это происходит, даже если параллельные чтения/записи поддерживаются механизмом хранения для данного предложения ALGORITHM (если есть) и операции ALTER TABLE. |
Пример
Если вы хотите удалить индекс newautid таблицы newauthor , следующие sql можно использовать.
DROP INDEX newautid ON newauthor;
MySQL DROP multiple INDEX
Вот индексы для таблицы table1 .
mysql> SHOW INDEX FROM table1; + -------- + ---------- - + -------------- + -------------- + ------------- + --- -------- + ------------- + ---------- + -------- + ------ + ------------ + --------- + --------------- + | Стол | Non_unique | Key_name | Seq_in_index | Column_name | Сопоставление | Мощность | Под_часть | Упаковано | Null | Index_type | Комментарий | Комментарий_индекса | + -------- + ------------ + -------------- + ---------- ---- + ------------- + ----------- + ------------- + ----- ----- + -------- + ------ + ------------ + --------- + ----- ---------- + | table1 | 1 | index_col2 | 1 | col2 | А | 0 | NULL | NULL | ДА | BTREE | | || table1 | 1 | index_col5 | 1 | col5 | А | 0 | NULL | NULL | ДА | BTREE | | || table1 | 1 | index_col7 | 1 | col7 | А | 0 | NULL | NULL | ДА | BTREE | | || table1 | 1 | index_col910 | 1 | col9 | А | 0 | NULL | NULL | ДА | BTREE | | || table1 | 1 | index_col910 | 2 | col10 | А | 0 | NULL | NULL | ДА | BTREE | | | + -------- + ------------ + -------------- + ----------- --- + ------------- + ----------- + ------------- + ------ ---- + -------- + ------ + ------------ + --------- + ------ --------- + 5 строк в наборе (0,00 сек)
Если вы хотите удалить индексы index_col2 и index_col5 , можно использовать следующий оператор sql.
mysql> ALTER TABLE table1 DROP INDEX index_col2, DROP INDEX index_col5; Запрос ОК, затронуты 0 строк (0. 09 сек) Записи: 0 Дубликаты: 0 Предупреждения: 0
После удаления индексов из таблицы table1 вот индексы для table1
mysql> показать индекс из table1; + -------- + ------------ + ------ -------- + -------------- + ------------- + ----------- + ------------- + ---------- + -------- + ------ + --------- --- + --------- + --------------- + | Стол | Non_unique | Key_name | Seq_in_index | Column_name | Сопоставление | Мощность | Под_часть | Упаковано | Null | Index_type | Комментарий | Комментарий_индекса | + -------- + ------------ + -------------- + ---------- ---- + ------------- + ----------- + ------------- + ----- ----- + -------- + ------ + ------------ + --------- + ----- ---------- + | table1 | 1 | index_col7 | 1 | col7 | А | 0 | NULL | NULL | ДА | BTREE | | || table1 | 1 | index_col910 | 1 | col9 | А | 0 | NULL | NULL | ДА | BTREE | | || table1 | 1 | index_col910 | 2 | col10 | А | 0 | NULL | NULL | ДА | BTREE | | | + -------- + ------------ + -------------- + ----------- --- + ------------- + ----------- + ------------- + ------ ---- + -------- + ------ + ------------ + --------- + ------ --------- + 3 строки в наборе (0,00 сек)
MySQL DROP FUNCTION, PROCEDURE
Нажмите здесь, чтобы увидеть ФУНКЦИЮ И ПРОЦЕДУРУ УДАЛЕНИЯ.
MySQL DROP TRIGGER
Щелкните здесь, чтобы увидеть DROP TRIGGER.
MySQL DROP EVENT
DROP EVENT отбрасывает событие.
Здесь мы создаем мероприятие.
mysql> CREATE EVENT testevent -> ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE -> DO -> UPDATE tempdatabase.table3 SET col1 = col1 + 1; Запрос ОК, затронуты 0 строк (0,01 сек)
Приведенный выше оператор создает событие с именем testevent и выполняется один раз, через одну минуту после его создания. Запустив оператор SQL, он увеличивает значение столбца col1 tempdatabse.table3 на 1.
Синтаксис:
DROP EVENT [IF EXISTS] event_name
Аргументы
Имя | Описание |
---|---|
имя_события | Имя события |
ЕСЛИ СУЩЕСТВУЕТ | Если событие не существует, отобразится ошибка ERROR 1517 (HY000): Unknown event ‘event_name’ results. Чтобы предотвратить появление этого сообщения об ошибке для несуществующих событий, можно использовать предложение IF EXISTS. |
Если вы хотите удалить событие testevent, можно использовать следующий оператор sql.
mysql> DROP EVENT IF EXISTS testevent; Запрос ОК, затронуты 0 строк (0,00 сек)
MySQL DROP PRIMARY KEY
Вот структура образца таблицы.
mysql> ОПИСАТЬ table1; + ------- + ------------- + ------ + ----- + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Дополнительно | + ------- + ------------- + ------ + ----- + --------- + - ----- + | col2 | варчар (15) | НЕТ | PRI | | || col4 | int (5) | ДА | MUL | NULL | || col3 | int (10) | ДА | MUL | NULL | || col5 | int (5) | ДА | MUL | NULL | || col6 | int (5) | ДА | MUL | NULL | || col7 | int (5) | ДА | MUL | NULL | || col8 | int (5) | ДА | | NULL | || col9 | int (10) | ДА | MUL | NULL | || col10 | int (5) | ДА | | NULL | | + ------- + ------------- + ------ + ----- + --------- + --- ---- + 9 строк в наборе (0,01 сек)
Здесь в приведенной выше структуре таблицы table1 показано, что col2 — это ПЕРВИЧНЫЙ КЛЮЧ, который обозначен красный цвет.
Если вы хотите перетащить ПЕРВИЧНЫЙ КЛЮЧ на col2 , можно использовать следующий sql.
mysql> DROP INDEX `PRIMARY` ON table1; Запрос ОК, затронуты 0 строк (0,81 сек) Записи: 0 Дубликаты: 0 Предупреждения: 0
Теперь посмотрите структура таблицы table1 снова.
mysql> описать table1; + ------- + ----------- - + ------ + ----- + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Дополнительно | + ------- + ------------- + ------ + ----- + --------- + - ----- + | col2 | варчар (15) | НЕТ | MUL | | || col4 | int (5) | ДА | MUL | NULL | || col3 | int (10) | ДА | MUL | NULL | || col5 | int (5) | ДА | MUL | NULL | || col6 | int (5) | ДА | MUL | NULL | || col7 | int (5) | ДА | MUL | NULL | || col8 | int (5) | ДА | | NULL | || col9 | int (10) | ДА | MUL | NULL | || col10 | int (5) | ДА | | NULL | | + ------- + ------------- + ------ + ----- + --------- + --- ---- + 9 строк в наборе (0,01 сек)