Vous êtes sur la page 1sur 8

-- Création de la table PROPRIO

CREATE TABLE PROPRIO (


IdP NUMBER(10) PRIMARY KEY,
Nom VARCHAR2(50) NOT NULL,
Prenom VARCHAR2(50) NOT NULL
);

-- Création de la table BIEN


CREATE TABLE BIEN (
IdEBien NUMBER(10) PRIMARY KEY,
Categorie VARCHAR2(50) NOT NULL,
Type VARCHAR2(50) NOT NULL,
IdP NUMBER(10) NOT NULL,
Ville VARCHAR2(50) NOT NULL,
Prix NUMBER(10) NOT NULL,
FOREIGN KEY (IdP) REFERENCES PROPRIO(IdP)
);

-- Création de la table ESPACE


CREATE TABLE ESPACE (
IdE NUMBER(10) PRIMARY KEY,
Designation VARCHAR2(50) NOT NULL,
Superficie NUMBER(10),
IdERattach NUMBER(10),
FOREIGN KEY (IdERattach) REFERENCES ESPACE(IdE)
);

-- Ajout des biens


INSERT INTO BIEN VALUES (1, 'Appartement', 'T3', 1, 'Paris', 250000);
INSERT INTO BIEN VALUES (50, 'Maison', 'T5', 2, 'Lyon', 400000);
INSERT INTO BIEN VALUES (100, 'Villa', 'T6', 3, 'Nice', 700000);
INSERT INTO BIEN VALUES (150, 'Appartement', 'T2', 4, 'Marseille', 150000);
INSERT INTO BIEN VALUES (200, 'Maison de ville', 'T4', 5, 'Bordeaux', 300000);
INSERT INTO BIEN VALUES (250, 'Appartement', 'T4', 6, 'Nantes', 220000);
INSERT INTO BIEN VALUES (300, 'Appartement', 'T3', 7, 'Lille', 190000);
INSERT INTO BIEN VALUES (350, 'Villa', 'T4', 8, 'Toulouse', 600000);
INSERT INTO BIEN VALUES (400, 'Maison de ville', 'T4', 1, 'Paris', 350000);
INSERT INTO BIEN VALUES (450, 'Appartement', 'T3', 2, 'Lyon', 180000);
INSERT INTO BIEN VALUES (500, 'Villa', 'T5', 3, 'Nice', 900000);
INSERT INTO BIEN VALUES (550, 'Appartement', 'T4', 4, 'Marseille', 230000);
INSERT INTO BIEN VALUES (600, 'Maison', 'T5', 5, 'Bordeaux', 420000);
INSERT INTO BIEN VALUES (650, 'Appartement', 'T2', 6, 'Nantes', 140000);
INSERT INTO BIEN VALUES (700, 'Maison de ville', 'T5', 7, 'Lille', 380000);
INSERT INTO BIEN VALUES (750, 'Villa', 'T6', 8, 'Toulouse', 800000);
INSERT INTO BIEN VALUES (800, 'Appartement', 'T3', 1, 'Paris', 270000);
INSERT INTO BIEN VALUES (850, 'Maison', 'T5', 2, 'Lyon', 450000);
INSERT INTO BIEN VALUES (900, 'Villa', 'T6', 3, 'Nice', 750000);
INSERT INTO BIEN VALUES (950, 'Appartement', 'T2', 4, 'Marseille', 160000);

-- Ajout de l'espace du bien 1 (appartement)


INSERT INTO ESPACE VALUES (1, 'Appartement', 80, NULL);

INSERT INTO ESPACE VALUES (2, 'Intérieur', NULL, 1);


INSERT INTO ESPACE VALUES (3, 'Salon', 25, 2);
INSERT INTO ESPACE VALUES (4, 'Cuisine', 15, 2);
INSERT INTO ESPACE VALUES (5, 'Chambre 1', 15, 2);
INSERT INTO ESPACE VALUES (6, 'Chambre 2', 10, 2);
INSERT INTO ESPACE VALUES (7, 'Salle de bain', 5, 2);

INSERT INTO ESPACE VALUES (8, 'Extérieur', NULL, 1);


