-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOPERATIONS.sql
More file actions
90 lines (53 loc) · 2.85 KB
/
OPERATIONS.sql
File metadata and controls
90 lines (53 loc) · 2.85 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
-- 1/ Creazione di un Account
-----------------------------
DROP PROCEDURE IF EXISTS NewAccount;
DELIMITER $$
CREATE PROCEDURE NewAccount (IN _nomeutente VARCHAR(50), IN _domandasicurezza VARCHAR(100), IN _risposta VARCHAR(5),
IN _codfiscale VARCHAR(50), IN _nome VARCHAR(50), IN _cognome VARCHAR(50), IN _telefono VARCHAR(30),
IN _numdocumento varchar(50), IN _tipologia VARCHAR(50), IN _datascadenza DATE, IN _enterilascio VARCHAR(50))
BEGIN
-- chaeck scadenza
IF
(_datascadenza < CURRENT_DATE())
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'documento scaduto !';
ELSE
INSERT INTO Abitante (CodFiscale, Nome, Cognome, Scadenza, NumDoc, EnteRilascio, Telefono, TipoDoc)
VALUES (_codfiscale, _nome, _cognome, _datascadenza, _numdocumento, _enterilascio, _telefono, _tipologia);
INSERT INTO User (UserName)
VALUES (_nomeutente);
INSERT INTO Registrazione (abitante, user, DataRegistrazione)
VALUES (_codfiscale, _nomeutente, current_date());
END IF;
END $$
DELIMITER ;
CALL NewAccount ('user4', 'sei studente ?', 'si', 'VRSLSN21T28A390D', 'tom', 'de paul',
'3925804720', '58129', 'patente', '2026-05-12', 'stato italiano');
-- 2/ 2) un’abitante imposta una partenza differita con un programma
-- 3/ 3) consumo totale di un dispositivo di tipo potenza regolabile
-- 4/ 4) controllo dello stato del condizionatore in una stanza
-- 5/ 5) trovare i dispositivi più usati in ciascuna stanza
-- 6/ 6) dato un utente ('codfiscale'); elencare i condizionatori soggetti di un’impostazione ricorrente, da lui e in che stanza si trovano
-- ----------------------------------------------------------------------------------------------------------------------------
select RSC.ElemAria, P.stanza
from RecurrentSettingCond RSC inner join Registrazione R on R.user = RSC.user
inner join abitante A on A.CodFiscale = R.abitante
inner join presenza2 P on P.ElementoAria = RSC.ElemAria
where A.CodFiscale = 'codfiscale'
-- /7 7) inserire un nuovo dispositivo in una stanza, e collegarlo ad una SmartPlug
-- ----------------------------------------------------------------------------------
drop procedure if exists NewDevice;
delimiter $$
create procedure NewDevice(in _nomedevice varchar(50), _tipodevice varchar(50), in _tipoUso varchar(5), in _PotenzaMax int, in _PotenzaMin int,
in _smartplug varchar(50))
begin
insert into dispositivo (IDdispositivo, Tipo, UsoSingolo, PotenzaMax, PotenzaMin)
values (_nomedevice, _tipodevice, _tipoUso, _PotenzaMax, _PotenzaMin);
insert into SmartPlug (CodiceSmartplug)
values (_smartplug);
insert into collegamento
values (_smartplug, _nomedevice);
end $$
delimiter ;
-- /8 8) trovare gli elementi di luce che sono più usati in ogni stanza