DROP TABLE DENTISTI;
DROP TABLE PREVENTIVI;
DROP TABLE SEDUTE;

CREATE TABLE DENTISTI (
	DID CHAR(3) NOT NULL PRIMARY KEY,
	NOME VARCHAR(20) NOT NULL,
	ANNISERVIZIO SMALLINT NOT NULL CHECK (ANNISERVIZIO > 0)	);

CREATE TABLE PREVENTIVI (
	PID CHAR(5) NOT NULL PRIMARY KEY,
	DATA DATE NOT NULL,
	PAZIENTE VARCHAR(20) NOT NULL,
	TIPO VARCHAR(20) NOT NULL,
	DETTAGLI VARCHAR(20) NOT NULL,
	IMPORTO DEC(8,2) NOT NULL,
	PAGATO DEC(8,2) NOT NULL WITH DEFAULT 0,
	CONSTRAINT DASALDARE CHECK (PAGATO <= IMPORTO)		);

CREATE TABLE SEDUTE (
	PID CHAR(5) NOT NULL REFERENCES PREVENTIVI,
	DATA DATE NOT NULL,
	DID CHAR(3) NOT NULL REFERENCES DENTISTI,
	PRIMARY KEY (PID,DATA)    				);

INSERT INTO DENTISTI VALUES
('D01','Molari',3),
('D02','Giudice',5),
('D03','Nervo',6),
('D04','Piorri',7)
;

INSERT INTO PREVENTIVI VALUES
('P0111','12/09/2012','Rossi','pulizia canalare','24',100,100), 
('P0121','10/11/2012','Verdi','protesi dentaria','42',1200,500), 
('P1123','10/03/2013','Rossi','pulizia canalare','26 27',200,200), 
('P1234','21/06/2013','Bianchi','pulizia canalare','12 14 25',300,300), 
('P1333','10/07/2013','Neri','protesi dentaria','23 24',1900,500),
('P1515','15/09/2013','Rossi','protesi dentaria','12 13',1800,1800),
('P1600','12/10/2013','Verdi','estrazione','31',1400,1200)
;


INSERT INTO SEDUTE VALUES
('P0111','12/09/2012','D02'),
('P0111','13/01/2013','D02'),

('P0121','10/11/2012','D01'),
('P0121','09/01/2013','D03'),

('P1123','10/03/2013','D03'),
('P1123','16/03/2013','D03'),
('P1123','14/04/2013','D03'),

('P1234','21/06/2013','D01'),
('P1234','27/07/2013','D01'),
('P1234','28/09/2013','D01'),

('P1333','10/09/2013','D04'),

('P1515','15/09/2013','D01'),
('P1515','25/09/2013','D04'),

('P1600','12/10/2013','D04')
;


GRANT SELECT ON TABLE DENTISTI TO PUBLIC;

GRANT SELECT ON TABLE PREVENTIVI TO PUBLIC;

GRANT SELECT ON TABLE SEDUTE TO PUBLIC;

