0% ont trouvé ce document utile (0 vote)
164 vues6 pages

Examen Commun

Le document présente un examen final unifié sur Transact-SQL et SQL Server, avec une durée de 1h30. Il décrit un schéma de base de données pour une start-up de livraison à domicile au Maroc et propose plusieurs exercices pratiques, tels que l'écriture de requêtes T-SQL, la création de procédures stockées et de déclencheurs. Les annexes fournissent des détails sur les tables de la base de données et des références de syntaxe T-SQL.

Transféré par

jvkncph85b
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
164 vues6 pages

Examen Commun

Le document présente un examen final unifié sur Transact-SQL et SQL Server, avec une durée de 1h30. Il décrit un schéma de base de données pour une start-up de livraison à domicile au Maroc et propose plusieurs exercices pratiques, tels que l'écriture de requêtes T-SQL, la création de procédures stockées et de déclencheurs. Les annexes fournissent des détails sur les tables de la base de données et des références de syntaxe T-SQL.

Transféré par

jvkncph85b
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Aucun Support ou Documentation supplémentaire n'est autorisé pendant l'examen.

Toutes les commandes nécessaires sont fournies dans l'ANNEXE 2.

EXAMEN FINAL UNIFIE


Transact-SQL / SQL Server
Durée : 1h30

Énoncé :
Une nouvelle start-up a récemment fait son apparition au Maroc, introduisant une approche
innovante de la livraison à domicile. Pour optimiser ses opérations et offrir un service client
de qualité supérieure, l'entreprise s'appuie sur une base de données structurée. Le schéma
relationnel de cette base de données est représenté comme suit :
Commande (ID_Commande, Date_commande, Statut, #ID_Client)

Client (ID_Client, Nom, Prénom, Adresse, Numéro_téléphone)


Livreur (ID_Livreur, Nom, Prénom, Véhicule, Plaque_immatriculation)
Livraison (#ID_Commande, #ID_Livreur, Date_livraison)

Les détails des tables sont présentés dans l'ANNEXE 1.

Questions :
Exercice 1: Écrire une requête T-SQL qui utilise une variable pour stocker l'ID de la
commande 'CMD002' et affiche son statut.

Exercice 2: Écrire une requête T-SQL qui utilise un curseur pour afficher les noms des clients
ayant passé une commande.
- Indication : Les clients ayant passé une commande sont les clients qui se trouvent dans
la table "Commande".

Exercice 3: Créer une procédure stockée qui prend en entrée l'ID d'une commande et affiche
les détails de la livraison correspondante.

Exercice 4: Créer une fonction qui retourne le nombre de commandes passées par un client
donné. (Utiliser l'ID du client comme paramètre).

1
Exercice 5: Générer une exception avec la commande THROW lorsque vous essayez d'insérer
une commande avec une date de commande dans le futur, puis la gérer en affichant le
message d'erreur.
- Indication: Déclarer une variable et lui affecter la date suivante : 2025-01-01, puis
utiliser cette variable pour répondre à l’exercice.

Exercice 6: Créer un déclencheur (trigger) qui affiche le nom du livreur après l'insertion d'un
nouveau livreur.

2
ANNEXE 1 :
Tableaux descriptifs du schéma de la base de données

Table: Commande
Colonne Type de données Contraintes Description
ID_Commande Clé primaire Entier Identifiant unique de la commande
Date_commande Date Non nul Date de la commande
Statut Texte (Aucune) Statut actuel de la commande (en
attente, en cours, livrée, etc.)
ID_Client Clé étrangère Référence à la Identifiant du client (référence à la
table Client table Client)

Table: Client
Colonne Type de données Contraintes Description
ID_Client Clé primaire Entier Identifiant unique du client
Nom Texte Non nul Nom du client
Prénom Texte Non nul Prénom du client
Adresse Texte (Aucune) Adresse du client
Numéro_téléphone Texte (Aucune) Numéro de téléphone du client

Table: Livreur
Colonne Type de données Contraintes Description
ID_Livreur Clé primaire Entier Identifiant unique du livreur
Nom Texte Non nul Nom du livreur
Prénom Texte Non nul Prénom du livreur
Véhicule Texte (Aucune) Type de véhicule utilisé par le livreur
Plaque_immatriculation Texte (Aucune) Plaque d'immatriculation du
véhicule du livreur

Table: Livraison
Colonne Type de données Contraintes Description
ID_Commande Clé étrangère Référence à la Identifiant de la commande
table Commande (référence à la table Commande)
ID_Livreur Clé étrangère Référence à la Identifiant du livreur (référence à la
table Livreur table Livreur)
Date_livraison Date (Aucune) Date de la livraison

3
ANNEXE 2 :
Références de Syntaxes T-SQL

Syntaxes générales de T-SQL:


Opération Syntaxe générale
Déclaration de variable DECLARE @variableName DataType;
Assignation de valeur à une SET @variableName = value;
variable
Assignation de valeur à une SELECT @variableName = columnName FROM TableName WHERE ...;
variable à partir d'une
requête

Les procédures:
Opération Syntaxe générale
Création de procédure CREATE PROCEDURE procedureName
stockée @parameterName DataType
AS
BEGIN
--INSTRUCTIONS
END;
Exécution de procédure EXEC procedureName @parameterValue;
stockée

Les fonctions:
Opération Syntaxe générale
Création de fonction CREATE FUNCTION functionName(@parameterName DataType)
RETURNS ReturnType
AS
BEGIN
DECLARE @variableName DataType;
--INSTRUCTIONS
RETURN @variableName;
END;
Appel de fonction SELECT [Link](@parameterValue);

4
Les curseurs:
Opération Syntaxe générale
Déclaration de curseur DECLARE cursorName CURSOR FOR SELECT...;
Ouverture de curseur OPEN cursorName;
Récupération des FETCH NEXT FROM cursorName INTO @variableName;
données de curseur
Boucle pour parcourir WHILE @@FETCH_STATUS = 0
les données BEGIN
--INSTRUCTIONS
FETCH NEXT FROM cursorName INTO @variableName;
END;
Fermeture de curseur CLOSE cursorName;
Libération des DEALLOCATE cursorName;
ressources de curseur

La gestion des exceptions:


Opération Syntaxe générale
Gestion des exceptions BEGIN TRY
--INSTRUCTIONS
END TRY
BEGIN CATCH
--INSTRUCTIONS
END CATCH
Commande THROW THROW error_number, 'message', state
Commande RAISERROR RAISERROR ('message', severity, state)
Fonction ERROR_MESSAGE() ERROR_MESSAGE() : Renvoie une chaine de caractères qui
contient le message d'erreur du système de gestion de base de
données Microsoft SQL Server.
Fonction ERROR_NUMBER() ERROR_NUMBER() : Renvoie un entier qui représente le numéro
de l'erreur.
Fonction ERROR_SEVERITY() ERROR_SEVERITY() : Renvoie un entier qui représente le niveau
de gravité de l'erreur.

5
Les déclencheurs (triggers) :
Opération Syntaxe générale
Création de déclencheur CREATE TRIGGER triggerName
(trigger) ON tableName FOR/AFTER/INSTEAD OF {INSERT, UPDATE,
DELETE}
AS
BEGIN
--INSTRUCTIONS
END
Utilisation de la table SELECT @variableName = columnName FROM inserted
inserted
Utilisation de la table SELECT @variableName = columnName FROM deleted
deleted

Vous aimerez peut-être aussi