Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PRAGMA FOREIGN_KEYS=ON;
- DROP TABLE IF EXISTS R1;
- DROP TABLE IF EXISTS R2;
- DROP TABLE IF EXISTS R3;
- DROP VIEW IF EXISTS view5;
- DROP VIEW IF EXISTS view4;
- DROP VIEW IF EXISTS view3;
- DROP VIEW IF EXISTS view2;
- DROP VIEW IF EXISTS view1;
- create table R1(
- Номер_группы integer,
- Курс integer);
- create table R2(
- Номер_группы integer,
- Название_дисциплины text,
- Вид_занятий text);
- create table R3(
- ФИО text,
- Название_дисциплины text,
- Вид_занятий text);
- insert into R1 values (4641,3);
- insert into R1 values (4642,2);
- insert into R1 values (4643,3);
- insert into R1 values (4640,1);
- insert into R2 values (4641,'БД','Лекция');
- insert into R2 values (4641,'БД','Лаба');
- insert into R2 values (4641,'БД','КП');
- insert into R2 values (4642,'БД','Лекция');
- insert into R2 values (4642,'Схема','Лаба');
- insert into R2 values (4642,'Схема','КП');
- insert into R2 values (4643,'Схема','Лекция');
- insert into R2 values (4640,'Схема','Лекция');
- insert into R3 values ('Аксенов','БД','Лекция');
- insert into R3 values ('Аксенов','БД','Лаба');
- insert into R3 values ('Аксенов','БД','КП');
- insert into R3 values ('Чернышев','Схема','Лаба');
- insert into R3 values ('Дук','Схема','КП');
- create view view1 as
- select ФИО
- from R3
- where ФИО in (select ФИО
- from R3
- group by ФИО
- having count(Вид_занятий) < (select count(distinct Вид_занятий)
- from R2))
- ;
- create view view2 as
- select distinct Номер_группы
- from R2
- where Номер_группы in (select Номер_группы
- from R2
- group by Номер_группы
- having count(Вид_занятий) = (select count(distinct Вид_занятий)
- from R2))
- ;
- create view view3 as
- select Курс
- from R1
- where Курс not in(select Курс
- from R2 natural join R1
- where Вид_занятий = 'КП')
- ;
- create view view4 as
- select ФИО
- from R3 natural join R2 natural join R1
- group by ФИО
- having count(Номер_группы) = 1
- ;
- create view view5 as
- select Название_дисциплины
- from R2 natural join R1
- where Вид_занятий = 'Лекция'
- group by Название_дисциплины
- having count(distinct Курс) > 1
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement