logo



Problema 38

Evidența rezultatelor obţinute de elevi la olimpiadele naţionale se realizează prin intermediul unei baze de date ce cuprinde tabelul Premii cu structura Olimpiada (T,50), Elev (T,80), Premiu (T,20), Suma_premiere (N,5), Excursie (Y/N).
Cerinţe:
a) Creaţi structura tabelului Premii;
b) Introduceți următoarele înregistrări în tabel:

Olimpiada

Elev

Premiu

Suma_premiere

Excursie

Matematica

Ciobanu Maria

I

400

Y

Fizica

Cojocaru Robert

III

200

N

Matematica

Zaharia Nicoleta

M

80

N

Informatica

Stefanescu Dan

M

80

Y

Chimie

Rotaru Dragos

II

300

Y

Informatica

Rusu Raluca

II

300

Y

c) Să se afişeze elevii care au optat să meargă în excursie (câmpul Excursie=Y);
d) Folosind o interogare (secvenţă de instrucţiuni), modificaţi suma de premiere la 100 pentru elevii care au obţinut menţiuni (câmpul Premiu=M).

Rezolvare:

# a)

CREATE TABLE Premii (
    Olimpiada VARCHAR(50),
    Elev VARCHAR(80),
    Premiu VARCHAR(20),
    Suma_premiere DECIMAL(5,0),
    Excursie CHAR(1)
);

# b)

INSERT INTO Premii (Olimpiada, Elev, Premiu, Suma_premiere, Excursie) VALUES
('Matematica', 'Ciobanu Maria', 'I', 400, 'Y'),
('Fizica', 'Cojocaru Robert', 'III', 200, 'N'),
('Matematica', 'Zaharia Nicoleta', 'M', 80, 'N'),
('Informatica', 'Stefanescu Dan', 'M', 80, 'Y'),
('Chimie', 'Rotaru Dragos', 'II', 300, 'Y'),
('Informatica', 'Rusu Raluca', 'II', 300, 'Y');

SELECT * from Premii;

# c)

SELECT Elev, Olimpiada, Premiu, Suma_premiere
FROM Premii
WHERE Excursie = 'Y';

# d)

UPDATE Premii
SET Suma_premiere = 100
WHERE Premiu = 'M';

SELECT * from Premii;

 

 



Copyright © 2016 Kalytheo