Команда DROP

Команда DROP — це DDL-команда (Data Definition Language), яка використовується в MySQL (та інших системах керування базами даних) для повного видалення об’єктів бази даних.
За допомогою цієї команди можна видаляти:• Таблиці
• Бази даних
• Індекси
• Представлення (Views)
• Процедури, функції, тригери тощо

Приклад:

-- створимо таблицю students
CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    email VARCHAR(100)
);

-- DROP TABLE — видалення таблиці
DROP TABLE students;
-- Щоб уникнути помилки можна використовувати
DROP TABLE IF EXISTS students;
-- DROP DATABASE — видалення всієї бази даних
DROP DATABASE drop_practice;

-- Ця команда видаляє всю базу даних, включно з усіма таблицями, процедурами, тригерами, функціями тощо.

-- Безпечніший варіант
DROP DATABASE IF EXISTS drop_practice;

Інші об’єкти, які можна видалити за допомогою DROP

DROP INDEXвидалення індексу
DROP VIEWвидаляє представлення (view)
DROP PROCEDURE / DROP FUNCTIONвидаляє збережену процедуру або функцію
DROP TRIGGERвидаляє тригер
DROP EVENTвидаляє подію
DROP USER, DROP ROLEдля керування користувачами

Кілька моментів про DROP

Деструктивна операціяПісля виконання DROP, відновити об’єкт неможливо, якщо не зроблено резервну копію.
Видаляється все пов’язанеНаприклад, при видаленні таблиці також зникають: всі записи (рядки), індекси, зовнішні ключі, пов’язані з нею, тригери тощо.
НезворотняКоманди DROP не можна скасувати за допомогою ROLLBACK, бо це не частина транзакції.

Для додаткової візуалізації є відео.

Команда ALTER

Команда ALTER в MySQL використовується для зміни вже існуючої таблиці в базі даних.
За допомогою цієї команди можна:• Додати новий стовпець
• Видалити стовпець
• Змінити тип стовпця
• Перейменувати стовпець
• Перейменувати таблицю
• Додати зовнішній ключ

Можливості ALTER TABLE

КатегоріяКоманда (приклад)Опис
Додати стовпецьALTER TABLE table_name ADD COLUMN column_name TYPE;Додає новий стовпець
Видалити стовпецьALTER TABLE table_name DROP COLUMN column_name;Видаляє стовпець
Змінити тип стовпцяALTER TABLE table_name MODIFY column_name NEW_TYPE;Змінює тип даних або властивості стовпця
Перейменувати стовпецьALTER TABLE table_name CHANGE old_name new_name TYPE;Перейменовує стовпець + можна змінити тип
Перейменувати таблицюALTER TABLE old_name RENAME TO new_name;Змінює назву таблиці
Додати первинний ключALTER TABLE table_name ADD PRIMARY KEY (column_name);Додає первинний ключ (PRIMARY KEY)
Видалити первинний ключALTER TABLE table_name DROP PRIMARY KEY;Видаляє первинний ключ
Додати зовнішній ключALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES other_table(column_name);Додає зовнішній ключ (FOREIGN KEY)
Додати індексALTER TABLE table_name ADD INDEX index_name (column_name);Створює індекс для покращення пошуку
Видалити індексALTER TABLE table_name DROP INDEX index_name;Видаляє індекс
Змінити движокALTER TABLE table_name ENGINE = InnoDB;Змінює механізм зберігання (MyISAM, InnoDB тощо)
Змінити кодуванняALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;Змінює кодування таблиці

Приклад:

-- створимо таблицю students
CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    email VARCHAR(100)
);

-- Додамо новий стовпець age
ALTER TABLE students ADD COLUMN age INT;

-- Змінимо тип стовпця email на VARCHAR(150)
ALTER TABLE students MODIFY COLUMN email VARCHAR(150);

-- Перейменуємо стовпець name на full_name
ALTER TABLE students CHANGE COLUMN name full_name VARCHAR(100);

-- Видалимо стовпець age
ALTER TABLE students DROP COLUMN age;

-- Перейменуємо таблицю students на pupils
ALTER TABLE students RENAME TO pupils;

Для додаткової візуалізації є відео.