INSERT INTO ESPACE VALUES (9, 'Balcon', 10, 8);
INSERT INTO ESPACE VALUES (10, 'Terrasse', 20, 8);

-- Ajout de l'espace "Maison" (id = 50)


INSERT INTO ESPACE VALUES (50, 'Maison', 200, NULL);

INSERT INTO ESPACE VALUES (51, 'Intérieur', NULL, 50);


INSERT INTO ESPACE VALUES (52, 'Salon', 40, 51);
INSERT INTO ESPACE VALUES (53, 'Cuisine', 20, 51);
INSERT INTO ESPACE VALUES (54, 'Chambre 1', 15, 51);
INSERT INTO ESPACE VALUES (55, 'Chambre 2', 10, 51);
INSERT INTO ESPACE VALUES (56, 'Chambre 3', 10, 51);
INSERT INTO ESPACE VALUES (57, 'Salle de bain 1', 10, 51);
INSERT INTO ESPACE VALUES (58, 'Salle de bain 2', 5, 51);

INSERT INTO ESPACE VALUES (59, 'Extérieur', NULL, 50);


INSERT INTO ESPACE VALUES (60, 'Jardin', 100, 59);
INSERT INTO ESPACE VALUES (61, 'Terrasse', 40, 59);

-- Ajout de l'espace "Villa" (id = 100)


INSERT INTO ESPACE VALUES (100, 'Villa', 300, NULL);

INSERT INTO ESPACE VALUES (101, 'Intérieur', NULL, 100);


INSERT INTO ESPACE VALUES (102, 'Salon', 60, 101);
INSERT INTO ESPACE VALUES (103, 'Cuisine', 30, 101);
INSERT INTO ESPACE VALUES (104, 'Chambre 1', 20, 101);
INSERT INTO ESPACE VALUES (105, 'Chambre 2', 15, 101);
INSERT INTO ESPACE VALUES (106, 'Chambre 3', 15, 101);
INSERT INTO ESPACE VALUES (107, 'Salle de bain 1', 15, 101);
INSERT INTO ESPACE VALUES (108, 'Salle de bain 2', 10, 101);
INSERT INTO ESPACE VALUES (109, 'Dressing', 10, 101);

INSERT INTO ESPACE VALUES (110, 'Extérieur', NULL, 100);


INSERT INTO ESPACE VALUES (111, 'Jardin', 150, 110);
INSERT INTO ESPACE VALUES (112, 'Piscine', 50, 110);
INSERT INTO ESPACE VALUES (113, 'Terrasse', 80, 110);

-- Ajout de l'espace "Maison de ville" (id = 150)


INSERT INTO ESPACE VALUES (150, 'Maison de ville', 150, NULL);

INSERT INTO ESPACE VALUES (151, 'Intérieur', NULL, 150);


INSERT INTO ESPACE VALUES (152, 'Salon', 30, 151);
INSERT INTO ESPACE VALUES (153, 'Cuisine', 20, 151);
INSERT INTO ESPACE VALUES (154, 'Chambre 1', 15, 151);
INSERT INTO ESPACE VALUES (155, 'Chambre 2', 10, 151);
INSERT INTO ESPACE VALUES (156, 'Salle de bain 1', 10, 151);

-- Pas d'espace extérieur pour ce bien

-- Ajout de l'espace "Appartement" (id = 200)


INSERT INTO ESPACE VALUES (200, 'Appartement', 80, NULL);
INSERT INTO ESPACE VALUES (201, 'Intérieur', NULL, 200);
INSERT INTO ESPACE VALUES (202, 'Salon', 30, 201);
INSERT INTO ESPACE VALUES (203, 'Cuisine', 15, 201);
INSERT INTO ESPACE VALUES (204, 'Chambre 1', 10, 201);
INSERT INTO ESPACE VALUES (205, 'Chambre 2', 10, 201);
INSERT INTO ESPACE VALUES (206, 'Salle de bain 1', 5, 201);

-- Pas d'espace extérieur pour ce bien

-- Ajout de l'espace "Villa" (id = 250)


INSERT INTO ESPACE VALUES (250, 'Villa', 200, NULL);

