Примечание
ЭТО АРХИВНАЯ ВЕРСИЯ КУРСА!
Материалы предназначаются для пересдающих дисциплину "ОП.08 - Основы проектирования баз данных" в соответствии с учебными планами СПО годов набора ДО 2024-го. Для того чтобы ознакомиться с актуальным курсом "ИТ.03 - Основы проектирования баз данных" включающим интерактивные примеры, перейдите по ссылке.
Материалы были перенесены со старого сайта с минимальной доработкой, поэтому не все возможности курса могут работать как ожидается, где-то может слететь форматирование.
Домашние задания в рамках курса проверяться не будут!
ОП.08 - 13 - Изменение таблиц. Операция ALTER TABLE
Примеры данной темы используют учебную БД:
articles_01.sql
Команда ALTER TABLE
ALTER TABLE — это команда SQL, которая позволяет изменять структуру таблицы в базе данных. Эта команда может использоваться для добавления, удаления или изменения столбцов, индексов и ограничений. Важно помнить, что изменение таблицы может повлиять на целостность данных, поэтому необходимо тщательно продумывать каждое изменение.
Примеры изменения таблицы при помощи ALTER TABLE в MySQL 8:
Добавление столбца
Чтобы добавить новый столбец в таблицу, используйте следующий синтаксис:
ALTER TABLE table_name ADD column_name data_type;
Например, чтобы добавить столбец "phone" в которой будет содержаться рекламный телефон для связи по теме статьи с типом данных VARCHAR(20) в таблицу "articles", используйте следующую команду:
ALTER TABLE articles ADD phone VARCHAR(20);
Изменение столбца
Чтобы изменить тип данных столбца, используйте следующий синтаксис:
ALTER TABLE table_name MODIFY column_name new_data_type;
Например, чтобы изменить тип данных столбца "phone" на BIGINT в таблице "articles", используйте следующую команду:
ALTER TABLE articles MODIFY phone BIGINT;
[!TIP]
Обратите внимание, что успех запроса будет зависеть от того возможно ли преобразовать данные, которые содержатся в соответствующих столбцах без потерь. Если данные будут не совместимы, то СУБД вернет ошибку.
Чтобы изменить название столбца, используйте следующий синтаксис:
ALTER TABLE table_name CHANGE old_column_name new_column_name new_data_type;
Например, чтобы изменить название столбца phone на ad_phone:
ALTER TABLE articles CHANGE phone ad_phone VARCHAR(12);
Удаление столбца
Чтобы удалить столбец из таблицы, используйте следующий синтаксис:
ALTER TABLE table_name DROP column_name;
Например, чтобы удалить столбец "ad_phone" из таблицы "articles", используйте следующую команду:
ALTER TABLE articles DROP ad_phone;
Задания для самопроверки
- Изменить тип данных столбца content с TEXT (65 535 символов) на MEDIUMTEXT (16 777 215 символов):
ALTER TABLE articles MODIFY content MEDIUMTEXT;
- Добавить новый столбец views для отслеживания количества просмотров статьи:
ALTER TABLE articles ADD COLUMN views INT UNSIGNED DEFAULT 0;
- Изменить название столбца date_created на created_at:
ALTER TABLE articles CHANGE date_created created_at DATE;
- Удалить столбец author_id:
ALTER TABLE articles DROP COLUMN author_id;
- Изменить значение по умолчанию для столбца views на 1:
ALTER TABLE articles ALTER COLUMN views SET DEFAULT 1;
- Изменить тип данных столбца title на VARCHAR(255):
ALTER TABLE articles MODIFY title VARCHAR(255);
- Изменить значение столбца views для всех статей, у которых оно равно 0, на 1:
UPDATE articles SET views = 1 WHERE views = 0;
- Изменить тип данных столбца created_at с DATE на DATETIME:
ALTER TABLE articles MODIFY created_at DATETIME;