![]() |
|
|
|
|
Problema 33Evidența activităţii unei firme de închirieri locuinţe se realizează prin intermediul unei baze de date ce cuprinde tabelul Locuinte cu structura Id_locuinta (N,4), Tip (T,20), Suprafata (N,4), Nr_camere (N,2), Pret_lunar (N,5.2), Disponibila (Y/N).
c) Afişaţi apartamentele disponibile (câmpul Disponibila=Y), în ordinea crescătoare a preţului;
Rezolvare:
# a)
CREATE TABLE Locuinte (
Id_locuinta INT(4),
Tip VARCHAR(20),
Suprafata INT(4),
Nr_camere INT(2),
Pret_lunar DECIMAL(5,2),
Disponibila TINYINT(1)
);
/*Disponibila este un câmp de tip TINYINT(1) pentru a reprezenta valorile Y/N,
unde 1 reprezintă Y (disponibilă) și 0 reprezintă N (ne-disponibilă).
*/
# b)
INSERT INTO Locuinte (Id_locuinta, Tip, Suprafata, Nr_camere, Pret_lunar, Disponibila) VALUES
(4332, 'Apartament', 85, 3, 95.75, 1),
(3211, 'Vila', 130, 6, 245.00, 0),
(3445, 'Garsoniera', 45, 1, 49.30, 0),
(3624, 'Apartament', 65, 3, 87.00, 1),
(3575, 'Apartament', 70, 2, 115.50, 0),
(4578, 'Garsoniera', 55, 1, 55.90, 1);
/*În această interogare:
1 reprezintă valoarea Y (disponibilă).
0 reprezintă valoarea N (ne-disponibilă).
*/
SELECT * from Locuinte;
# c)
SELECT * FROM Locuinte
WHERE Tip = 'Apartament' AND Disponibila = 1
ORDER BY Pret_lunar ASC;
/*Această interogare va afișa toate apartamentele disponibile (Disponibila = 1), ordonate crescător în funcție de Pret_lunar.*/
# d)
UPDATE Locuinte
SET Pret_lunar = Pret_lunar * 0.96
WHERE Tip = 'Garsoniera' AND Disponibila = 0;
/*Această interogare va actualiza prețul lunar de închiriere pentru toate garsonierele
care sunt închiriate (adică au Disponibila = 0), reducându-l cu 4%.
*/
SELECT * from Locuinte;
|
|
||||||||||||||||||||||||||||||||||||||||||
Copyright © 2016 Kalytheo