-
Notifications
You must be signed in to change notification settings - Fork 1
/
consultas_grupo07.sql
75 lines (57 loc) · 1.99 KB
/
consultas_grupo07.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
-------------------------- 1-inicio --------------------------
select count(pa.*) as quant_patentes, pr.coordenador as coordenador_projeto
from patente pa, projeto pr
where pa.cod = pr.cod;
-------------------------- 1-fim --------------------------
-------------------------- 2-inicio --------------------------
select *
from publicacao pu
where pu.veiculo = 'ACM';
-------------------------- 2-fim --------------------------
-------------------------- 3-inicio --------------------------
create view [Lista Alunos Orientados por Doutorados] as
select a.*
from pos p, aluno a, professor pr
where p.aluno = a.aluno
and p.orientador = pr.matr
and pr.titulo = 'DOUTORADO';
-------------------------- 3-fim --------------------------
-------------------------- 4-inicio --------------------------
create trigger orcamento_projeto_check
before
insert of orcamento on projeto
begin
if(new.orcamento > orcamento) then
orcamento = new.orcamento;
else
RAISE_APPLICATION_ERROR (
num => -20000,
msg => 'Cannot updated object');
end if;
end;
-------------------------- 4-fim --------------------------
-------------------------- 5-inicio --------------------------
create trigger limita_coordenador_orientador
before
insert or update of orientador on pos
begin
num int;
select into num count(*) from pos where orientador = new.orientador;
if(num < 2) then
insert into pos (aluno, titulo, orientador)
values (:new.aluno, :new.titulo, :new.orientador);
else
RAISE_APPLICATION_ERROR (
num => -20000,
msg => 'Erro! Limit exceeded.');
end if;
end;
-------------------------- 5-fim --------------------------
-------------------------- 6-inicio --------------------------
create view [Lista Laboratórios que não estão alocados] as
select la.*, count(re.*) as num_recursos
from recurso re, laboratorio la, projeto_laboratorio pl
where la.cod <> pl.laboratorio
and re.laboratorio = la.cod
order by num_recursos;
-------------------------- 6-fim --------------------------