INSERT INTO ESPACE VALUES (251, 'Intérieur', NULL, 250);


INSERT INTO ESPACE VALUES (252, 'Salon', 50, 251);
INSERT INTO ESPACE VALUES (253, 'Cuisine', 30, 251);
INSERT INTO ESPACE VALUES (254, 'Chambre 1', 20, 251);
INSERT INTO ESPACE VALUES (255, 'Chambre 2', 15, 251);
INSERT INTO ESPACE VALUES (256, 'Chambre 3', 15, 251);
INSERT INTO ESPACE VALUES (257, 'Salle de bain 1', 10, 251);
INSERT INTO ESPACE VALUES (258, 'Salle de bain 2', 10, 251);
INSERT INTO ESPACE VALUES (259, 'Dressing', 10, 251);

INSERT INTO ESPACE VALUES (260, 'Extérieur', NULL, 250);


INSERT INTO ESPACE VALUES (261, 'Jardin', 100, 260);
INSERT INTO ESPACE VALUES (262, 'Piscine', 50, 260);
INSERT INTO ESPACE VALUES (263, 'Terrasse', 50, 260);

-- Ajout de l'espace "Villa" (id = 250)


INSERT INTO ESPACE VALUES (250, 'Villa', 200, NULL);

INSERT INTO ESPACE VALUES (251, 'Intérieur', NULL, 250);


INSERT INTO ESPACE VALUES (252, 'Salon', 50, 251);
INSERT INTO ESPACE VALUES (253, 'Cuisine', 30, 251);
INSERT INTO ESPACE VALUES (254, 'Chambre 1', 20, 251);
INSERT INTO ESPACE VALUES (255, 'Chambre 2', 15, 251);
INSERT INTO ESPACE VALUES (256, 'Chambre 3', 15, 251);
INSERT INTO ESPACE VALUES (257, 'Salle de bain 1', 10, 251);
INSERT INTO ESPACE VALUES (258, 'Salle de bain 2', 10, 251);
INSERT INTO ESPACE VALUES (259, 'Dressing', 10, 251);

INSERT INTO ESPACE VALUES (260, 'Extérieur', NULL, 250);


INSERT INTO ESPACE VALUES (261, 'Jardin', 100, 260);
INSERT INTO ESPACE VALUES (262, 'Piscine', 50, 260);
INSERT INTO ESPACE VALUES (263, 'Terrasse', 50, 260);

-- Ajout de l'espace "Maison de ville" (id = 300)


INSERT INTO ESPACE VALUES (300, 'Maison de ville', 120, NULL);

INSERT INTO ESPACE VALUES (301, 'Intérieur', NULL, 300);


INSERT INTO ESPACE VALUES (302, 'Salon', 30, 301);
INSERT INTO ESPACE VALUES (303, 'Cuisine', 20, 301);
INSERT INTO ESPACE VALUES (304, 'Chambre 1', 15, 301);
INSERT INTO ESPACE VALUES (305, 'Chambre 2', 10, 301);
INSERT INTO ESPACE VALUES (306, 'Salle de bain 1', 10, 301);
INSERT INTO ESPACE VALUES (310, 'Extérieur', NULL, 300);
INSERT INTO ESPACE VALUES (311, 'Jardin', 50, 310);
INSERT INTO ESPACE VALUES (312, 'Terrasse', 30, 310);

-- Ajout de l'espace "Villa" (id = 350)


INSERT INTO ESPACE VALUES (350, 'Villa', NULL, NULL);

INSERT INTO ESPACE VALUES (351, 'Intérieur', NULL, 350);


INSERT INTO ESPACE VALUES (352, 'Salon', 30, 351);
INSERT INTO ESPACE VALUES (353, 'Cuisine', 20, 351);
INSERT INTO ESPACE VALUES (354, 'Chambre 1', 20, 351);
INSERT INTO ESPACE VALUES (355, 'Chambre 2', 15, 351);
INSERT INTO ESPACE VALUES (356, 'Chambre 3', 15, 351);
INSERT INTO ESPACE VALUES (357, 'Salle de bain 1', 8, 351);
INSERT INTO ESPACE VALUES (358, 'Salle de bain 2', 6, 351);

