При этом можно изменить тип, размер, ограничение NULL/NOT NULL, значение по умолчанию. Конечно, нельзя изменить имя столбца. Для этого следует удалить столбец со старым именем и добавить новый столбец с нужным именем;
Следует отметить, что во многих случаях команда ALTER TABLE позволяет внести изменения в структуру таблицы, уже заполненной данными (если они удовлетворяют вводимым ограничениям). В некоторых случаях требуется, чтобы столбец был пустым, например, сервер Oracle при удалении столбца требует выполнения этого условия.
Например:
ALTER TABLE t
MODIFY c2 VARCHAR(200)
Увеличили предельный размер текста для столбца c2
Пример создания базы данных
Создадим демонстрационную базу данных из трех таблиц (Студенты, Предметы и Оценки), которая будет хранить сведения об успеваемости студентов. Структура данной БД, конечно, сильно упрощена по сравнению с тем, что требуется для решения реальной задачи учета успеваемости студентов. Однако как пример для обучения основам SQL такая структура вполне подойдет. Назначение каждого столбца на изображенной ниже схеме, очевидно, понятно (рис. 4.1).
Схема Базы Данных:
Рис. 4.1 – Схема демонстрационной базы данных
Приведем различные варианты команд DML для создания трех таблиц базы данных.
Создание таблицы students:
CREATE TABLE students
(
cod_st NUMBER(5) PRIMARY KEY,
name_st VARCHAR(100) NOT NULL,
born DATE NOT NULL,
phone CHAR (15)
)
Создание таблицы subjects:
CREATE TABLE subjects
(
cod_sub NUMBER (4),
name_sub VARCHAR(200) NOT NULL
)
Изменение таблицы subjects, добавление первичного ключа:
ALTER TABLE subjects
ADD PRIMARY KEY (cod_sub)
Изменение таблицы subjects, добавление ограничения уникальности названия предмета: