Files
safouane/exercice1_4.sql
2025-10-13 14:59:52 +02:00

135 lines
3.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Création de la base et des tables
CREATE DATABASE IF NOT EXISTS safouane
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE safouane;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS Livres;
DROP TABLE IF EXISTS Auteurs;
SET FOREIGN_KEY_CHECKS = 1;
CREATE TABLE Auteurs (
auteur_id INT AUTO_INCREMENT,
nom VARCHAR(100) NOT NULL,
prenom VARCHAR(100),
PRIMARY KEY (auteur_id)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE Livres (
livre_id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(255) NOT NULL,
annee_publication INT,
auteur_id INT,
resume TEXT,
FOREIGN KEY (auteur_id) REFERENCES Auteurs(auteur_id)
ON DELETE SET NULL
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SET NAMES utf8mb4;
SET CHARACTER SET utf8mb4;
-- Insertion des auteurs et livres
INSERT INTO Auteurs (nom, prenom) VALUES
('Hugo', 'Victor'),
('Camus', 'Albert'),
('Rowling', 'J.K.'),
('Orwell', 'George'),
('Austen', 'Jane'),
('Tolstoy', 'Leo'),
('Proust', 'Marcel'),
('de Beauvoir', 'Simone'),
('Asimov', 'Isaac'),
('Shelley', 'Mary'),
('Zola', 'Émile'),
('Flaubert', 'Gustave'),
('Stendhal', ''),
('Verne', 'Jules'),
('Dumas', 'Alexandre'),
('Christie', 'Agatha'),
('Conan Doyle', 'Arthur'),
('King', 'Stephen'),
('Murakami', 'Haruki'),
('Garcia Marquez', 'Gabriel'),
('Woolf', 'Virginia'),
('Kafka', 'Franz'),
('Dostoevsky', 'Fyodor'),
('Balzac', 'Honoré de'),
('Dickens', 'Charles');
INSERT INTO Livres (titre, annee_publication, auteur_id, resume) VALUES
('Les Misérables', 1862, 1, 'Jean Valjean cherche la rédemption.'),
('Notre-Dame de Paris', 1831, 1, 'Quasimodo et Esmeralda.'),
('LÉtranger', 1942, 2, 'Un homme indifférent face à la société.'),
('Germinal', 1885, 11, 'La vie des mineurs et leur révolte.'),
('Les Trois Mousquetaires', 1844, 15, 'Aventures dArtagnan et ses amis.');
SELECT COUNT(*) AS nb_auteurs FROM Auteurs;
SELECT COUNT(*) AS nb_livres FROM Livres;
-- EXERCICE 1 : INSERTION
INSERT INTO Auteurs (nom, prenom) VALUES ('Dumas', 'Alexandre');
INSERT INTO Livres (titre, annee_publication, auteur_id, resume)
VALUES ('Les Trois Mousquetaires', 1844, 15, 'Roman daventure.');
SELECT * FROM Auteurs;
SELECT * FROM Livres;
-- EXERCICE 2 : SELECTION
SELECT titre, annee_publication
FROM Livres
WHERE annee_publication < 1900
ORDER BY annee_publication;
SELECT *
FROM Auteurs
WHERE prenom = 'Victor';
SELECT titre, annee_publication
FROM Livres
WHERE titre LIKE '%Paris%';
-- EXERCICE 3 : SUPPRESSION
DELETE FROM Livres
WHERE titre = 'Notre-Dame de Paris';
SELECT * FROM Livres
WHERE titre LIKE '%Paris%';
SELECT COUNT(*) AS nb_livres_restants FROM Livres;
-- EXERCICE 4 : JOINTURES
SELECT
Livres.titre,
Livres.annee_publication,
Auteurs.nom,
Auteurs.prenom
FROM Livres
JOIN Auteurs
ON Livres.auteur_id = Auteurs.auteur_id
ORDER BY Livres.annee_publication;
SELECT
Livres.titre,
Auteurs.nom
FROM Livres
JOIN Auteurs
ON Livres.auteur_id = Auteurs.auteur_id;
SELECT
Livres.titre,
Livres.annee_publication,
Auteurs.nom
FROM Livres
JOIN Auteurs
ON Livres.auteur_id = Auteurs.auteur_id
WHERE Livres.annee_publication > 1900
ORDER BY Livres.annee_publication;