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,
	DESCRIZIONE VARCHAR(30) 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',2500,500),
('P1515','15/09/2013','Rossi','protesi dentaria 12 13',2000,2000)
;


INSERT INTO SEDUTE VALUES
('P0111','12/09/2012','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')
;


GRANT SELECT ON TABLE DENTISTI TO PUBLIC;

GRANT SELECT ON TABLE PREVENTIVI TO PUBLIC;

GRANT SELECT ON TABLE SEDUTE TO PUBLIC;