INSERT INTO ESPACE VALUES (360, 'Extérieur', NULL, 350);


INSERT INTO ESPACE VALUES (361, 'Terrasse', 20, 360);
INSERT INTO ESPACE VALUES (362, 'Jardin', 100, 360);

-- Ajout de l'espace "Maison de ville" (id = 400)


INSERT INTO ESPACE VALUES (400, 'Maison de ville', NULL, NULL);

INSERT INTO ESPACE VALUES (401, 'Intérieur', NULL, 400);


INSERT INTO ESPACE VALUES (402, 'Salon', 30, 401);
INSERT INTO ESPACE VALUES (403, 'Cuisine', 15, 401);
INSERT INTO ESPACE VALUES (404, 'Chambre 1', 10, 401);
INSERT INTO ESPACE VALUES (405, 'Chambre 2', 10, 401);
INSERT INTO ESPACE VALUES (406, 'Chambre 3', 10, 401);
INSERT INTO ESPACE VALUES (407, 'Salle de bain', 8, 401);

INSERT INTO ESPACE VALUES (410, 'Extérieur', NULL, 400);


INSERT INTO ESPACE VALUES (411, 'Terrasse', 20, 410);
INSERT INTO ESPACE VALUES (412, 'Jardin', 50, 410);

-- Ajout de l'espace "Appartement" (id = 450)


INSERT INTO ESPACE VALUES (450, 'Appartement', 60, NULL);

INSERT INTO ESPACE VALUES (451, 'Salon', 20, 450);


INSERT INTO ESPACE VALUES (452, 'Cuisine', 10, 450);
INSERT INTO ESPACE VALUES (453, 'Chambre 1', 15, 450);
INSERT INTO ESPACE VALUES (454, 'Salle de bain', 10, 450);

-- Ajout de l'espace "Villa" (id = 500)


INSERT INTO ESPACE VALUES (500, 'Villa', 300, NULL);

INSERT INTO ESPACE VALUES (501, 'Intérieur', NULL, 500);


INSERT INTO ESPACE VALUES (502, 'Salon', 50, 501);
INSERT INTO ESPACE VALUES (503, 'Cuisine', 30, 501);
INSERT INTO ESPACE VALUES (504, 'Chambre 1', 20, 501);
INSERT INTO ESPACE VALUES (505, 'Chambre 2', 15, 501);
INSERT INTO ESPACE VALUES (506, 'Chambre 3', 15, 501);
INSERT INTO ESPACE VALUES (507, 'Salle de bain 1', 10, 501);
INSERT INTO ESPACE VALUES (508, 'Salle de bain 2', 10, 501);

INSERT INTO ESPACE VALUES (510, 'Extérieur', NULL, 500);


INSERT INTO ESPACE VALUES (511, 'Piscine', 50, 510);
INSERT INTO ESPACE VALUES (512, 'Terrasse', 30, 510);
INSERT INTO ESPACE VALUES (513, 'Jardin', 200, 510);

-- Ajout de l'espace "Appartement" (id = 550)


INSERT INTO ESPACE VALUES (550, 'Appartement', 90, NULL);

INSERT INTO ESPACE VALUES (551, 'Intérieur', NULL, 550);


INSERT INTO ESPACE VALUES (552, 'Salon', 30, 551);
INSERT INTO ESPACE VALUES (553, 'Cuisine', 15, 551);
INSERT INTO ESPACE VALUES (554, 'Chambre 1', 20, 551);
INSERT INTO ESPACE VALUES (555, 'Chambre 2', 15, 551);
INSERT INTO ESPACE VALUES (556, 'Chambre 3', 10, 551);
INSERT INTO ESPACE VALUES (557, 'Salle de bain 1', 8, 551);
INSERT INTO ESPACE VALUES (558, 'Salle de bain 2', 6, 551);

-- Ajout de l'espace "Maison" (id = 600)


INSERT INTO ESPACE VALUES (600, 'Maison', NULL, NULL);

INSERT INTO ESPACE VALUES (601, 'Intérieur', NULL, 600);


