Entrainement Evaluation
Evaluation : Modélisation
Pour nous entrainer sur les requêtes, vous pouvez télécharger le fichier SQL complet ici :
immobilier.sql
Voici les structures et données enregistrées dans les tables :
Table Agence
Field | Type | Null | Key | Default | Extra |
---|
idAgence | int(6) | NO | PRI | | auto_increment |
nom | varchar(100) | NO | | | |
adresse | varchar(100) | NO | | | |
idAgence | nom | adresse |
---|
257400 | logic-immo | www.logic-immo.com |
383505 | century21 | rue century |
504585 | laforet | rue laforet |
544688 | fnaim | rue fnaim |
608870 | orpi | rue orpi |
654178 | foncia | rue foncia |
654658 | guy-hoquet | rue guy-hoquet |
654893 | seloger | www.seloger.com |
692702 | bouygues immobilier | www.bouygues-immobilier.net |
SQL / BDD Immobilier / Table Agence
CREATE TABLE IF NOT EXISTS agence (
idAgence int(6) NOT NULL AUTO_INCREMENT,
nom varchar(100) NOT NULL,
adresse varchar(100) NOT NULL,
PRIMARY KEY (idAgence)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
INSERT INTO agence (idAgence, nom, adresse) VALUES
(257400, 'logic-immo', 'rue logic'),
(383505, 'century21', 'rue century'),
(504585, 'laforet', 'rue laforet'),
(544688, 'fnaim', 'rue fnaim'),
(608870, 'orpi', 'rue orpi'),
(654178, 'foncia', 'rue foncia'),
(654658, 'guy-hoquet', 'rue guy-hoquet'),
(654893, 'seloger', 'rue seloger'),
(692702, 'bouygues immobilier', 'rue bouygues');
Table Demande
Field | Type | Null | Key | Default | Extra |
---|
idDemande | int(5) | NO | PRI | | auto_increment |
idPersonne | int(3) | NO | MUL | | |
type | varchar(100) | NO | | | |
ville | varchar(100) | NO | | | |
budget | int(7) | NO | | | |
superficie | int(5) | NO | | | |
categorie | varchar(100) | NO | | | |
idDemande | idPersonne | type | ville | budget | superficie | categorie |
---|
1 | 1 | appartement | paris | 530000 | 120 | vente |
2 | 3 | appartement | bordeaux | 120000 | 18 | vente |
3 | 4 | appartement | bordeaux | 145000 | 21 | vente |
4 | 5 | appartement | bordeaux | 152000 | 26 | vente |
5 | 6 | appartement | lyon | 200000 | 55 | vente |
6 | 9 | appartement | paris | 171000 | 40 | vente |
7 | 13 | appartement | paris | 163000 | 25 | vente |
8 | 16 | appartement | paris | 132000 | 15 | vente |
9 | 19 | appartement | paris | 350000 | 80 | vente |
10 | 22 | appartement | lyon | 600 | 20 | location |
11 | 25 | appartement | lyon | 188000 | 65 | vente |
12 | 27 | appartement | paris | 400 | 15 | location |
13 | 28 | appartement | paris | 330500 | 100 | vente |
14 | 31 | appartement | paris | 90000 | 15 | vente |
15 | 32 | appartement | lyon | 123800 | 21 | vente |
16 | 35 | appartement | lyon | 1200 | 70 | vente |
17 | 37 | appartement | lyon | 1500 | 100 | vente |
18 | 43 | appartement | paris | 600 | 20 | location |
19 | 44 | appartement | paris | 750 | 30 | location |
20 | 45 | appartement | bordeaux | 680 | 30 | location |
21 | 46 | appartement | bordeaux | 213000 | 40 | vente |
22 | 47 | appartement | bordeaux | 700 | 45 | location |
23 | 48 | appartement | paris | 195000 | 40 | vente |
24 | 49 | appartement | paris | 250000 | 60 | vente |
25 | 50 | appartement | lyon | 110000 | 12 | vente |
26 | 51 | appartement | lyon | 500 | 17 | location |
27 | 52 | appartement | paris | 800 | 40 | location |
28 | 53 | appartement | paris | 850 | 50 | location |
29 | 54 | appartement | paris | 177000 | 40 | vente |
30 | 55 | appartement | paris | 630 | 20 | location |
SQL / BDD Immobilier / Table Agence
CREATE TABLE IF NOT EXISTS demande (
idDemande int(5) NOT NULL AUTO_INCREMENT,
idPersonne int(3) NOT NULL,
genre varchar(100) NOT NULL,
ville varchar(100) NOT NULL,
budget int(7) NOT NULL,
superficie int(5) NOT NULL,
categorie varchar(100) NOT NULL,
PRIMARY KEY (idDemande),
KEY idPersonne (idPersonne)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO demande (idDemande, idPersonne, genre, ville, budget, superficie, categorie) VALUES
(1, 1, 'appartement', 'paris', 530000, 120, 'vente'),
(2, 3, 'appartement', 'bordeaux', 120000, 18, 'vente'),
(3, 4, 'appartement', 'bordeaux', 145000, 21, 'vente'),
(4, 5, 'appartement', 'bordeaux', 152000, 26, 'vente'),
(5, 6, 'appartement', 'lyon', 200000, 55, 'vente'),
(6, 7, 'appartement', 'paris', 400000, 55, 'vente'),
(7, 9, 'appartement', 'paris', 171000, 40, 'vente'),
(8, 13, 'appartement', 'paris', 163000, 25, 'vente'),
(9, 16, 'appartement', 'paris', 132000, 15, 'vente'),
(10, 19, 'appartement', 'paris', 350000, 80, 'vente'),
(11, 22, 'appartement', 'lyon', 600, 20, 'location'),
(12, 25, 'appartement', 'lyon', 188000, 65, 'vente'),
(13, 27, 'appartement', 'paris', 400, 15, 'location'),
(14, 28, 'appartement', 'paris', 330500, 100, 'vente'),
(15, 31, 'appartement', 'paris', 90000, 15, 'vente'),
(16, 32, 'appartement', 'lyon', 123800, 21, 'vente'),
(17, 35, 'appartement', 'lyon', 1200, 70, 'vente'),
(18, 37, 'appartement', 'lyon', 1500, 100, 'vente'),
(19, 43, 'appartement', 'paris', 600, 20, 'location'),
(20, 44, 'appartement', 'paris', 750, 30, 'location'),
(21, 45, 'appartement', 'bordeaux', 680, 30, 'location'),
(22, 46, 'appartement', 'bordeaux', 213000, 40, 'vente'),
(23, 47, 'appartement', 'bordeaux', 700, 45, 'location'),
(24, 48, 'appartement', 'paris', 195000, 40, 'vente'),
(25, 49, 'appartement', 'paris', 250000, 60, 'vente'),
(26, 50, 'appartement', 'lyon', 110000, 12, 'vente'),
(27, 51, 'appartement', 'lyon', 500, 17, 'location'),
(28, 52, 'appartement', 'paris', 800, 40, 'location'),
(29, 53, 'appartement', 'paris', 850, 50, 'location'),
(30, 54, 'appartement', 'paris', 177000, 40, 'vente'),
(31, 55, 'appartement', 'paris', 630, 20, 'location');
Table Logement
Field | Type | Null | Key | Default | Extra |
---|
idLogement | int(4) | NO | PRI | | auto_increment |
type | varchar(100) | NO | | | |
ville | varchar(100) | NO | | | |
prix | int(7) | NO | | | |
superficie | int(5) | NO | | | |
categorie | varchar(100) | NO | | | |
idLogement | type | ville | prix | superficie | categorie |
---|
5067 | appartement | paris | 185000 | 61 | vente |
5089 | appartement | paris | 115000 | 15 | vente |
5091 | maison | paris | 510000 | 130 | vente |
5122 | appartement | bordeaux | 550 | 17 | location |
5189 | appartement | lyon | 420 | 14 | location |
5245 | appartement | paris | 160000 | 40 | vente |
5246 | appartement | paris | 670 | 35 | location |
5249 | appartement | lyon | 110000 | 16 | vente |
5269 | appartement | bordeaux | 161500 | 33 | vente |
5278 | appartement | paris | 202000 | 90 | vente |
5324 | appartement | lyon | 690 | 31 | location |
5336 | appartement | bordeaux | 129600 | 27 | vente |
5378 | appartement | bordeaux | 121900 | 26 | vente |
5412 | appartement | paris | 680 | 40 | location |
5636 | appartement | paris | 150000 | 37 | vente |
5661 | appartement | bordeaux | 148600 | 36 | vente |
5723 | appartement | bordeaux | 170600 | 45 | vente |
5770 | appartement | paris | 139000 | 38 | vente |
5778 | appartement | bordeaux | 128600 | 43 | vente |
5779 | appartement | paris | 310000 | 105 | vente |
5786 | appartement | paris | 570 | 20 | location |
5860 | appartement | bordeaux | 105000 | 18 | vente |
5869 | appartement | lyon | 183600 | 60 | vente |
5873 | appartement | lyon | 176700 | 65 | vente |
5898 | appartement | paris | 690 | 40 | location |
5961 | appartement | bordeaux | 650 | 45 | location |
5963 | appartement | paris | 220000 | 60 | vente |
SQL / BDD Immobilier / Table Logement
CREATE TABLE IF NOT EXISTS logement (
idLogement int(4) NOT NULL AUTO_INCREMENT,
genre varchar(100) NOT NULL,
ville varchar(100) NOT NULL,
prix int(7) NOT NULL,
superficie int(5) NOT NULL,
categorie varchar(100) NOT NULL,
PRIMARY KEY (idLogement)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO logement (idLogement, genre, ville, prix, superficie, categorie) VALUES
(5067, 'appartement', 'paris', 685000, 61, 'vente'),
(5089, 'appartement', 'paris', 115000, 15, 'vente'),
(5091, 'maison', 'paris', 1510000, 130, 'vente'),
(5122, 'appartement', 'bordeaux', 550, 17, 'location'),
(5189, 'appartement', 'lyon', 420, 14, 'location'),
(5245, 'appartement', 'paris', 360000, 40, 'vente'),
(5246, 'appartement', 'paris', 970, 35, 'location'),
(5249, 'appartement', 'lyon', 110000, 16, 'vente'),
(5269, 'appartement', 'bordeaux', 171500, 33, 'vente'),
(5278, 'appartement', 'paris', 802000, 90, 'vente'),
(5324, 'appartement', 'lyon', 1090, 31, 'location'),
(5336, 'appartement', 'bordeaux', 229600, 27, 'vente'),
(5378, 'appartement', 'bordeaux', 121900, 26, 'vente'),
(5412, 'appartement', 'paris', 1680, 40, 'location'),
(5636, 'appartement', 'paris', 370000, 37, 'vente'),
(5661, 'appartement', 'bordeaux', 248600, 36, 'vente'),
(5723, 'maison', 'bordeaux', 370600, 45, 'vente'),
(5770, 'appartement', 'paris', 339000, 38, 'vente'),
(5778, 'appartement', 'bordeaux', 228600, 43, 'vente'),
(5779, 'appartement', 'paris', 1310000, 105, 'vente'),
(5786, 'appartement', 'paris', 570, 20, 'location'),
(5860, 'appartement', 'bordeaux', 98000, 18, 'vente'),
(5869, 'appartement', 'lyon', 683600, 60, 'vente'),
(5873, 'appartement', 'lyon', 676700, 65, 'vente'),
(5898, 'appartement', 'paris', 1890, 40, 'location'),
(5961, 'appartement', 'bordeaux', 2650, 45, 'location'),
(5963, 'appartement', 'paris', 520000, 60, 'vente'),
(5964, 'appartement', 'paris', 280000, 38, 'vente');
Table logement_agence
Field | Type | Null | Key | Default | Extra |
---|
idLogementAgence | int(5) | NO | PRI | | auto_increment |
idAgence | int(6) | NO | MUL | | |
idLogement | int(4) | NO | MUL | | |
frais | int(7) | NO | | | |
idLogementAgence | idAgence | idLogement | frais |
---|
1 | 257400 | 5067 | 15000 |
2 | 383505 | 5067 | 1000 |
3 | 257400 | 5089 | 8633 |
4 | 692702 | 5089 | 7623 |
5 | 654178 | 5091 | 28621 |
6 | 544688 | 5091 | 34564 |
7 | 654893 | 5122 | 700 |
8 | 608870 | 5189 | 350 |
9 | 257400 | 5245 | 10856 |
10 | 544688 | 5245 | 14230 |
11 | 608870 | 5246 | 800 |
12 | 257400 | 5249 | 16358 |
13 | 608870 | 5249 | 7625 |
14 | 257400 | 5269 | 9500 |
15 | 544688 | 5269 | 11890 |
16 | 544688 | 5278 | 25689 |
17 | 608870 | 5278 | 19653 |
18 | 544688 | 5324 | 600 |
19 | 544688 | 5336 | 9542 |
20 | 608870 | 5336 | 16985 |
21 | 504585 | 5378 | 8652 |
22 | 608870 | 5378 | 15230 |
23 | 257400 | 5412 | 680 |
24 | 544688 | 5636 | 5963 |
25 | 608870 | 5636 | 13654 |
26 | 654893 | 5661 | 9462 |
27 | 654178 | 5661 | 11656 |
28 | 608870 | 5723 | 16233 |
29 | 504585 | 5723 | 19654 |
30 | 692702 | 5770 | 13655 |
31 | 654178 | 5770 | 8903 |
32 | 383505 | 5778 | 6350 |
33 | 654658 | 5778 | 12655 |
34 | 654178 | 5779 | 26754 |
35 | 654658 | 5779 | 45032 |
36 | 654178 | 5786 | 898 |
37 | 383505 | 5786 | 520 |
38 | 257400 | 5860 | 12566 |
39 | 654658 | 5860 | 8905 |
40 | 544688 | 5869 | 23685 |
41 | 654893 | 5869 | 19321 |
42 | 257400 | 5873 | 13504 |
43 | 257400 | 5898 | 900 |
44 | 383505 | 5898 | 250 |
45 | 692702 | 5898 | 1300 |
46 | 257400 | 5961 | 1240 |
47 | 504585 | 5961 | 300 |
48 | 692702 | 5961 | 890 |
49 | 257400 | 5963 | 27542 |
50 | 692702 | 5963 | 42502 |
51 | 383505 | 5963 | 18455 |
SQL / BDD Immobilier / Table logement_agence
CREATE TABLE IF NOT EXISTS logement_agence (
idLogementAgence int(5) NOT NULL AUTO_INCREMENT,
idAgence int(6) NOT NULL,
idLogement int(4) NOT NULL,
frais int(7) NOT NULL,
PRIMARY KEY (idLogementAgence),
KEY idAgence (idAgence),
KEY idLogement (idLogement)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
INSERT INTO logement_agence (idLogementAgence, idAgence, idLogement, frais) VALUES
(1, 257400, 5067, 34250),
(2, 383505, 5067, 30000),
(3, 257400, 5089, 5750),
(4, 692702, 5089, 7623),
(5, 654178, 5091, 75500),
(6, 544688, 5091, 56050),
(7, 654893, 5122, 700),
(8, 608870, 5189, 350),
(9, 257400, 5245, 18856),
(10, 544688, 5245, 14230),
(11, 608870, 5246, 800),
(12, 257400, 5249, 5500),
(13, 608870, 5249, 7625),
(14, 257400, 5269, 9500),
(15, 544688, 5269, 8575),
(16, 544688, 5278, 25689),
(17, 608870, 5278, 40100),
(18, 544688, 5324, 600),
(19, 544688, 5336, 9542),
(20, 608870, 5336, 11480),
(21, 504585, 5378, 8652),
(22, 608870, 5378, 6095),
(23, 257400, 5412, 680),
(24, 544688, 5636, 18500),
(25, 608870, 5636, 13654),
(26, 654893, 5661, 9462),
(27, 654178, 5661, 11656),
(28, 608870, 5723, 16233),
(29, 504585, 5723, 19654),
(30, 692702, 5770, 13655),
(31, 654178, 5770, 16950),
(32, 383505, 5778, 11430),
(33, 654658, 5778, 12655),
(34, 654178, 5779, 65500),
(35, 654658, 5779, 45032),
(36, 654178, 5786, 898),
(37, 383505, 5786, 520),
(38, 257400, 5860, 4900),
(39, 654658, 5860, 8905),
(40, 544688, 5869, 23685),
(41, 654893, 5869, 34180),
(42, 257400, 5873, 33835),
(43, 257400, 5898, 900),
(44, 383505, 5898, 250),
(45, 692702, 5898, 1300),
(46, 257400, 5961, 1240),
(47, 504585, 5961, 300),
(48, 692702, 5961, 890),
(49, 257400, 5963, 27542),
(50, 692702, 5963, 26000),
(51, 383505, 5963, 18455);
Table logement_personne
Field | Type | Null | Key | Default | Extra |
---|
idLogementPersonne | int(5) | NO | PRI | | auto_increment |
idPersonne | int(3) | NO | MUL | | |
idLogement | int(4) | NO | UNI | | |
idLogementPersonne | idPersonne | idLogement |
---|
1 | 40 | 5067 |
2 | 41 | 5089 |
3 | 42 | 5091 |
4 | 2 | 5122 |
5 | 39 | 5189 |
6 | 7 | 5245 |
7 | 8 | 5246 |
8 | 10 | 5249 |
9 | 18 | 5269 |
10 | 21 | 5278 |
11 | 17 | 5324 |
12 | 36 | 5336 |
13 | 20 | 5378 |
14 | 29 | 5412 |
15 | 24 | 5636 |
16 | 34 | 5661 |
17 | 14 | 5723 |
18 | 57 | 5770 |
19 | 26 | 5778 |
20 | 56 | 5779 |
21 | 12 | 5786 |
22 | 11 | 5860 |
23 | 23 | 5869 |
24 | 38 | 5873 |
25 | 33 | 5898 |
26 | 15 | 5961 |
27 | 30 | 5963 |
SQL / BDD Immobilier / Table logement_personne
CREATE TABLE IF NOT EXISTS logement_personne (
idLogementPersonne int(5) NOT NULL AUTO_INCREMENT,
idPersonne int(3) NOT NULL,
idLogement int(4) NOT NULL,
PRIMARY KEY (idLogementPersonne),
UNIQUE KEY idLogement (idLogement),
KEY idPersonne (idPersonne)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
INSERT INTO logement_personne (idLogementPersonne, idPersonne, idLogement) VALUES
(1, 40, 5067),
(2, 41, 5089),
(3, 42, 5091),
(4, 2, 5122),
(5, 39, 5189),
(6, 7, 5245),
(7, 8, 5246),
(8, 10, 5249),
(9, 18, 5269),
(10, 21, 5278),
(11, 17, 5324),
(12, 36, 5336),
(13, 20, 5378),
(14, 29, 5412),
(15, 24, 5636),
(16, 34, 5661),
(17, 14, 5723),
(18, 57, 5770),
(19, 26, 5778),
(20, 56, 5779),
(21, 12, 5786),
(22, 11, 5860),
(23, 23, 5869),
(24, 38, 5873),
(25, 33, 5898),
(26, 15, 5961),
(27, 30, 5963),
(28, 56, 5964);
Table Personne
Field | Type | Null | Key | Default | Extra |
---|
idPersonne | int(3) | NO | PRI | | auto_increment |
prenom | varchar(100) | NO | | | |
idPersonne | prenom |
---|
1 | william |
2 | gaetan |
3 | mehdi |
4 | charles |
5 | brigitte |
6 | sarah |
7 | lucas |
8 | quentin |
9 | patrick |
10 | emmanuel |
11 | elodie |
12 | agathe |
13 | valentine |
14 | charlotte |
15 | alice |
16 | samuel |
17 | mathieu |
18 | noemie |
19 | simon |
20 | florian |
21 | clement |
22 | yvon |
23 | lea |
24 | chloe |
25 | camille |
26 | alexandre |
27 | julie |
28 | leo |
29 | antoine |
30 | lola |
31 | celia |
32 | anna |
33 | caroline |
34 | adele |
35 | sabrina |
36 | nathalie |
37 | franck |
38 | tom |
39 | johan |
40 | priscillia |
41 | assia |
42 | nathan |
43 | aurore |
44 | marie |
45 | oceane |
46 | enzo |
47 | ines |
48 | hugo |
49 | jonathan |
50 | axelle |
51 | morgane |
52 | melissa |
53 | kevin |
54 | ophelie |
55 | victoria |
56 | alexis |
57 | robin |
SQL / BDD Immobilier / Table Personne
CREATE TABLE IF NOT EXISTS personne (
idPersonne int(3) NOT NULL AUTO_INCREMENT,
prenom varchar(100) NOT NULL,
PRIMARY KEY (idPersonne)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
INSERT INTO personne (idPersonne, prenom) VALUES
(1, 'william'),
(2, 'gaetan'),
(3, 'mehdi'),
(4, 'charles'),
(5, 'brigitte'),
(6, 'sarah'),
(7, 'lucas'),
(8, 'quentin'),
(9, 'patrick'),
(10, 'emmanuel'),
(11, 'elodie'),
(12, 'agathe'),
(13, 'valentine'),
(14, 'charlotte'),
(15, 'alice'),
(16, 'samuel'),
(17, 'mathieu'),
(18, 'noemie'),
(19, 'simon'),
(20, 'florian'),
(21, 'clement'),
(22, 'yvon'),
(23, 'lea'),
(24, 'chloe'),
(25, 'camille'),
(26, 'alexandre'),
(27, 'julie'),
(28, 'leo'),
(29, 'antoine'),
(30, 'lola'),
(31, 'celia'),
(32, 'anna'),
(33, 'caroline'),
(34, 'adele'),
(35, 'sabrina'),
(36, 'nathalie'),
(37, 'franck'),
(38, 'tom'),
(39, 'johan'),
(40, 'priscillia'),
(41, 'assia'),
(42, 'nathan'),
(43, 'aurore'),
(44, 'marie'),
(45, 'oceane'),
(46, 'enzo'),
(47, 'ines'),
(48, 'hugo'),
(49, 'jonathan'),
(50, 'axelle'),
(51, 'morgane'),
(52, 'melissa'),
(53, 'kevin'),
(54, 'ophelie'),
(55, 'victoria'),
(56, 'alexis'),
(57, 'robin');
Clés étrangères
SQL / BDD Immobilier / Foreign Key
ALTER TABLE demande
ADD CONSTRAINT demande_ibfk_1 FOREIGN KEY (idPersonne) REFERENCES personne (idPersonne);
ALTER TABLE logement_agence
ADD CONSTRAINT logement_agence_ibfk_2 FOREIGN KEY (idLogement) REFERENCES logement (idLogement),
ADD CONSTRAINT logement_agence_ibfk_1 FOREIGN KEY (idAgence) REFERENCES agence (idAgence);
ALTER TABLE logement_personne
ADD CONSTRAINT logement_personne_ibfk_2 FOREIGN KEY (idPersonne) REFERENCES personne (idPersonne),
ADD CONSTRAINT logement_personne_ibfk_1 FOREIGN KEY (idLogement) REFERENCES logement (idLogement);
Evaluation : Questions/Réponses - Les requêtes
Dans le cadre de cette évaluation, La question et la réponse (résultat) sont données, il vous suffit de trouver la requête qui mène de la question à la réponse.
Question 1 : Affichez le nom des agences
SQL / BDD Immobilier / Requete n°1
SELECT nom FROM agence;
résultat 1 :
nom |
---|
logic-immo |
century21 |
laforet |
fnaim |
orpi |
foncia |
guy-hoquet |
seloger |
bouygues immobilier |
Question 2 : Affichez le numéro de l’agence « Orpi »
SQL / BDD Immobilier / Requete n°2
SELECT idAgence FROM agence WHERE nom='orpi';
résultat 2 :
Question 3 : Affichez le premier enregistrement de la table logement
SQL / BDD Immobilier / Requete n°3
SELECT * FROM logement LIMIT 0,1;
résultat 3 :
idLogement | genre | ville | prix | superficie | categorie |
---|
5067 | appartement | paris | 685000 | 61 | vente |
Question 4 : Affichez le nombre de logements (Alias : Nombre_de_logements)
SQL / BDD Immobilier / Requete n°4
SELECT COUNT(*) AS 'nombre de logements' FROM logement;
résultat 4 :
Question 5 : Affichez les logements à vendre à moins de 150 000 € dans l’ordre croissant des prix:
SQL / BDD Immobilier / Requete n°5
SELECT * FROM logement WHERE prix < 150000 AND categorie = 'vente' ORDER BY prix;
résultat 5 :
idLogement | genre | ville | prix | superficie | categorie |
---|
5860 | appartement | bordeaux | 98000 | 18 | vente |
5249 | appartement | lyon | 110000 | 16 | vente |
5089 | appartement | paris | 115000 | 15 | vente |
5378 | appartement | bordeaux | 121900 | 26 | vente |
Question 6 : Affichez le nombre de logements à la location (alias : nombre)
SQL / BDD Immobilier / Requete n°6
SELECT COUNT(idLogement) as 'nombre' FROM logement WHERE categorie = 'location';
résultat 6 :
Question 7 : Affichez les villes différentes recherchées par les personnes demandeuses d'un logement
SQL / BDD Immobilier / Requete n°7
SELECT DISTINCT ville FROM demande;
résultat 7 :
Question 8 : Affichez le nombre de biens à vendre par ville
SQL / BDD Immobilier / Requete n°8
SELECT ville, COUNT(ville) as 'nombre' FROM demande WHERE categorie='vente' GROUP BY ville;
résultat 8 :
ville | nombre |
---|
bordeaux | 4 |
lyon | 5 |
paris | 11 |
Question 9 : Quelles sont les id des logements destinés à la location ?
SQL / BDD Immobilier / Requete n°9
SELECT idLogement FROM logement WHERE categorie = 'location';
résultat 9 :
idLogement |
---|
5122 |
5189 |
5246 |
5324 |
5412 |
5786 |
5898 |
5961 |
Question 10 : Quels sont les id des logements entre 20 et 30m² ?
SQL / BDD Immobilier / Requete n°10
SELECT idLogement FROM logement WHERE superficie BETWEEN 20 AND 30;
résultat 10 :
Question 11 : Quel est le prix vendeur (hors commission) du logement le moins cher à vendre ? (Alias : prix minimum)
SQL / BDD Immobilier / Requete n°11
SELECT MIN(prix) AS 'prix minimum' FROM logement WHERE categorie = 'vente';
résultat 11 :
Question 12 : Dans quelle ville se trouve les maisons à vendre ?
SQL / BDD Immobilier / Requete n°12
SELECT genre, ville FROM logement WHERE genre = 'maison';
résultat 12 :
genre | ville |
---|
maison | paris |
maison | bordeaux |
Question 13 : L’agence Orpi souhaite diminuer les frais qu’elle applique sur le logement ayant l'id « 5246 ». Passer les frais de ce logement de 800 à 730€
SQL / BDD Immobilier / Requete n°13
UPDATE logement_agence SET frais='730' WHERE idLogement = 5246 and idAgence = (SELECT idAgence FROM agence WHERE nom='orpi');
résultat 13 :
Query OK, 1 row affected
Question 14 : Quels sont les logements gérés par l’agence « laforet »
SQL / BDD Immobilier / Requete n°14
SELECT idLogement FROM logement_agence WHERE idAgence = (SELECT idAgence FROM agence WHERE nom = 'laforet');
résultat 14 :
Question 15 : Affichez le nombre de propriétaires dans la ville de Paris (Alias : Nombre)
SQL / BDD Immobilier / Requete n°15
SELECT COUNT(DISTINCT(lp.idPersonne)) AS 'nombre' FROM logement_personne lp, logement l WHERE lp.idLogement = l.idLogement AND l.ville = 'paris';
résultat 15 :
Question 16 : Affichez les informations des trois premieres personnes souhaitant acheter un logement
SQL / BDD Immobilier / Requete n°16
SELECT p.*, d.* FROM personne p, demande d WHERE p.idPersonne = d.idPersonne AND d.categorie = 'vente' LIMIT 0,3;
résultat 16 :
idPersonne | prenom | idDemande | idPersonne | genre | ville | budget | superficie | categorie |
---|
1 | william | 1 | 1 | appartement | paris | 530000 | 120 | vente |
3 | mehdi | 2 | 3 | appartement | bordeaux | 120000 | 18 | vente |
4 | charles | 3 | 4 | appartement | bordeaux | 145000 | 21 | vente |
Question 17 : Affichez le prénom du vendeur pour le logement ayant la référence « 5770 »
SQL / BDD Immobilier / Requete n°17
SELECT p.prenom FROM personne p, logement_personne lp WHERE p.idPersonne = lp.idPersonne and lp.idLogement = 5770;
résultat 17 :
Question 18 : Affichez les prénoms des personnes souhaitant accéder à un logement sur la ville de Lyon
SQL / BDD Immobilier / Requete n°18
SELECT p.prenom FROM personne p, demande d where p.idPersonne = d.idPersonne AND d.ville = 'lyon';
résultat 18 :
prenom |
---|
sarah |
yvon |
camille |
anna |
sabrina |
franck |
axelle |
morgane |
Question 19 : Affichez les prénoms des personnes souhaitant accéder à un logement en location sur la ville de Paris
SQL / BDD Immobilier / Requete n°19
SELECT p.prenom FROM personne p, demande d where p.idPersonne = d.idPersonne AND d.ville = 'paris' AND d.categorie = 'location';
résultat 19 :
prenom |
---|
julie |
aurore |
marie |
melissa |
kevin |
victoria |
Question 20 : Affichez les prénoms des personnes souhaitant acheter un logement de la plus grande à la plus petite superficie
SQL / BDD Immobilier / Requete n°20
SELECT p.prenom, d.superficie FROM personne p, demande d WHERE p.idPersonne = d.idPersonne AND d.categorie='vente' ORDER BY d.superficie DESC;
résultat 20 :
prenom | superficie |
---|
william | 120 |
leo | 100 |
simon | 80 |
sabrina | 70 |
camille | 65 |
jonathan | 60 |
lucas | 55 |
sarah | 55 |
hugo | 40 |
enzo | 40 |
ophelie | 40 |
patrick | 40 |
brigitte | 26 |
valentine | 25 |
charles | 21 |
anna | 21 |
mehdi | 18 |
samuel | 15 |
celia | 15 |
axelle | 12 |
Question 21 : Quel sont les prix finaux proposés par les agences pour la maison à la vente ayant la référence « 5091 » ? (Alias : prix frais d'agence inclus)
SQL / BDD Immobilier / Requete n°21
SELECT (l.prix+la.frais) AS 'prix frais d\'agence inclu' FROM logement l, logement_agence la WHERE l.idLogement = la.idLogement and l.idLogement = 5091;
résultat 21 :
prix frais d'agence inclus |
---|
1585500 |
1566050 |
Question 22 : Indiquez les frais ajoutés par l’agence immobilière pour le logement ayant la référence « 5873 » ?
SQL / BDD Immobilier / Requete n°22
SELECT l.idLogement, l.prix, la.frais, (l.prix+la.frais) as 'prix total' FROM logement l, logement_agence la WHERE la.idLogement = 5873 AND la.idLogement=l.idLogement;
résultat 22 :
idLogement | prix | frais | prix total |
---|
5873 | 676700 | 33835 | 710535 |
Question 23 : Si l’ensemble des logements étaient vendus ou loués demain, quel serait le bénéfice généré grâce aux frais d’agence et pour chaque agence (Alias : benefice, classement : par ordre croissant des gains)
SQL / BDD Immobilier / Requete n°23
SELECT a.nom, SUM(la.frais) AS benefice FROM agence a, logement_agence la WHERE a.idAgence = la.idAgence GROUP BY la.idAgence ORDER BY benefice;
résultat 23 :
nom | benefice |
---|
laforet | 28606 |
seloger | 44342 |
bouygues immobilier | 49468 |
century21 | 60655 |
guy-hoquet | 66592 |
orpi | 96337 |
logic-immo | 142953 |
fnaim | 156871 |
foncia | 170504 |
Question 24 : Affichez les id des biens en location, les prix, suivis des frais d’agence (classement : dans l’ordre croissant des prix) :
SQL / BDD Immobilier / Requete n°24
SELECT a.nom, l.idLogement, la.frais FROM logement_agence la, logement l, agence a WHERE la.idLogement = l.idLogement AND l.categorie='location' AND la.idAgence=a.idAgence ORDER BY l.prix;
résultat 24 :
nom | idLogement | frais |
---|
orpi | 5189 | 350 |
seloger | 5122 | 700 |
foncia | 5786 | 898 |
century21 | 5786 | 520 |
orpi | 5246 | 800 |
fnaim | 5324 | 600 |
logic-immo | 5412 | 680 |
century21 | 5898 | 250 |
bouygues immobilier | 5898 | 1300 |
logic-immo | 5898 | 900 |
logic-immo | 5961 | 1240 |
laforet | 5961 | 300 |
bouygues immobilier | 5961 | 890 |
Question 25 : Quel est le prénom du propriétaire proposant le logement le moins cher à louer ?
SQL / BDD Immobilier / Requete n°25
SELECT prenom FROM personne WHERE idPersonne IN (SELECT idPersonne FROM logement_personne WHERE idLogement IN (SELECT idLogement FROM logement where categorie='location' AND prix = (SELECT MIN(prix) FROM logement WHERE categorie='location')));
résultat 25 :
Question 26 : Affichez le prénom et la ville où se trouve le logement de chaque propriétaire
SQL / BDD Immobilier / Requete n°26
SELECT p.prenom, l.ville FROM personne p, logement l, logement_personne lp WHERE p.idPersonne = lp.idPersonne AND l.idLogement = lp.idLogement;
résultat 26 :
prenom | ville |
---|
priscillia | paris |
assia | paris |
nathan | paris |
gaetan | bordeaux |
johan | lyon |
lucas | paris |
quentin | paris |
emmanuel | lyon |
noemie | bordeaux |
clement | paris |
mathieu | lyon |
nathalie | bordeaux |
florian | bordeaux |
antoine | paris |
chloe | paris |
adele | bordeaux |
charlotte | bordeaux |
robin | paris |
alexandre | bordeaux |
alexis | paris |
agathe | paris |
elodie | bordeaux |
lea | lyon |
tom | lyon |
caroline | paris |
alice | bordeaux |
lola | paris |
alexis | paris |
Question 27 : Quel est l’agence immobilière s’occupant de la plus grande gestion de logements répertoriés à Paris ? (alias : nombre, classement : trié par ordre décroissant)
SQL / BDD Immobilier / Requete n°27
SELECT a.nom, COUNT(l.ville) as 'nombre' FROM agence a, logement_agence la, logement l WHERE la.idAgence = a.idAgence and la.idLogement=l.idLogement and l.ville = 'paris' GROUP BY a.nom ORDER BY nombre DESC;
résultat 27 :
nom | nombre |
---|
logic-immo | 6 |
foncia | 4 |
fnaim | 4 |
century21 | 4 |
bouygues immobilier | 4 |
orpi | 3 |
guy-hoquet | 1 |
Question 28 : Affichez le prix et le prénom des vendeurs dont les logements sont proposés à 130000 € ou moins en prix final avec frais appliqués par les agences (alias : prix final, classement : ordre croissant des prix finaux) :
SQL / BDD Immobilier / Requete n°28
SELECT p.prenom, (l.prix+la.frais) as 'prix final'
FROM personne p, logement l, logement_agence la, logement_personne lp
WHERE (l.prix+la.frais) <= 130000
AND p.idPersonne=lp.idPersonne
AND l.idLogement=la.idLogement
AND l.categorie='vente'
AND lp.idLogement=l.idLogement
AND lp.idLogement=la.idLogement
ORDER BY (l.prix+la.frais);
résultat 28 :
prenom | prix final |
---|
elodie | 102900 |
elodie | 106905 |
emmanuel | 115500 |
emmanuel | 117625 |
assia | 120750 |
assia | 122623 |
florian | 127995 |
Question 29 : Affichez le nombre de logements à la vente dans la ville de recherche de « hugo » (alias : nombre)
SQL / BDD Immobilier / Requete n°29
SELECT COUNT(l.idLogement) as 'nombre'
FROM personne p, demande d, logement l
WHERE p.idPersonne = d.idPersonne
AND d.ville = l.ville
AND p.prenom='hugo'
AND l.categorie='vente';
résultat 29 :
Question 30 : Affichez le nombre de logements à la vente dans la ville de recherche de « hugo » et dans la superficie minimum qu’il attend ou dans une superficie supérieure (alias : nombre):
SQL / BDD Immobilier / Requete n°30
SELECT COUNT(l.idLogement) as 'nombre'
FROM personne p, demande d, logement l
WHERE p.idPersonne = d.idPersonne
AND d.ville = l.ville
AND d.superficie <= l.superficie
AND p.prenom='hugo'
AND l.categorie='vente';
résultat 30 :
Question 31 : Affichez le nombre d’opportunités d’achats dans la ville de recherche de « hugo » dans la superficie minimum qu’il attend ou dans une superficie supérieure et en prenant en compte tous ses autres critères de sélection (alias : nombre):
SQL / BDD Immobilier / Requete n°31
SELECT COUNT(l.idLogement) as 'nombre'
FROM personne p, demande d, logement l, logement_agence la, agence a
WHERE d.genre = l.genre
AND d.ville = l.ville
AND d.budget >= (l.prix+la.frais)
AND d.superficie <= l.superficie
AND la.idLogement = l.idLogement
AND p.idPersonne = d.idPersonne
AND l.categorie='vente'
AND a.idAgence = la.idAgence
AND p.prenom='hugo';
résultat 31 :
Question 32 : Affichez les prénoms des personnes souhaitant accéder à un logement en location sur la ville de Paris
SQL / BDD Immobilier / Requete n°32
SELECT p.prenom, d.genre AS 'genre recherche', d.ville AS 'ville recherche', d.budget AS 'budget max', d.superficie AS 'superficie min', d.categorie AS 'categorie recherche', l.idLogement, a.nom AS 'agence', l.genre AS 'genre propose', l.ville AS 'ville propose', (l.prix+la.frais) AS 'prix final', l.superficie AS 'superficie propose', l.categorie AS 'categorie propose'
FROM demande d, logement l, logement_agence la, personne p, agence a
WHERE d.genre = l.genre
AND d.ville = l.ville
AND d.budget >= (l.prix+la.frais)
AND d.superficie <= l.superficie
AND la.idLogement = l.idLogement
AND p.idPersonne = d.idPersonne
AND l.categorie='vente'
AND a.idAgence = la.idAgence
AND p.prenom='hugo';
résultat 32 :
prenom | genre recherche | ville recherche | budget max | superficie min | categorie recherche | idLogement | agence | genre propose | ville propose | prix final | superficie propose | categorie propose |
---|
hugo | appartement | paris | 495000 | 40 | vente | 5245 | logic-immo | appartement | paris | 378856 | 40 | vente |
hugo | appartement | paris | 495000 | 40 | vente | 5245 | fnaim | appartement | paris | 374230 | 40 | vente |
Question 33 : En prenant en compte le « fichier client » avec leurs critères de sélection répertoriés sur la table « demande », quelle est l’agence immobilière susceptible de faire le plus de ventes ? (alias : nombre)
SQL / BDD Immobilier / Requete n°33
SELECT a.nom as 'agence', COUNT(a.nom) as 'nombre'
FROM demande d, logement l, logement_agence la, personne p, agence a
WHERE d.genre = l.genre
AND d.ville = l.ville
AND d.budget >= (l.prix+la.frais)
AND d.superficie <= l.superficie
AND la.idLogement = l.idLogement
AND p.idPersonne = d.idPersonne
AND l.categorie='vente'
AND a.idAgence = la.idAgence
GROUP BY a.nom
ORDER BY nombre DESC;
résultat 33 :
agence | nombre |
---|
logic-immo | 6 |
bouygues immobilier | 4 |
century21 | 3 |
orpi | 2 |
guy-hoquet | 2 |
fnaim | 2 |
laforet | 2 |
Question 34 : Affichez les prénoms des personnes cherchant un logement ainsi que les noms des agences (s’occupant de la gestion des logements) pour une mise en relation dans le cadre d'une susceptible location immobilière (tout en affichant les informations qui permettront de mettre en évidence une première année d'éventuels contrats, voir résultat).
SQL / BDD Immobilier / Requete n°34
SELECT p.prenom, d.genre as 'genre recherche', d.ville as 'ville recherche', (d.budget*12) as 'budget premiere annee', d.superficie as 'superficie min', d.categorie as 'categorie recherche', a.nom as 'agence', l.idLogement, l.genre as 'genre propose', l.ville as 'ville propose', (l.prix*12)+la.frais as 'prix premiere annee', l.superficie as 'superficie propose', l.categorie as 'categorie propose'
FROM demande d, logement l, logement_agence la, personne p, agence a
WHERE d.genre = l.genre
AND d.ville = l.ville
AND (d.budget*12) >= (l.prix*12)+la.frais
AND d.superficie <= l.superficie
AND la.idLogement = l.idLogement
AND p.idPersonne = d.idPersonne
AND l.categorie='location'
AND d.categorie='location'
AND a.idAgence = la.idAgence;
résultat 34 :
prenom | genre recherche | ville recherche | budget premiere annee | superficie min | categorie recherche | agence | idLogement | genre propose | ville propose | prix premiere annee | superficie propose | categorie propose |
---|
victoria | appartement | paris | 7560 | 20 | location | century21 | 5786 | appartement | paris | 7360 | 20 | location |
Question 35 : Affichez les prénoms des acheteurs potentiels, les prénoms des vendeurs ainsi que les agences s’occupant de la gestion de leurs logements pour une mise en relation dans le cadre d'une susceptible vente immobilière (tout en affichant les informations qui permettront de mettre en évidence cette éventuelle transaction, voir résultat).
SQL / BDD Immobilier / Requete n°35
SELECT p.prenom as 'acheteur', d.genre as 'genre recherche', d.ville as 'ville recherche', d.budget as 'budget max', d.superficie as 'superficie min', d.categorie as 'categorie recherche', a.nom as 'agence', p2.prenom as 'vendeur', l.genre as 'genre propose', l.ville as 'ville propose', (l.prix+la.frais) as 'prix final', l.superficie as 'superficie propose', l.categorie as 'categorie propose'
FROM demande d, logement l, logement_agence la, personne p, personne p2, agence a, logement_personne lp
WHERE d.genre = l.genre
AND l.idLogement = lp.idLogement
AND lp.idPersonne = p2.idPersonne
AND d.ville = l.ville
AND d.budget >= (l.prix+la.frais)
AND d.superficie <= l.superficie
AND la.idLogement = l.idLogement
AND p.idPersonne = d.idPersonne
AND l.categorie=d.categorie
AND a.idAgence = la.idAgence
AND a.idAgence = la.idAgence ;
résultat 35 :
acheteur | genre recherche | ville recherche | budget max | superficie min | categorie recherche | agence | vendeur | genre propose | ville propose | prix final | superficie propose | categorie propose |
---|
mehdi | appartement | bordeaux | 120000 | 18 | vente | logic-immo | elodie | appartement | bordeaux | 102900 | 18 | vente |
mehdi | appartement | bordeaux | 120000 | 18 | vente | guy-hoquet | elodie | appartement | bordeaux | 106905 | 18 | vente |
charles | appartement | bordeaux | 145000 | 21 | vente | laforet | florian | appartement | bordeaux | 130552 | 26 | vente |
charles | appartement | bordeaux | 145000 | 21 | vente | orpi | florian | appartement | bordeaux | 127995 | 26 | vente |
brigitte | appartement | bordeaux | 172000 | 26 | vente | laforet | florian | appartement | bordeaux | 130552 | 26 | vente |
brigitte | appartement | bordeaux | 172000 | 26 | vente | orpi | florian | appartement | bordeaux | 127995 | 26 | vente |
lucas | appartement | paris | 600000 | 55 | vente | logic-immo | lola | appartement | paris | 547542 | 60 | vente |
lucas | appartement | paris | 600000 | 55 | vente | century21 | lola | appartement | paris | 538455 | 60 | vente |
lucas | appartement | paris | 600000 | 55 | vente | bouygues immobilier | lola | appartement | paris | 546000 | 60 | vente |
samuel | appartement | paris | 162000 | 15 | vente | logic-immo | assia | appartement | paris | 120750 | 15 | vente |
samuel | appartement | paris | 162000 | 15 | vente | bouygues immobilier | assia | appartement | paris | 122623 | 15 | vente |
celia | appartement | paris | 145000 | 15 | vente | logic-immo | assia | appartement | paris | 120750 | 15 | vente |
celia | appartement | paris | 145000 | 15 | vente | bouygues immobilier | assia | appartement | paris | 122623 | 15 | vente |
enzo | appartement | bordeaux | 413000 | 40 | vente | century21 | alexandre | appartement | bordeaux | 240030 | 43 | vente |
enzo | appartement | bordeaux | 413000 | 40 | vente | guy-hoquet | alexandre | appartement | bordeaux | 241255 | 43 | vente |
hugo | appartement | paris | 495000 | 40 | vente | logic-immo | lucas | appartement | paris | 378856 | 40 | vente |
hugo | appartement | paris | 495000 | 40 | vente | fnaim | lucas | appartement | paris | 374230 | 40 | vente |
jonathan | appartement | paris | 650000 | 60 | vente | logic-immo | lola | appartement | paris | 547542 | 60 | vente |
jonathan | appartement | paris | 650000 | 60 | vente | century21 | lola | appartement | paris | 538455 | 60 | vente |
jonathan | appartement | paris | 650000 | 60 | vente | bouygues immobilier | lola | appartement | paris | 546000 | 60 | vente |
ophelie | appartement | paris | 377500 | 40 | vente | fnaim | lucas | appartement | paris | 374230 | 40 | vente |
Question 36 : Supprimer la personne n°idPersonne 13 (Valentine).
SQL / BDD Immobilier / Requete n°36
DELETE FROM personne WHERE idPersonne = 13 ;
résultat 36 :
Query OK
Question 37 : Afficher toutes les demandes enregistrées avec la personne à l'origine de la demande (Afficher également les demandes d'anciennes personnes n'existant plus dans notre base de données).
SQL / BDD Immobilier / Requete n°37
SELECT p.prenom, d.superficie, d.genre, d.ville, d.budget, d.categorie FROM personne p LEFT JOIN demande d ON p.idPersonne = d.idPersonne ;
résultat 37 :
prenom | superficie | genre | ville | budget | categorie |
---|
william | 120 | appartement | paris | 530000 | vente |
gaetan | | | | | |
mehdi | 18 | appartement | bordeaux | 120000 | vente |
charles | 21 | appartement | bordeaux | 145000 | vente |
brigitte | 26 | appartement | bordeaux | 172000 | vente |
sarah | 55 | appartement | lyon | 450000 | vente |
lucas | 55 | appartement | paris | 600000 | vente |
quentin | | | | | |
patrick | 40 | appartement | paris | 371000 | vente |
emmanuel | | | | | |
elodie | | | | | |
agathe | | | | | |
valentine | 25 | appartement | paris | 253000 | vente |
charlotte | | | | | |
alice | | | | | |
samuel | 15 | appartement | paris | 162000 | vente |
mathieu | | | | | |
noemie | | | | | |
simon | 80 | appartement | paris | 720000 | vente |
florian | | | | | |
clement | | | | | |
yvon | 20 | appartement | lyon | 680 | location |
lea | | | | | |
chloe | | | | | |
camille | 65 | appartement | lyon | 558000 | vente |
alexandre | | | | | |
julie | 15 | appartement | paris | 490 | location |
leo | 100 | appartement | paris | 1100000 | vente |
antoine | | | | | |
lola | | | | | |
celia | 15 | appartement | paris | 145000 | vente |
anna | 21 | appartement | lyon | 123800 | vente |
caroline | | | | | |
adele | | | | | |
sabrina | 70 | appartement | lyon | 690000 | vente |
nathalie | | | | | |
franck | 100 | appartement | lyon | 1500 | location |
tom | | | | | |
johan | | | | | |
priscillia | | | | | |
assia | | | | | |
nathan | | | | | |
aurore | 20 | appartement | paris | 600 | location |
marie | 30 | appartement | paris | 750 | location |
oceane | 30 | appartement | bordeaux | 680 | location |
enzo | 40 | appartement | bordeaux | 413000 | vente |
ines | 45 | appartement | bordeaux | 700 | location |
hugo | 40 | appartement | paris | 495000 | vente |
jonathan | 60 | appartement | paris | 650000 | vente |
axelle | 12 | appartement | lyon | 110000 | vente |
morgane | 17 | appartement | lyon | 500 | location |
melissa | 40 | appartement | paris | 800 | location |
kevin | 50 | appartement | paris | 850 | location |
ophelie | 40 | appartement | paris | 377500 | vente |
victoria | 20 | appartement | paris | 630 | location |
alexis | | | | | |
robin | | | | | |
Question 38 : Afficher toutes les personnes enregistrées avec leur demandes correspondantes (Afficher également les personnes n'ayant pas formulé de demandes).
SQL / BDD Immobilier / Requete n°36
SELECT p.prenom, d.superficie, d.genre, d.ville, d.budget, d.categorie FROM demande d LEFT JOIN personne p ON p.idPersonne = d.idPersonne ;
résultat 38 :
prenom | superficie | genre | ville | budget | categorie |
---|
william | 120 | appartement | paris | 530000 | vente |
mehdi | 18 | appartement | bordeaux | 120000 | vente |
charles | 21 | appartement | bordeaux | 145000 | vente |
brigitte | 26 | appartement | bordeaux | 172000 | vente |
sarah | 55 | appartement | lyon | 450000 | vente |
lucas | 55 | appartement | paris | 600000 | vente |
patrick | 40 | appartement | paris | 371000 | vente |
| 25 | appartement | paris | 253000 | vente |
samuel | 15 | appartement | paris | 162000 | vente |
simon | 80 | appartement | paris | 720000 | vente |
yvon | 20 | appartement | lyon | 680 | location |
camille | 65 | appartement | lyon | 558000 | vente |
julie | 15 | appartement | paris | 490 | location |
leo | 100 | appartement | paris | 1100000 | vente |
celia | 15 | appartement | paris | 145000 | vente |
anna | 21 | appartement | lyon | 123800 | vente |
sabrina | 70 | appartement | lyon | 690000 | vente |
franck | 100 | appartement | lyon | 1500 | location |
aurore | 20 | appartement | paris | 600 | location |
marie | 30 | appartement | paris | 750 | location |
oceane | 30 | appartement | bordeaux | 680 | location |
enzo | 40 | appartement | bordeaux | 413000 | vente |
ines | 45 | appartement | bordeaux | 700 | location |
hugo | 40 | appartement | paris | 495000 | vente |
jonathan | 60 | appartement | paris | 650000 | vente |
axelle | 12 | appartement | lyon | 110000 | vente |
morgane | 17 | appartement | lyon | 500 | location |
melissa | 40 | appartement | paris | 800 | location |
kevin | 50 | appartement | paris | 850 | location |
ophelie | 40 | appartement | paris | 377500 | vente |
victoria | 20 | appartement | paris | 630 | location |
Question 39 : Affichez toutes les personnes enregistrées avec leur demandes correspondantes (Afficher également les personnes n'ayant pas formulé de demandes ainsi que les demandes d'anciennes personnes n'existant plus dans notre base de données).
SQL / BDD Immobilier / Requete n°39
SELECT p.prenom, d.superficie, d.genre, d.ville, d.budget, d.categorie FROM demande d LEFT JOIN personne p ON p.idPersonne = d.idPersonne
UNION DISTINCT
SELECT p.prenom, d.superficie, d.genre, d.ville, d.budget, d.categorie FROM personne p LEFT JOIN demande d ON p.idPersonne = d.idPersonne ;
résultat 39 :
prenom | superficie | genre | ville | budget | categorie |
---|
william | 120 | appartement | paris | 530000 | vente |
mehdi | 18 | appartement | bordeaux | 120000 | vente |
charles | 21 | appartement | bordeaux | 145000 | vente |
brigitte | 26 | appartement | bordeaux | 172000 | vente |
sarah | 55 | appartement | lyon | 450000 | vente |
lucas | 55 | appartement | paris | 600000 | vente |
patrick | 40 | appartement | paris | 371000 | vente |
| 25 | appartement | paris | 253000 | vente |
samuel | 15 | appartement | paris | 162000 | vente |
simon | 80 | appartement | paris | 720000 | vente |
yvon | 20 | appartement | lyon | 680 | location |
camille | 65 | appartement | lyon | 558000 | vente |
julie | 15 | appartement | paris | 490 | location |
leo | 100 | appartement | paris | 1100000 | vente |
celia | 15 | appartement | paris | 145000 | vente |
anna | 21 | appartement | lyon | 123800 | vente |
sabrina | 70 | appartement | lyon | 690000 | vente |
franck | 100 | appartement | lyon | 1500 | location |
aurore | 20 | appartement | paris | 600 | location |
marie | 30 | appartement | paris | 750 | location |
oceane | 30 | appartement | bordeaux | 680 | location |
enzo | 40 | appartement | bordeaux | 413000 | vente |
ines | 45 | appartement | bordeaux | 700 | location |
hugo | 40 | appartement | paris | 495000 | vente |
jonathan | 60 | appartement | paris | 650000 | vente |
axelle | 12 | appartement | lyon | 110000 | vente |
morgane | 17 | appartement | lyon | 500 | location |
melissa | 40 | appartement | paris | 800 | location |
kevin | 50 | appartement | paris | 850 | location |
ophelie | 40 | appartement | paris | 377500 | vente |
victoria | 20 | appartement | paris | 630 | location |
gaetan | | | | | |
quentin | | | | | |
emmanuel | | | | | |
elodie | | | | | |
agathe | | | | | |
charlotte | | | | | |
alice | | | | | |
mathieu | | | | | |
noemie | | | | | |
florian | | | | | |
clement | | | | | |
lea | | | | | |
chloe | | | | | |
alexandre | | | | | |
antoine | | | | | |
lola | | | | | |
caroline | | | | | |
adele | | | | | |
nathalie | | | | | |
tom | | | | | |
johan | | | | | |
priscillia | | | | | |
assia | | | | | |
nathan | | | | | |
alexis | | | | | |
robin | | | | | |
Question 40 : Afficher la liste des personnes ayant plusieurs logements à vendre.
SQL / BDD Immobilier / Requete n°40
SELECT p.prenom
FROM personne p, logement l, logement_personne lp
WHERE p.idPersonne = lp.idPersonne
AND lp.idLogement = l.idLogement
GROUP BY lp.idPersonne
HAVING COUNT(lp.idPersonne) > 1 ;
résultat 40 :
Question 41 : Afficher la liste des personnes avec le logement qu'elles vendent, ou la demande de logement qu'elles recherchent.
SQL / BDD Immobilier / Requete n°41
SELECT p.idPersonne, p.prenom, d.genre, d.ville, d.budget, d.superficie, d.categorie, l.genre, l.ville, l.prix, l.superficie, l.categorie
FROM personne p LEFT JOIN logement_personne lp ON p.idPersonne = lp.idPersonne
LEFT JOIN demande d ON p.idPersonne = d.idPersonne
LEFT JOIN logement l ON l.idLogement = lp.idLogement ;
résultat 41 :
idPersonne | prenom | genre demandé | ville demandé | budget demandé | superficie demandé | categorie demandé | genre proposé | ville proposé | prix proposé | superficie proposé | categorie proposé |
---|
1 | william | appartement | paris | 530000 | 120 | vente | | | | | |
2 | gaetan | | | | | | appartement | bordeaux | 550 | 17 | location |
3 | mehdi | appartement | bordeaux | 120000 | 18 | vente | | | | | |
4 | charles | appartement | bordeaux | 145000 | 21 | vente | | | | | |
5 | brigitte | appartement | bordeaux | 172000 | 26 | vente | | | | | |
6 | sarah | appartement | lyon | 450000 | 55 | vente | | | | | |
7 | lucas | appartement | paris | 600000 | 55 | vente | appartement | paris | 360000 | 40 | vente |
8 | quentin | | | | | | appartement | paris | 970 | 35 | location |
9 | patrick | appartement | paris | 371000 | 40 | vente | | | | | |
10 | emmanuel | | | | | | appartement | lyon | 110000 | 16 | vente |
11 | elodie | | | | | | appartement | bordeaux | 98000 | 18 | vente |
12 | agathe | | | | | | appartement | paris | 570 | 20 | location |
13 | valentine | appartement | paris | 253000 | 25 | vente | | | | | |
14 | charlotte | | | | | | maison | bordeaux | 370600 | 45 | vente |
15 | alice | | | | | | appartement | bordeaux | 2650 | 45 | location |
16 | samuel | appartement | paris | 162000 | 15 | vente | | | | | |
17 | mathieu | | | | | | appartement | lyon | 1090 | 31 | location |
18 | noemie | | | | | | appartement | bordeaux | 171500 | 33 | vente |
19 | simon | appartement | paris | 720000 | 80 | vente | | | | | |
20 | florian | | | | | | appartement | bordeaux | 121900 | 26 | vente |
21 | clement | | | | | | appartement | paris | 802000 | 90 | vente |
22 | yvon | appartement | lyon | 680 | 20 | location | | | | | |
23 | lea | | | | | | appartement | lyon | 683600 | 60 | vente |
24 | chloe | | | | | | appartement | paris | 370000 | 37 | vente |
25 | camille | appartement | lyon | 558000 | 65 | vente | | | | | |
26 | alexandre | | | | | | appartement | bordeaux | 228600 | 43 | vente |
27 | julie | appartement | paris | 490 | 15 | location | | | | | |
28 | leo | appartement | paris | 1100000 | 100 | vente | | | | | |
29 | antoine | | | | | | appartement | paris | 1680 | 40 | location |
30 | lola | | | | | | appartement | paris | 520000 | 60 | vente |
31 | celia | appartement | paris | 145000 | 15 | vente | | | | | |
32 | anna | appartement | lyon | 123800 | 21 | vente | | | | | |
33 | caroline | | | | | | appartement | paris | 1890 | 40 | location |
34 | adele | | | | | | appartement | bordeaux | 248600 | 36 | vente |
35 | sabrina | appartement | lyon | 690000 | 70 | vente | | | | | |
36 | nathalie | | | | | | appartement | bordeaux | 229600 | 27 | vente |
37 | franck | appartement | lyon | 1500 | 100 | location | | | | | |
38 | tom | | | | | | appartement | lyon | 676700 | 65 | vente |
39 | johan | | | | | | appartement | lyon | 420 | 14 | location |
40 | priscillia | | | | | | appartement | paris | 685000 | 61 | vente |
41 | assia | | | | | | appartement | paris | 115000 | 15 | vente |
42 | nathan | | | | | | maison | paris | 1510000 | 130 | vente |
43 | aurore | appartement | paris | 600 | 20 | location | | | | | |
44 | marie | appartement | paris | 750 | 30 | location | | | | | |
45 | oceane | appartement | bordeaux | 680 | 30 | location | | | | | |
46 | enzo | appartement | bordeaux | 413000 | 40 | vente | | | | | |
47 | ines | appartement | bordeaux | 700 | 45 | location | | | | | |
48 | hugo | appartement | paris | 495000 | 40 | vente | | | | | |
49 | jonathan | appartement | paris | 650000 | 60 | vente | | | | | |
50 | axelle | appartement | lyon | 110000 | 12 | vente | | | | | |
51 | morgane | appartement | lyon | 500 | 17 | location | | | | | |
52 | melissa | appartement | paris | 800 | 40 | location | | | | | |
53 | kevin | appartement | paris | 850 | 50 | location | | | | | |
54 | ophelie | appartement | paris | 377500 | 40 | vente | | | | | |
55 | victoria | appartement | paris | 630 | 20 | location | | | | | |
56 | alexis | | | | | | appartement | paris | 1310000 | 105 | vente |
56 | alexis | | | | | | appartement | paris | 280000 | 38 | vente |
57 | robin | | | | | | appartement | paris | 339000 | 38 | vente |
Question 42 : Afficher la liste des personnes ayant à la fois un logement à vendre ou louer et une demande d'achat ou de location.
SQL / BDD Immobilier / Requete n°42
SELECT p.prenom
FROM personne p, logement l, logement_personne lp, demande d
WHERE p.idPersonne = lp.idPersonne
AND lp.idLogement = l.idLogement
AND d.idPersonne = p.idPersonne
GROUP BY lp.idPersonne
HAVING COUNT(lp.idPersonne) > 0 AND COUNT(d.idPersonne) > 0;
résultat 42 :