DROP TABLE IF EXISTS ΞΕΝΟΔΟΧΕΙΟ CASCADE;
DROP TABLE IF EXISTS ΠΕΛΑΤΗΣ CASCADE;
DROP TABLE IF EXISTS ΚΡΑΤΗΣΗ CASCADE;
DROP TABLE IF EXISTS ΔΩΜΑΤΙΟ CASCADE;
--ΞΕΝΟΔΟΧΕΙΟ (ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ, ΟΝΟΜΑ_ΞΕΝΟΔΟΧΕΙΟΥ, ΚΑΤΗΓΟΡΙΑ_ΞΕΝΟΔΟΧΕΙΟΥ, ΤΟΠΟΘΕΣΙΑ_ΞΕΝΟΔΟΧΕΙΟΥ)
-- Table: ΞΕΝΟΔΟΧΕΙΟ
CREATE TABLE ΞΕΝΟΔΟΧΕΙΟ (
ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΟΝΟΜΑ_ΞΕΝΟΔΟΧΕΙΟΥ TEXT NOT NULL,
ΚΑΤΗΓΟΡΙΑ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΤΟΠΟΘΕΣΙΑ_ΞΕΝΟΔΟΧΕΙΟΥ TEXT NOT NULL,
PRIMARY KEY(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ));
--INSERT DATA INTO ΞΕΝΟΔΟΧΕΙΟ
INSERT INTO ΞΕΝΟΔΟΧΕΙΟ VALUES(1,'SAMARIA',5,'Χανιά');
INSERT INTO ΞΕΝΟΔΟΧΕΙΟ VALUES(2,'ΠΡΕΒΕΛΗΣ',3,'Ρέθυμνο');
-- ΠΕΛΑΤΗΣ (ΚΩΔ_ΠΕΛΑΤΗ, ΟΝΟΜΑ_ΠΕΛΑΤΗ, ΤΗΛΕΦΩΝΟ_ΠΕΛΑΤΗ)
-- Table: ΠΕΛΑΤΗΣ
CREATE TABLE ΠΕΛΑΤΗΣ (
ΚΩΔ_ΠΕΛΑΤΗ INTEGER NOT NULL,
ΟΝΟΜΑ_ΠΕΛΑΤΗ TEXT NOT NULL,
ΤΗΛΕΦΩΝΟ_ΠΕΛΑΤΗ TEXT NOT NULL,
PRIMARY KEY(ΚΩΔ_ΠΕΛΑΤΗ));
--INSERT DATA INTO ΠΕΛΑΤΗΣ
INSERT INTO ΠΕΛΑΤΗΣ VALUES(1,'ΑΚΟΥΜΙΑΝΑΚΗΣ ΔΗΜΟΣΘΕΝΗΣ','2810379190');
INSERT INTO ΠΕΛΑΤΗΣ VALUES(2,'ΣΠΥΡΙΔΟΥ ΜΑΡΙΑ','6911122233');
-- ΔΩΜΑΤΙΟ (ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ, ΚΩΔ_ΔΩΜΑΤΙΟΥ, ΤΙΜΗ_ΑΝΑ_ΗΜΕΡΑ)
-- Table: ΔΩΜΑΤΙΟ
CREATE TABLE ΔΩΜΑΤΙΟ (
ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΚΩΔ_ΔΩΜΑΤΙΙΟΥ INTEGER NOT NULL,
ΤΙΜΗ_ΑΝΑ_ΗΜΕΡΑ INTEGER NOT NULL,
FOREIGN KEY (ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ) REFERENCES ΞΕΝΟΔΟΧΕΙΟ(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ),
PRIMARY KEY(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΔΩΜΑΤΙΙΟΥ));
--INSERT DATA INTO ΔΩΜΑΤΙΟ
INSERT INTO ΔΩΜΑΤΙΟ VALUES(1,1,120);
INSERT INTO ΔΩΜΑΤΙΟ VALUES(1,2,70);
-- ΚΡΑΤΗΣΗ (ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ, ΚΩΔ_ΠΕΛΑΤΗ, ΗΜΕΡΟΜΗΝΙΑ_ΑΦΙΞΗΣ_ΠΕΛΑΤΗ, ΚΩΔ_ΔΩΜΑΤΙΟΥ, ΗΜΕΡΕΣ_ΔΙΑΜΟΝΗΣ_ΠΕΛΑΤΗ)
-- Table: ΚΡΑΤΗΣΗ
CREATE TABLE ΚΡΑΤΗΣΗ(
ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ INTEGER NOT NULL,
ΚΩΔ_ΠΕΛΑΤΗ INTEGER NOT NULL,
ΗΜΕΡ_ΑΦΙΞΗΣ_ΠΕΛΑΤΗ DATE NOT NULL,
ΚΩΔ_ΔΩΜΑΤΙΙΟΥ INTEGER NOT NULL,
ΗΜΕΡΕΣ_ΔΙΑΜΟΝΗΣ_ΠΕΛΑΤΗ INTEGER NOT NULL,
FOREIGN KEY (ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΔΩΜΑΤΙΙΟΥ) REFERENCES ΔΩΜΑΤΙΟ(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΔΩΜΑΤΙΙΟΥ),
FOREIGN KEY (ΚΩΔ_ΠΕΛΑΤΗ) REFERENCES ΠΕΛΑΤΗΣ(ΚΩΔ_ΠΕΛΑΤΗ),
PRIMARY KEY(ΚΩΔ_ΞΕΝΟΔΟΧΕΙΟΥ,ΚΩΔ_ΠΕΛΑΤΗ,ΗΜΕΡ_ΑΦΙΞΗΣ_ΠΕΛΑΤΗ));
--INSERT DATA INTO ΚΡΑΤΗΣΗ
INSERT INTO ΚΡΑΤΗΣΗ VALUES(1,1,'2020-03-10',1,3);
INSERT INTO ΚΡΑΤΗΣΗ VALUES(1,2,'2020-03-10',2,4);
-- Ελεγχος συνένωσης άνευ απωλειών
SELECT * FROM ΔΩΜΑΤΙΟ
NATURAL JOIN ΞΕΝΟΔΟΧΕΙΟ
NATURAL JOIN ΠΕΛΑΤΗΣ
NATURAL JOIN ΚΡΑΤΗΣΗ;