INSERT INTO ESPACE VALUES (602, 'Salon', 30, 601);
INSERT INTO ESPACE VALUES (603, 'Cuisine', 15, 601);
INSERT INTO ESPACE VALUES (604, 'Chambre 1', 20, 601);
INSERT INTO ESPACE VALUES (605, 'Chambre 2', 15, 601);
INSERT INTO ESPACE VALUES (606, 'Chambre 3', 10, 601);
INSERT INTO ESPACE VALUES (607, 'Salle de bain 1', 8, 601);
INSERT INTO ESPACE VALUES (608, 'Salle de bain 2', 6, 601);

INSERT INTO ESPACE VALUES (610, 'Extérieur', NULL, 600);


INSERT INTO ESPACE VALUES (611, 'Terrasse', 20, 610);
INSERT INTO ESPACE VALUES (612, 'Jardin', 200, 610);

-- Ajout de l'espace "Appartement" (id = 650)


INSERT INTO ESPACE VALUES (650, 'Appartement', 60, NULL);

INSERT INTO ESPACE VALUES (651, 'Intérieur', NULL, 650);


INSERT INTO ESPACE VALUES (652, 'Salon', 20, 651);
INSERT INTO ESPACE VALUES (653, 'Cuisine', 15, 651);
INSERT INTO ESPACE VALUES (654, 'Chambre', 20, 651);
INSERT INTO ESPACE VALUES (655, 'Salle de bain', 5, 651);

-- Ajout de l'espace "Villa" (id = 750)


INSERT INTO ESPACE VALUES (750, 'Villa', NULL, NULL);

INSERT INTO ESPACE VALUES (751, 'Intérieur', NULL, 750);


INSERT INTO ESPACE VALUES (752, 'Salon', 30, 751);
INSERT INTO ESPACE VALUES (753, 'Cuisine', 20, 751);
INSERT INTO ESPACE VALUES (754, 'Salle à manger', 20, 751);
INSERT INTO ESPACE VALUES (755, 'Chambre parentale', 25, 751);
INSERT INTO ESPACE VALUES (756, 'Chambre 2', 15, 751);
INSERT INTO ESPACE VALUES (757, 'Chambre 3', 15, 751);
INSERT INTO ESPACE VALUES (758, 'Salle de bain 1', 10, 751);
INSERT INTO ESPACE VALUES (759, 'Salle de bain 2', 8, 751);

INSERT INTO ESPACE VALUES (760, 'Extérieur', NULL, 750);


INSERT INTO ESPACE VALUES (761, 'Terrasse', 20, 760);
INSERT INTO ESPACE VALUES (762, 'Piscine', 50, 760);
INSERT INTO ESPACE VALUES (763, 'Jardin', 200, 760);

-- Ajout de l'espace "Appartement" (id = 800)


INSERT INTO ESPACE VALUES (800, 'Appartement', NULL, NULL);

INSERT INTO ESPACE VALUES (801, 'Intérieur', NULL, 800);


INSERT INTO ESPACE VALUES (802, 'Salon', 20, 801);
INSERT INTO ESPACE VALUES (803, 'Cuisine', 15, 801);
INSERT INTO ESPACE VALUES (804, 'Chambre parentale', 18, 801);
INSERT INTO ESPACE VALUES (805, 'Chambre 2', 12, 801);
INSERT INTO ESPACE VALUES (806, 'Salle de bain', 8, 801);

-- Ajout de l'espace "Maison" (id = 850)


INSERT INTO ESPACE VALUES (850, 'Maison', NULL, NULL);

INSERT INTO ESPACE VALUES (851, 'Intérieur', NULL, 850);


INSERT INTO ESPACE VALUES (852, 'Salon', 30, 851);
INSERT INTO ESPACE VALUES (853, 'Cuisine', 25, 851);
INSERT INTO ESPACE VALUES (854, 'Chambre parentale', 20, 851);
INSERT INTO ESPACE VALUES (855, 'Chambre 2', 15, 851);
INSERT INTO ESPACE VALUES (856, 'Chambre 3', 12, 851);
INSERT INTO ESPACE VALUES (857, 'Salle de bain 1', 8, 851);
INSERT INTO ESPACE VALUES (858, 'Salle de bain 2', 5, 851);

INSERT INTO ESPACE VALUES (859, 'Extérieur', NULL, 850);


INSERT INTO ESPACE VALUES (860, 'Jardin', 150, 859);
INSERT INTO ESPACE VALUES (861, 'Terrasse', 30, 859);

-- Ajout de l'espace "Villa" (id = 900)


INSERT INTO ESPACE VALUES (900, 'Villa', NULL, NULL);

INSERT INTO ESPACE VALUES (901, 'Intérieur', NULL, 900);


INSERT INTO ESPACE VALUES (902, 'Salon', 50, 901);
INSERT INTO ESPACE VALUES (903, 'Cuisine', 30, 901);
INSERT INTO ESPACE VALUES (904, 'Salle à manger', 20, 901);
INSERT INTO ESPACE VALUES (905, 'Chambre parentale', 25, 901);
INSERT INTO ESPACE VALUES (906, 'Chambre 2', 15, 901);
INSERT INTO ESPACE VALUES (907, 'Chambre 3', 12, 901);
INSERT INTO ESPACE VALUES (908, 'Chambre 4', 12, 901);
INSERT INTO ESPACE VALUES (909, 'Salle de bain 1', 10, 901);
INSERT INTO ESPACE VALUES (910, 'Salle de bain 2', 8, 901);
INSERT INTO ESPACE VALUES (911, 'Extérieur', NULL, 900);
INSERT INTO ESPACE VALUES (912, 'Jardin', 200, 911);
INSERT INTO ESPACE VALUES (913, 'Piscine', 50, 911);
INSERT INTO ESPACE VALUES (914, 'Terrasse', 30, 911);

-- Ajout de l'espace "Appartement" (id = 950)


INSERT INTO ESPACE VALUES (950, 'Appartement', NULL, NULL);

INSERT INTO ESPACE VALUES (951, 'Intérieur', NULL, 950);


INSERT INTO ESPACE VALUES (952, 'Salon', 20, 951);
INSERT INTO ESPACE VALUES (953, 'Chambre', 12, 951);
INSERT INTO ESPACE VALUES (954, 'Salle de bain', 8, 951);
INSERT INTO ESPACE VALUES (955, 'Cuisine', 10, 951);

-- Pas d'espace extérieur pour cet appartement

-- Q1
SELECT Categorie, Type, COUNT(*) AS NbBiens
FROM BIEN
GROUP BY Categorie, Type;

-- Q2
SELECT DISTINCT IdE, Designation
FROM ESPACE
WHERE IdEBien = 950
CONNECT BY PRIOR IdE = IdERattach
START WITH IdERattach IS NULL;

-- Q3
SELECT DISTINCT IdE, Designation
FROM Espace
WHERE IdE IN (
SELECT IdE
FROM Espace
START WITH IdERattach IS NULL AND IdE = (
SELECT IdEBien
FROM BIEN
WHERE IdEBien = 950
)
CONNECT BY PRIOR IdE = IdERattach
) AND SUPERFICIE IS NOT NULL
ORDER BY IdE;

-- Q4
-- a)
SELECT IdP, Nom, Prenom
FROM Proprio
WHERE IdP NOT IN (
SELECT IdP
FROM Bien
WHERE Ville = 'Marseille'
)
ORDER BY Nom;

-- b)
SELECT P.IdP, P.Nom, P.Prenom
FROM Proprio P LEFT JOIN Bien B
ON P.IdP = B.IdP
AND B.Ville = 'Marseille'
WHERE B.IdP IS NULL;

-- Q5
SELECT Ville
FROM Bien
WHERE Categorie = 'Maison de ville'
GROUP BY Ville
HAVING COUNT(*) > 10;

-- Q6

SELECT b.IdEBien, b.Categorie, b.Type, b.Prix - MIN(b2.Prix) AS EcartPrix


FROM Bien b, Bien b2
WHERE b.Categorie = 'Maison de ville' AND b.IdEBien != b2.IdEBien AND b.Prix >
b2.Prix
GROUP BY b.IdEBien, b.Categorie, b.Type, b.Prix;

Vous aimerez peut-être aussi