CREATE TABLE dep_n1 (id serial primary key);
CREATE TABLE post_1 (id serial primary key);
CREATE TABLE emp_1 (
id serial, dep_id int, post_id int, date_work_begin date
);
INSERT INTO emp_1
VALUES
(9, null, null, '2021-01-01'),
(10, null, null, '2020-01-01'),
(11, null, null, '1990-01-01'),
(13, null, null, '1991-01-01');
-- 1. Создать таблицы emp_2 и emp_3, используя данные из таблицы emp_1.
CREATE TABLE emp_2 AS (
SELECT
*
FROM
emp_1
);
CREATE TABLE emp_3 AS (
SELECT
*
FROM
emp_1
);
-- 1.1. Установить первичный и внешние ключи.
ALTER TABLE
emp_2
ADD
PRIMARY KEY(id);
ALTER TABLE
emp_3
ADD
PRIMARY KEY(id);
ALTER TABLE
emp_2
ADD
CONSTRAINT fk_dep_id FOREIGN KEY(dep_id) REFERENCES dep_n1(id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE
emp_2
ADD
CONSTRAINT fk_post_id FOREIGN KEY(post_id) REFERENCES post_1(id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE
emp_3
ADD
CONSTRAINT fk_dep_id FOREIGN KEY(dep_id) REFERENCES dep_n1(id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE
emp_3
ADD
CONSTRAINT fk_post_id FOREIGN KEY(post_id) REFERENCES post_1(id) ON DELETE CASCADE ON UPDATE CASCADE;
-- 2. Из таблицы emp_2 удалить сотрудников, код которых заканчивается на на 0, а из таблицы emp_3 тех,
-- кто был принят на работу до 1993 года.
DELETE FROM
emp_2
WHERE
CAST(id AS text) LIKE '%0';
DELETE FROM
emp_3
WHERE
date_work_begin < '1993-01-01';
-- 3. Используя данные таблиц emp_1, emp_2, emp_3 и инструкции сочетания запросов вывести список удаленных в п.2
-- записей 2-мя вариантами построения запроса.
SELECT
*
FROM
emp_1
EXCEPT
(
SELECT
*
FROM
emp_2
INTERSECT
SELECT
*
FROM
emp_3
);
(
SELECT
*
FROM
emp_1
EXCEPT
SELECT
*
FROM
emp_2
)
UNION
(
SELECT
*
FROM
emp_1
EXCEPT
SELECT
*
FROM
emp_3
);