SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
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'); -- 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 );
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear