logo



Problema 14

Evidența cititorilor unei biblioteci se realizează prin intermediul tabelului Cititori cu structura Id_cititor (N,5), Nume (T,50), Prenume (T,50), Maxim_carti (N,2), Data_inreg (D), unde Maxim_carti reprezintă numărul maxim de cărţi pe care îl poate împrumuta simultan respectivul cititor, iar Data_inreg este data la care cititorul s-a înregistrat la bibliotecă.
Cerinţe:
a) Creaţi structura tabelului Cititori;
b) Introduceți următoarele înregistrări în tabel:

Id_cititor

Nume

Prenume

Maxim_carti

Data_inreg

344

Pop

Adela

5

12.iul.2002

231

Cozma

Teodora

2

02.apr.2010

233

Moldovan

Paul-Ion

3

04.mai.2009

143

Baciu

Sabina

2

11.iun.2006

2312

Neagoe

Alexandru

3

23.aug.2008

1022

Olaru

Mihaela

2

14.apr.2006

c) Afişaţi cititorii care pot împrumuta peste 2 cărţi în acelaşi timp;
d) Folosind o interogare (secvenţă de instrucţiuni), modificaţi câmpul Maxim_carti, crescând valoarea cu 1, pentru cititorii care s-au înregistrat între anii 2007-2009 inclusiv.

Rezolvare:

# a)

CREATE TABLE Cititori (
    Id_cititor INT(5),
    Nume VARCHAR(50),
    Prenume VARCHAR(50),
    Maxim_carti INT(2),
    Data_inreg DATE
);

# b)

INSERT INTO Cititori (Id_cititor, Nume, Prenume, Maxim_carti, Data_inreg)
VALUES
(344, 'Pop', 'Adela', 5, '2002-07-12'),
(231, 'Cozma', 'Teodora', 2, '2010-04-02'),
(233, 'Moldovan', 'Paul-Ion', 3, '2009-05-04'),
(143, 'Baciu', 'Sabina', 2, '2006-06-11'),
(2312, 'Neagoe', 'Alexandru', 3, '2008-08-23'),
(1022, 'Olaru', 'Mihaela', 2, '2006-04-14');

SELECT * from Cititori;

# c)

SELECT * FROM Cititori
WHERE Maxim_carti > 2;
    
# d)

UPDATE Cititori
SET Maxim_carti = Maxim_carti + 1
WHERE YEAR(Data_inreg) BETWEEN 2007 AND 2009;

/*Aceasta va actualiza câmpul Maxim_carti pentru cititorii care s-au înregistrat
în perioada 2007-2009, crescând valoarea acestuia cu 1.*/

SELECT * from Cititori;

 

 



Copyright © 2016 Kalytheo