Article épinglé

vendredi 28 octobre 2022

Exercice Microsoft SQL Serveur en ligne de commande

Source:
https://a-vimory.developpez.com/tutoriels/sql-server-2008-films/

Prérequis:

Disposer de :

  • EcomBox avec mcr.microsoft.com/mssql/server:2017-latest démarré
  • Microsoft SQL Server Management Studio connecté 

Création de la base de données

Suivre la procédure du site du dessus. A la fin vous devez avoir ceci dans l'explorateur d'objets:

Création des tables avec une requête

(C'est le but de cet article, la création avec des requêtes)

Activer la base Film puis Nouvelle requête.

Contenu de la requête:

CREATE TABLE realisateur
(
    id_realisateur INT PRIMARY KEY NOT NULL,
    nom VARCHAR(50),
    prenom VARCHAR(50),
)
CREATE TABLE film
(
    id_film INT PRIMARY KEY NOT NULL,
    id_realisateur INT NOT NULL,
  id_genre INT NOT NULL,
  titre VARCHAR(50),
)
CREATE TABLE genre
(
    id_genre INT PRIMARY KEY NOT NULL,
    genre VARCHAR(50),
)

Résultat

Après exécution, vous obtenez 3 tables avec clefs primaires:


Création des relations entre tables avec une requête

Objectif:
Créer les relations ad hoc des tables genre et realisateur (référence clef primaire) vers la table film (clefs étrangères FOREIGN KEY (id_realisateur) et FOREIGN KEY (id_genre) )

Contenu de la requête :

ALTER TABLE film
   ADD CONSTRAINT FK_film_realisateur FOREIGN KEY (id_realisateur)
      REFERENCES realisateur (id_realisateur)
      ON DELETE CASCADE
      ON UPDATE CASCADE
;
ALTER TABLE film
   ADD CONSTRAINT FK_film_genre FOREIGN KEY (id_genre)
      REFERENCES genre (id_genre)
      ON DELETE CASCADE
      ON UPDATE CASCADE
;

Résultat

Après exécution, vous obtenez les clefs étrangères (FK):



Insertion des données

Contenu de la requête


INSERT INTO genre (id_genre, genre)
 VALUES
 (1,'Action'),
 (2,'Comédie'),
 (3,'Romantique'),
 (4,'Dramatique');
 
INSERT INTO realisateur (id_realisateur, nom,prenom)
 VALUES
 (1,'Spielberg','Steven'),
 (2,'Woo','John'),
 (3,'Scott','Ridley'),
 (4,'Fuqua','Antoine'),
 (5,'Mc Tiernan','John'),
 (6,'De Palma','Brian'),
 (7,'Abrams','Jeffrey Jacob'),
 (8,'Whitesell','John'),
 (9,'Jaoui','Agnès'),
 (10,'Fridberg','Rick'),
 (11,'Dugan','Denis'),
 (12,'Segal','Peter'),
 (13,'Shadyac','Tom'),
 (14,'Stiller','Ben'),
 (15,'Tennant','Andy'),
 (16,'Wright','Joe'),
 (17,'Rosman','Mark'),
 (18,'Mc Namara','Sean'),
 (19,'Greene','David'),
 (20,'Turteltaub','John'),
 (21,'Chadwick','Justin'),
 (22,'Muccino','Gabriele'); 
 
INSERT INTO film (id_film,id_realisateur,id_genre, titre)
 VALUES
 (1,3,1,'Gladiator'),
 (2,4,1,'Le roi Arthur'),
 (3,15,3,'A tout jamais'),
 (4,19,4,'Rendez moi mes enfants'),
 (5,22,4,'A la recherche du bonheur'),
 (6,3,1,'La chute du faucon noir'),
 (7,8,2,'Big Mamma 2'),
 (8,11,2,'Quand Chuck rencontre Larry'),
 (9,14,2,'Disjoncté'),
 (10,6,1,'Mission impossible 1'),
 (11,2,1,'Mission impossible 2'),
 (12,7,1,'Mission impossible 3'),
 (13,16,3,'Orgueil et préjugés'),
 (14,20,4,'Phénomène'),
 (15,10,2,'Agent zéro zéro'),
 (16,13,2,'Menteur menteur'),
 (17,1,1,'Les dents de la mer'),
 (18,2,1,'Chasse à l''homme'),
 (19,18,3,'Trouve ta voix'),
 (20,1,1,'Il faut sauver le soldat Rayan'),
 (21,17,3,'Comme Cendrillon'),
 (22,9,2,'Parlez moi de la pluie'),
 (23,5,1,'Le 13ème guerrier'),
 (24,21,4,'Deux soeurs pour un roi'),
 (25,12,2,'Mi-temps au mitard'),
 (26,2,1,'Les messagers du vent'),
 (27,17,3,'L''homme parfait'),
 (28,1,1,'Jurassic Park');

Résultat


Exemples de requêtes

Objectif

Trouver les films de John Woo. Etape 1: Trouver la clef primaire de ce réalisateur dans la table réalisateur. Etape 2: Lister les films de ce réalisateur de la table film.

Requête 1

SELECT * FROM [Realisateur] WHERE [nom]= 'Woo'
La clef de ce réalisateur est donc 2

Requête 2

SELECT * FROM [film] WHERE [id_realisateur]= 2




Aucun commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)