Ответ на задание 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 автоматически удаляет зависимые объекты, например ограничение внешнего ключа. Поэтому применять эту команду следует осторожно, особенно при работе с реальными базами данных.