logo



Problema 35

Evidența activităţii unui cinematograf se realizează prin intermediul unei baze de date ce cuprinde tabelul Filme cu structura Id_film (N,4), Titlu (T,100), Gen (T,50), Durata (N,3), An_aparitie (N,4), Versiune_3D (Y/N). Durata filmului este exprimată în minute.
Cerinţe:
a) Creaţi structura tabelului Filme;
b) Introduceți următoarele înregistrări în tabel:

Id_film

Titlu

Gen

Durata

An_aparitie

Versiune_3D

2485

Star Wars – Revenge of the Sith

Fictiune

140

2005

Y

2858

Slumdog Millionaire

Drama

120

2008

N

2109

A Beautiful Mind

Drama

135

2001

N

2011

The Departed

Thriller

151

2006

Y

2885

Back to the future

Fictiune

116

1985

N

2665

Gladiator

Drama

155

2000

N

c) Afişaţi filmele din genul drama, în ordinea crescătoare a anului apariţiei;
d) Afişaţi, pentru fiecare gen, durata medie.

Rezolvare:

# a)

CREATE TABLE Filme (
    Id_film INT(4),
    Titlu VARCHAR(100),
    Gen VARCHAR(50),
    Durata INT(3),
    An_aparitie INT(4),
    Versiune_3D CHAR(1)  -- se folosește 'Y' sau 'N'
);

# b)

INSERT INTO Filme (Id_film, Titlu, Gen, Durata, An_aparitie, Versiune_3D) VALUES
(2485, 'Star Wars – Revenge of the Sith', 'Fictiune', 140, 2005, 'Y'),
(2858, 'Slumdog Millionaire', 'Drama', 120, 2008, 'N'),
(2109, 'A Beautiful Mind', 'Drama', 135, 2001, 'N'),
(2011, 'The Departed', 'Thriller', 151, 2006, 'Y'),
(2885, 'Back to the future', 'Fictiune', 116, 1985, 'N'),
(2665, 'Gladiator', 'Drama', 155, 2000, 'N');

SELECT * from Filme;

# c)

SELECT * FROM Filme
WHERE Gen = 'Drama'
ORDER BY An_aparitie ASC; 
    
# d)

SELECT Gen, AVG(Durata) AS Durata_Medie
FROM Filme
GROUP BY Gen;

 

 



Copyright © 2016 Kalytheo