· 6 years ago · May 22, 2019, 12:16 PM
1PRAGMA FOREIGN_KEYS=ON;
2DROP TABLE IF EXISTS R1;
3DROP TABLE IF EXISTS R2;
4DROP TABLE IF EXISTS R3;
5
6DROP VIEW IF EXISTS view5;
7DROP VIEW IF EXISTS view4;
8DROP VIEW IF EXISTS view3;
9DROP VIEW IF EXISTS view2;
10DROP VIEW IF EXISTS view1;
11
12create table R1(
13 Ðомер_группы integer,
14 ÐšÑƒÑ€Ñ integer);
15
16create table R2(
17 Ðомер_группы integer,
18 Ðазвание_диÑциплины text,
19 Вид_занÑтий text);
20
21create table R3(
22 ФИО text,
23 Ðазвание_диÑциплины text,
24 Вид_занÑтий text);
25
26insert into R1 values (4641,3);
27insert into R1 values (4642,2);
28insert into R1 values (4643,3);
29insert into R1 values (4640,1);
30
31insert into R2 values (4641,'БД','ЛекциÑ');
32insert into R2 values (4641,'БД','Лаба');
33insert into R2 values (4641,'БД','КП');
34insert into R2 values (4642,'БД','ЛекциÑ');
35insert into R2 values (4642,'Схема','Лаба');
36insert into R2 values (4642,'Схема','КП');
37insert into R2 values (4643,'Схема','ЛекциÑ');
38insert into R2 values (4640,'Схема','ЛекциÑ');
39
40insert into R3 values ('ÐкÑенов','БД','ЛекциÑ');
41insert into R3 values ('ÐкÑенов','БД','Лаба');
42insert into R3 values ('ÐкÑенов','БД','КП');
43insert into R3 values ('Чернышев','Схема','Лаба');
44insert into R3 values ('Дук','Схема','КП');
45
46create view view1 as
47select ФИО
48from R3
49where ФИО in (select ФИО
50 from R3
51 group by ФИО
52 having count(Вид_занÑтий) < (select count(distinct Вид_занÑтий)
53 from R2))
54;
55
56create view view2 as
57select distinct Ðомер_группы
58from R2
59where Ðомер_группы in (select Ðомер_группы
60 from R2
61 group by Ðомер_группы
62 having count(Вид_занÑтий) = (select count(distinct Вид_занÑтий)
63 from R2))
64;
65
66create view view3 as
67select КурÑ
68from R1
69where ÐšÑƒÑ€Ñ not in(select КурÑ
70 from R2 natural join R1
71 where Вид_занÑтий = 'КП')
72;
73
74create view view4 as
75select ФИО
76from R3 natural join R2 natural join R1
77group by ФИО
78having count(Ðомер_группы) = 1
79;
80
81create view view5 as
82select Ðазвание_диÑциплины
83from R2 natural join R1
84where Вид_занÑтий = 'ЛекциÑ'
85group by Ðазвание_диÑциплины
86having count(distinct КурÑ) > 1
87;