module sql
module sql
module sql
Je veux des exercices chronologique sur le langage de définition de données en SQL sachant qu’il ne
doit avoir que les requêtes suivantes :create,drop, rename et alter
Absolument ! Voici une progression d’exercices pour vous familiariser avec les requêtes DDL (Data
Definition Language) de base en SQL, en se concentrant sur CREATE, DROP, RENAME et ALTER.
Créez une table clients avec les colonnes id (clé primaire), nom, prenom et date_naissance.
Créez une table commandes avec les colonnes id (clé primaire), date_commande et id_client (clé
étrangère référençant la table clients).
Suppression de tables :
Renommage de tables :
Renommez-la en personnes.
Ajout de colonnes :
Ajoutez une colonne email à la table personnes.
Ajoutez une colonne telephone à la table personnes, en précisant un type de données approprié.
Modification de colonnes :
Modifiez le type de données de la colonne date_naissance de la table personnes pour une meilleure
précision.
Suppression de colonnes :
Clés primaires :
Créez une table produits avec les colonnes id (clé primaire), nom et prix.
Clés étrangères :
Ajoutez une colonne id_produit à la table commandes et définissez-la comme clé étrangère
référençant la table produits.
Assurez-vous que les colonnes nom et prenom de la table personnes ne peuvent pas être nulles.
Niveau 4 : Indexation
Création d’index :
Créez un index sur la colonne nom de la table personnes pour accélérer les recherches.
Créez un index composite sur les colonnes nom et prenom de la table personnes.
Suppression d’index :
Créez une vue clients_actifs qui ne sélectionne que les clients ayant passé au moins une commande.
Modification de vues :
Modifiez la vue clients_actifs pour inclure une colonne calculée représentant le nombre total de
commandes passées par chaque client.
Conseils supplémentaires :
Utilisez un système de gestion de base de données (SGBD) : PostgreSQL, MySQL, SQL Server ou Oracle
sont des choix populaires.
Testez vos requêtes : Vérifiez toujours que vos modifications n’ont pas d’effets indésirables sur vos
données.
Consultez la documentation de votre SGBD : Chaque SGBD peut avoir des syntaxes légèrement
différentes et des fonctionnalités supplémentaires.
Variez les exercices : N’hésitez pas à créer des scénarios plus complexes pour vous entraîner
davantage.
SQL
Date_naissance DATE
);
En suivant cette progression, vous acquerrez une solide base en DDL et serez capable de créer et de
gérer efficacement vos bases de données SQL.
Absolument ! Reprenons les exercices en détaillant davantage chaque étape et en ajoutant des
exemples plus concrets pour chaque requête DDL.
Rappels :
DDL (Data Definition Language) : Langage utilisé pour définir la structure d’une base de données.
SQL
Date_naissance DATE
);
SQL
ALTER TABLE clients ADD COLUMN email VARCHAR(100) ;
SQL
SQL
SQL
ALTER TABLE personnes ALTER COLUMN date_naissance TYPE DATE USING date_naissance ::DATE ;
SQL
SQL
SQL
Nom VARCHAR(100),
Prix NUMERIC(10,2)
);
SQL
Niveau 4 : Indexation
SQL
SQL
SQL
SQL
SELECT p.*
FROM personnes p
Exercices supplémentaires :
Relations : un livre peut avoir plusieurs auteurs, un lecteur peut emprunter plusieurs livres.
Contraintes : un livre doit avoir au moins un auteur, un emprunt doit avoir un livre et un lecteur.
Relations : un produit appartient à une catégorie, une commande peut contenir plusieurs lignes de
commande.
Conseils :
Utilisez un outil de visualisation de base de données : Pour mieux comprendre la structure de vos
tables et les relations entre elles.
Testez vos requêtes régulièrement : Assurez-vous qu’elles fonctionnent comme prévu et qu’elles ne
provoquent pas d’erreurs.
Variez les types de données : Utilisez des types numériques, des dates, des chaînes de caractères, etc.
pour enrichir vos exercices.
N’hésitez pas à poser d’autres questions ou à me demander des exercices plus spécifiques !
20 Déc
2015
Enoncé
Solution
Objectif : Écrire des requêtes SELECT comportant la projection, le regroupement, le tri et les jointures.
Rh2
Modèle Relationnel : RH
Travail à faire :
Donner la liste des numéros et noms des ouvriers et leur numéro de département
Donner les noms des vendeurs du département 30 dont le salaire est supérieur à 1500
Donner la liste des noms, fonctions et salaires des directeurs et des présidents
Donner la liste des noms, fonctions et salaires des directeurs et des employés qui ont un salaire >
5000
Donner la liste des noms et fonctions des directeurs du département 10 et des ouvriers du
département 20.
Donner la liste des noms, des fonctions et des numéros du département des employés qui ne sont pas
ni ouvrier ni directeur
Donner la liste des noms, fonctions et salaires des employés qui gagnent entre 2200 et 2800
Donner la liste des noms, des fonctions et des numéros du département des employés ouvrier,
secrétaire ou vendeur
Donner la liste des salaires, fonctions et noms des employés du département 20, selon l’ordre
décroissant des salaires
Donner la liste des employés triée selon l’ordre croissant des fonctions et l’ordre décroissant des
salaires
Donner le plus haut salaire et le plus bas salaire de tous les employés
Donner la moyenne des salaires pour chaque département (afficher numéro de département et
moyenne),
Donner pour chaque département, le salaire annuel moyen des employés qui ne sont pas ni directeurs
ni président
Donner pour chaque fonction de chaque département le nombre d’employés et le salaire moyen.
Donner la liste des salaires moyens pour les fonctions comportant plus de deux employés.
Donner les noms, fonctions et noms des départements des employés des départements 20 et 30
Donner les noms des tous employés et les noms de leur responsable (renommer l’attribut responsable
en ‘CHEF’)
Donner la liste des noms et salaires des employés qui gagnent au moins que leur responsable (afficher
aussi les noms des responsables)
Donner la liste des noms, salaires, fonctions des employés qui gagnent plus que l’employé 1035.
Donner les noms des tous employés et, s’il est connu, les noms de leur responsable (renommer
l’attribut responsable en ‘CHEF’)
Donner les noms des employés et les noms de projets aux quels ils participent.
Donner les noms des tous les employés et les noms de projets aux quels ils participent (même s’ils ne
participent à aucun projet)
Donner les noms des tous les directeurs et les noms de projets aux quels ils participent (même s’ils ne
participent à aucun projet)
Donner les noms et fonctions des employés qui gagnent plus que ‘Mahmoudi’.
Donner les noms département où il y a des employés qui gagnent plus de 3000.
Donner les fonctions dont la moyenne des salaires est inférieure à la moyenne de celle des ingénieurs
Donner les employés qui ont occupé les fonctions de vendeurs et d’ouvriers
//Source : www.exelib.net