![]() |
|
|
|
|
Problema 17Evidența camerelor unui hotel se realizează prin intermediul unei baze de date ce cuprinde tabelul Camere cu structura Nr_camera (T,4), Nr_locuri (N,1), Status (T,20), Categ_VIP (Y/N), Data_eliberarii (D). Numărul format cu primele două caractere ale câmpului Nr_camera reprezintă etajul la care este plasată camera respectivă.
c) Afişaţi camerele ocupate;
Rezolvare:
# a)
CREATE TABLE Camere (
Nr_camera CHAR(4),
Nr_locuri INT(1),
Status VARCHAR(20),
Categ_VIP CHAR(1), -- 'Y' sau 'N'
Data_eliberarii DATE
);
# b)
INSERT INTO Camere (Nr_camera, Nr_locuri, Status, Categ_VIP, Data_eliberarii)
VALUES
('0301', 2, 'Ocupata', 'N', '2015-05-22'),
('0302', 4, 'Rezervata', 'Y', '2016-09-03'),
('0422', 1, 'Libera', 'Y', NULL),
('1307', 2, 'Libera', 'N', NULL),
('1204', 3, 'Ocupata', 'N', '2015-06-12'),
('0707', 2, 'Ocupata', 'Y', '2015-08-04');
/*Notă: Formatul DATE standard este YYYY-MM-DD. NULL se folosește când nu există dată de eliberare.*/
SELECT * from Camere;
# c)
SELECT * FROM Camere
WHERE Status = 'Ocupata';
# d)
SELECT * FROM Camere
WHERE Status = 'Libera' AND CAST(LEFT(Nr_camera, 2) AS UNSIGNED) > 10;
/*Se extrag primele două caractere din Nr_camera și se transformă în număr pentru a verifica etajul.*/
|
|
|||||||||||||||||||||||||||||||||||
Copyright © 2016 Kalytheo