module sql

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

Découvrez les dernières modifications apportées au Guide sur la confidentialité dans les applications

GeminiS’ouvre dans une nouvelle fenêtre

Conversation avec Gemini

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

Afficher les suggestions

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.

Objectif : Maîtriser la création, la modification et la suppression d’objets de base de données (tables,


colonnes, etc.)

Niveau 1 : Les bases

Création de tables simples :

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 :

Supprimez les tables clients et commandes que vous venez de créer.

Renommage de tables :

Créez à nouveau la table clients.

Renommez-la en personnes.

Niveau 2 : Manipulation des colonnes

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.

Renommez la colonne id de la table personnes en personne_id.

Suppression de colonnes :

Supprimez la colonne telephone de la table personnes.

Niveau 3 : Contraintes d’intégrité

Clés primaires :

Créez une table produits avec les colonnes id (clé primaire), nom et prix.

Ajoutez une contrainte de clé primaire sur la colonne id de la table commandes.

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.

Contraintes NOT NULL :

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 :

Supprimez l’index créé sur la colonne nom.

Niveau 5 : Structures plus complexes


Création de vues :

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.

Exemple de requête (PostgreSQL) :

SQL

CREATE TABLE personnes (

Personne_id SERIAL PRIMARY KEY,

Nom VARCHAR(50) NOT NULL,

Prenom VARCHAR(50) NOT NULL,

Date_naissance DATE

);

Utilisez ce code avec précaution.

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.

Souhaitez-vous des exercices plus spécifiques ou avez-vous d’autres questions ?


Peut tu reprendre en donnant plus d’exemple

Afficher les suggestions

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.

Requêtes DDL de base : CREATE, DROP, RENAME, ALTER.

Niveau 1 : Les bases

Créer une table clients :

SQL

CREATE TABLE clients (

Id SERIAL PRIMARY KEY, -- Numéro de client auto-incrémenté

Nom VARCHAR(50) NOT NULL, -- Nom du client

Prenom VARCHAR(50) NOT NULL, -- Prénom du client

Date_naissance DATE

);

Utilisez ce code avec précaution.

Ajouter une colonne email :

SQL
ALTER TABLE clients ADD COLUMN email VARCHAR(100) ;

Utilisez ce code avec précaution.

Renommer la table clients en personnes :

SQL

ALTER TABLE clients RENAME TO personnes ;

Utilisez ce code avec précaution.

Supprimer la table personnes :

SQL

DROP TABLE personnes ;

Utilisez ce code avec précaution.

Niveau 2 : Manipulation des colonnes

Modifier le type de la colonne date_naissance :

SQL

ALTER TABLE personnes ALTER COLUMN date_naissance TYPE DATE USING date_naissance ::DATE ;

Utilisez ce code avec précaution.

Renommer la colonne id en personne_id :

SQL

ALTER TABLE personnes RENAME COLUMN id TO personne_id ;

Utilisez ce code avec précaution.

Ajouter une contrainte NOT NULL sur nom et prenom :

SQL

ALTER TABLE personnes ALTER COLUMN nom SET NOT NULL ;

ALTER TABLE personnes ALTER COLUMN prenom SET NOT NULL ;

Utilisez ce code avec précaution.

Niveau 3 : Contraintes d’intégrité


Créer une table produits avec une clé primaire :

SQL

CREATE TABLE produits (

Id SERIAL PRIMARY KEY,

Nom VARCHAR(100),

Prix NUMERIC(10,2)

);

Utilisez ce code avec précaution.

Ajouter une clé étrangère id_produit dans la table commandes :

SQL

ALTER TABLE commandes ADD COLUMN id_produit INTEGER REFERENCES produits(id) ;

Utilisez ce code avec précaution.

Niveau 4 : Indexation

Créer un index sur la colonne nom :

SQL

CREATE INDEX idx_personnes_nom ON personnes(nom) ;

Utilisez ce code avec précaution.

Créer un index composite sur nom et prenom :

SQL

CREATE INDEX idx_personnes_nom_prenom ON personnes(nom, prenom) ;

Utilisez ce code avec précaution.

Supprimer l’index sur nom :

SQL

DROP INDEX idx_personnes_nom ;

Utilisez ce code avec précaution.

Niveau 5 : Structures plus complexes


Créer une vue clients_actifs :

SQL

CREATE VIEW clients_actifs AS

SELECT p.*

FROM personnes p

INNER JOIN commandes c ON p.id = c.id_client ;

Utilisez ce code avec précaution.

Exercices supplémentaires :

Créer une base de données pour une bibliothèque :

Tables : livres, auteurs, emprunts, lecteurs.

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.

Créer une base de données pour un magasin en ligne :

Tables : produits, catégories, commandes, clients, lignes de commande.

Relations : un produit appartient à une catégorie, une commande peut contenir plusieurs lignes de
commande.

Modéliser une base de données relationnelle pour un réseau social simplifié :

Utilisateurs, publications, commentaires, amitiés.

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.

Explorez les fonctionnalités avancées de votre SGBD : Fonctions d’agrégation, sous-requêtes,


fenêtres, etc.

N’hésitez pas à poser d’autres questions ou à me demander des exercices plus spécifiques !

Quel serait le thème de votre prochain exer


e-Exercices

20 Déc

2015

Les requêtes SELECT- Base de données RH

CHAOULID | SQL | Chapitre : Langage de manipulation de données | 74593 visites | Moyen |


Corrigé

Enoncé

Solution

Objectif : Écrire des requêtes SELECT comportant la projection, le regroupement, le tri et les jointures.

Soit le schéma relationnel suivant :

Rh2

Modèle Relationnel : RH

Travail à faire :

Écrire les requêtes SELECT répondant aux questions suivantes :

Donner la liste des numéros et noms des employés du département 20

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 employés dont le responsable est connu

Donner la liste des employés dont le responsable n’est pas connu


Donner la liste des salaires, fonctions et noms des employés du département 20, selon l’ordre
croissant des salaires

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 la moyenne des salaires des tous les employés

Donner la moyenne des salaires des ouvriers.

Donner le plus haut salaire et le plus bas salaire de tous les employés

Donner le nombre d’employés du départment 10

Donner le nombre de différentes fonctions occupées par les employés du département 10

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 la liste des numéros de départements avec au moins deux secrétaires.

Donner le nom de chaque employé et la ville dans laquelle il/elle travaille.

Donner la ville dans laquelle travaille l’employé 1035.

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 projets aux quels l’employé 1035 participe.

Donner les noms des ingénieurs qui participent au projet ‘EAST_MARKETS’

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

Donner les employés qui n’ont jamais été vendeurs

Donner les projets où ne travaillent que des ingénieurs

//Source : www.exelib.net

Vous aimerez peut-être aussi