Ответ на задание 1
Для создания таблицы используется DDL-команда CREATE TABLE.
CREATE TABLE Student (
StudentID INT
PRIMARY KEY,
FullName
VARCHAR(100) NOT NULL,
BirthDate DATE,
Email VARCHAR(100)
UNIQUE,
GroupID INT
);
В данном примере:
Таким образом, DDL позволяет определить не только структуру
таблицы, но и основные ограничения целостности данных.
Ответ на задание 2
Для изменения существующей структуры таблицы используется
команда ALTER TABLE.
Добавление поля:
ALTER TABLE Student
ADD COLUMN Phone VARCHAR(20);
Теперь таблица Student содержит дополнительный столбец
Phone.
В PostgreSQL изменить его длину можно следующим образом:
ALTER TABLE Student
ALTER COLUMN Phone TYPE VARCHAR(30);
Если поле больше не требуется:
ALTER TABLE Student
DROP COLUMN Phone;
Таким образом, ALTER TABLE позволяет изменять структуру уже
существующей таблицы без необходимости создавать ее заново.
Ответ на задание 3
Сначала создается таблица Department, поскольку на нее будет
ссылаться таблица Teacher.
CREATE TABLE Department (
DepartmentID INT
PRIMARY KEY,
DepartmentName
VARCHAR(100) NOT NULL
);
Затем создается таблица Teacher:
CREATE TABLE Teacher (
TeacherID INT
PRIMARY KEY,
FullName
VARCHAR(100) NOT NULL,
Email VARCHAR(100)
UNIQUE,
DepartmentID INT
NOT NULL,
FOREIGN KEY
(DepartmentID)
REFERENCES
Department(DepartmentID)
);
Полученная связь:
Department 1 ───── N Teacher
Если необходимо удалить обе таблицы, сначала следует удалить
зависимую таблицу Teacher:
DROP TABLE Teacher;
DROP TABLE Department;
Такой порядок необходим, поскольку Teacher.DepartmentID
содержит внешний ключ, ссылающийся на Department.
В PostgreSQL также существует вариант:
DROP TABLE Department CASCADE;
CASCADE автоматически удаляет зависимые объекты, например
ограничение внешнего ключа. Поэтому применять эту команду следует осторожно,
особенно при работе с реальными базами данных.