| Команда 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;
Для додаткової візуалізації є відео.