Films 3

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 4

use jcc2;

-- Création de la table realisateurs avec id auto-increment

CREATE TABLE IF NOT EXISTS realisateurs (

id INT AUTO_INCREMENT PRIMARY KEY,

nom VARCHAR(50) NOT NULL,

prenom VARCHAR(50) NOT NULL,

sexe INT NOT NULL,

nation VARCHAR(2) NOT NULL

);

-- Insertion des données dans la table realisateurs

INSERT INTO realisateurs (nom, prenom, sexe, nation) VALUES

('Omar', 'Khlifi', 1, 'TN'),

('Abbess', 'Akkad', 1, 'EG'),

('Moufida', 'Tletli', 0, 'TN'),

('Fadhel', 'Jaziri', 1, 'TN');

-- Création de la table films avec id auto-increment

CREATE TABLE IF NOT EXISTS films (

id INT AUTO_INCREMENT PRIMARY KEY,

nom VARCHAR(50) NOT NULL,

id_realisateur INT,

FOREIGN KEY (id_realisateur) REFERENCES realisateurs(id)

);

-- Insertion des données dans la table films

INSERT INTO films (nom, id_realisateur) VALUES

('Al imlak', 2),

('Defi', 1),

('Fatma', 4),
('La Noce', 1),

('Sourakh', 1),

('Bayna al kasrain', 2),

('Samtoul al koussour', 3),

('Arab', 4);

-- Création de la table note_des_films avec id auto-increment

CREATE TABLE IF NOT EXISTS note_des_films (

id INT AUTO_INCREMENT PRIMARY KEY,

id_film INT,

note DECIMAL(3, 1) NOT NULL,

FOREIGN KEY (id_film) REFERENCES films(id)

);

select * from films;

select * from realisateurs;

select * from note_des_films;

-- Insertion des données dans la table note_des_films avec les nouvelles notes

INSERT INTO note_des_films (id_film, note)

VALUES

((SELECT id FROM films WHERE nom = 'Al imlak'), 2.2),

((SELECT id FROM films WHERE nom = 'Defi'), 1.1),

((SELECT id FROM films WHERE nom = 'Fatma'), 4.2),

((SELECT id FROM films WHERE nom = 'La Noce'), 1.1),

((SELECT id FROM films WHERE nom = 'Sourakh'), 1.6),

((SELECT id FROM films WHERE nom = 'Bayna al kasrain'), 2.8),

((SELECT id FROM films WHERE nom = 'Samtoul al koussour'), 3.9),

((SELECT id FROM films WHERE nom = 'Arab'), 4.0);

delete from note_des_films;


select * from note_des_films;

-- ister les films avec leurs notes :

SELECT

f.nom AS nom_film,

nf.note

FROM

films f

LEFT JOIN

note_des_films nf ON f.id = nf.id_film;

-- Calculer la moyenne des notes pour chaque réalisateur :

SELECT

r.nom AS nom_realisateur,

AVG(nf.note) AS moyenne_notes

FROM

realisateurs r

LEFT JOIN

films f ON r.id = f.id_realisateur

LEFT JOIN

note_des_films nf ON f.id = nf.id_film

GROUP BY

r.id, r.nom, r.prenom;

-- note la plus elevee


SELECT

f.nom AS nom_film,

nf.note

FROM

films f

LEFT JOIN

note_des_films nf ON f.id = nf.id_film

ORDER BY

nf.note DESC

LIMIT 3;

Vous aimerez peut-être aussi