logo



Problema 12

Evidența claselor dintr-o şcoală se realizează prin intermediul unui tabel Clase cu structura Id_clasa (N,5), Clasa (N,2), Seria (T,1), Sala (T,30), Dotari_multimedia (Y/N), Nr_elevi (N,2), Val_bunuri_inventar (N,5), Aer_conditionat (Y/N).
Cerinţe:
a) Creaţi structura tabelului Clase;
b) Introduceți următoarele înregistrări în tabel:

Id_clasa

Clasa

Seria

Sala

Dotari_multimedia

Nr_elevi

Val_bunuri_inventar

Aer_conditionat

4

7

A

201

Y

26

5000

Y

5

7

B

202

Y

26

4500

N

6

7

C

202

N

24

3100

N

8

8

A

205

N

26

2800

Y

9

8

B

206

N

28

3400

Y

10

9

A

301

Y

26

5500

Y

c) Afişaţi sălile de clasă care dispun de aer condiţionat;
d) Folosind o interogare (secvenţă de instrucţiuni), măriţi valoarea bunurilor de inventar cu 4% pentru clasele care au dotări multimedia. (valoarea obţinută se rotunjeşte la cel mai apropiat întreg)

Rezolvare:

# a)

CREATE TABLE Clase (
    Id_clasa INT(5),
    Clasa INT(2),
    Seria VARCHAR(1),
    Sala VARCHAR(30),
    Dotari_multimedia VARCHAR(1),  -- 'Y' sau 'N'
    Nr_elevi INT(2),
    Val_bunuri_inventar INT(5),
    Aer_conditionat VARCHAR(1)  -- 'Y' sau 'N'
);

# b)

INSERT INTO Clase (Id_clasa, Clasa, Seria, Sala, Dotari_multimedia, Nr_elevi, Val_bunuri_inventar, Aer_conditionat)
VALUES
(4, 7, 'A', '201', 'Y', 26, 5000, 'Y'),
(5, 7, 'B', '202', 'Y', 26, 4500, 'N'),
(6, 7, 'C', '202', 'N', 24, 3100, 'N'),
(8, 8, 'A', '205', 'N', 26, 2800, 'Y'),
(9, 8, 'B', '206', 'N', 28, 3400, 'Y'),
(10, 9, 'A', '301', 'Y', 26, 5500, 'Y');

SELECT * from Clase;

# c)

SELECT Sala FROM Clase
WHERE Aer_conditionat = 'Y';
    
# d)

UPDATE Clase
SET Val_bunuri_inventar = ROUND(Val_bunuri_inventar * 1.04)
WHERE Dotari_multimedia = 'Y';

/*Aceasta va aplica o mărire de 4% asupra valorii bunurilor de inventar doar pentru clasele care au dotări multimedia, 
rotunjind valoarea obținută la cel mai apropiat întreg.*/

SELECT * from Clase;

 

 



Copyright © 2016 Kalytheo