DROP TABLE PRODOTTI;
DROP TABLE LISTENOZZE;
DROP TABLE REGALI;

CREATE TABLE PRODOTTI (
	CODP CHAR(4) NOT NULL PRIMARY KEY,
	DESCRIZIONE VARCHAR(30) NOT NULL,
	PREZZO DEC(6,2) NOT NULL CHECK (PREZZO > 0),
	CATEGORIA VARCHAR(20) NOT NULL	);

CREATE TABLE LISTENOZZE (
	LID CHAR(4) NOT NULL,
	CODP CHAR(4) NOT NULL REFERENCES PRODOTTI,
	NUMQUOTE INT NOT NULL CHECK (NUMQUOTE > 0),
	PREZZOQUOTA DEC(6,2) NOT NULL CHECK (PREZZOQUOTA > 0),
	PRIMARY KEY (LID,CODP)		);

CREATE TABLE REGALI(
	LID CHAR(4) NOT NULL,
	CODP CHAR(4) NOT NULL,
	INVITATO VARCHAR(15) NOT NULL,
	NUMQUOTE INT NOT NULL CHECK (NUMQUOTE > 0),
	FOREIGN KEY (LID,CODP) REFERENCES LISTENOZZE,
	PRIMARY KEY (LID,CODP,INVITATO)			);


INSERT INTO PRODOTTI VALUES
('P001','12 PIATTI PIANI',300.00,'Tavola'),
('P002','12 PIATTI FONDI',300.00,'Tavola'),
('P003','12 PIATTI FRUTTA',150.00,'Tavola'),
('P004','12 BICCHIERI VINO',150.00,'Tavola'),
('P005','12 BICCHIERI ACQUA',200.00,'Tavola'),

('P006','PIUMINO OCA LEGGERO',100.00,'Letto'),
('P007','PIUMINO OCA PESANTE',150.00,'Letto'),
('P008','LENZUOLA AZZURRE',100.00,'Letto'),
('P009','LENZUOLA BIANCHE',80.00,'Letto'),

('P010','SMART TV LCD 50',500.00,'Elettronica'),
('P011','SMART TV LCD 65',900.00,'Elettronica'),
('P012','SISTEMA HOME THEATRE',250.00,'Elettronica');

INSERT INTO LISTENOZZE VALUES
('L100','P001',2,150.00),
('L100','P002',2,150.00),

('L100','P006',1,100.00),
('L100','P008',1,100.00),

('L100','P011',3,300.00),
('L100','P012',1,250.00),


('L200','P001',1,300.00),
('L200','P002',1,300.00),
('L200','P003',1,150.00),

('L200','P010',2,250.00),
('L200','P012',1,250.00),


('L300','P001',1,300.00),
('L300','P002',1,300.00),

('L300','P007',1,150.00),
('L300','P008',1,100.00),
('L300','P009',1, 80.00),

('L300','P010',1,500.00),
('L300','P011',2,450.00);


INSERT INTO REGALI VALUES
('L100','P001','Gaia',2),
('L100','P002','Gaia',2),

('L100','P006','Giorgio',1),
('L100','P011','Giorgio',1),
('L100','P011','Andrea',1),


('L200','P001','Luca',1),
('L200','P002','Luca',1),

('L200','P010','Maria',1),
('L200','P012','Maria',1),


('L300','P001','Annalisa',1),
('L300','P008','Luisa',1),


('L300','P010','Roberto',1),
('L300','P011','Roberto',1),
('L300','P011','Patrizia',1);


GRANT SELECT ON PRODOTTI TO PUBLIC;
GRANT SELECT ON LISTENOZZE TO PUBLIC;
GRANT SELECT ON REGALI TO PUBLIC;

