Najah.
Mon plan de révision⚡ Défi flash

Informatique · Écoles d'ingénieurs — ENSMR (Mines Rabat)

Bases de données relationnelles et langage SQL

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 Fiche de cours

L'essentiel du cours

Une base de données relationnelle repose sur le modèle de Codd. Les données sont organisées en tables.

  • Table : Ensemble de tuples (lignes) ayant les mêmes attributs (colonnes).
  • Clé Primaire (PK) : Identifiant unique d'un tuple.
  • Clé Étrangère (FK) : Attribut faisant référence à une PK d'une autre table.
  • SQL (Structured Query Language) : Langage standard pour manipuler les données (DML : SELECT, INSERT, UPDATE, DELETE) et définir la structure (DDL : CREATE, ALTER, DROP).

Méthodes à maîtriser

  • Passer du Modèle Conceptuel (MCD) au Modèle Logique (MLD).
  • Écrire des requêtes SELECT avec WHERE, GROUP BY, et HAVING.
  • Réaliser des jointures (INNER JOIN, LEFT JOIN).
  • Appliquer les règles de normalisation (1NF, 2NF, 3NF) pour éviter la redondance.

Exemples corrigés

  • Sélection : SELECT * FROM Etudiant WHERE age > 18;
  • Jointure : SELECT e.nom, c.libelle FROM Etudiant e JOIN Classe c ON e.id_classe = c.id;

Erreurs fréquentes

  • Oublier la clause ON lors d'une jointure.
  • Confondre WHERE (filtre sur lignes) et HAVING (filtre sur groupes).
  • Ne pas respecter l'intégrité référentielle (insérer une FK inexistante).

🌉 Jisr : les mots du chapitre FR ⇄ AR

Tu as appris les sciences en arabe ? Touche un mot pour voir sa traduction et une explication en darija.

La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Bases de données relationnelles et langage SQL

1/4

Quelle clause SQL permet de filtrer les résultats d'une requête ?

❓ Questions fréquentes

Est-ce que la clé primaire peut être composée de plusieurs colonnes ?

Oui, on appelle cela une clé primaire composée.

💡 À retenir : Elle est définie à la fin de la déclaration de la table : PRIMARY KEY (col1, col2).

Quelle est la différence entre CHAR et VARCHAR ?

CHAR est de taille fixe, VARCHAR est de taille variable.

💡 À retenir : VARCHAR économise l'espace de stockage.

C'est quoi la différence entre WHERE et HAVING ?
  1. WHERE filtre les lignes avant le regroupement (GROUP BY).
  2. HAVING filtre les résultats après le regroupement.

💡 À retenir : WHERE s'applique aux données brutes, HAVING s'applique aux agrégats (ex: SUM, COUNT).

Kifach n7seb l'effectif dial les etudiants f kol classe ?
  1. Khsek tsta3ml GROUP BY 3la l'id dial la classe.
  2. Tsta3ml fonction d'agregation COUNT(*). Exemple : SELECT id_classe, COUNT(*) FROM Etudiant GROUP BY id_classe;

💡 À retenir : GROUP BY est obligatoire dès qu'on utilise une fonction d'agrégation avec un autre attribut.

Chno hiya la différence bin INNER JOIN o LEFT JOIN ?
  1. INNER JOIN kayjib ghir les lignes li kayn ttabo9 bin les deux tables.
  2. LEFT JOIN kayjib ga3 les lignes mn la table li 3la l'issar, hta ila ma kanouch 3ndhom mrafeq f la table li 3la limn.

💡 À retenir : LEFT JOIN kaykhli les valeurs nulles ila malqach correspondance.

Pourquoi on utilise la normalisation ?
  1. Pour éliminer la redondance des données.
  2. Pour éviter les anomalies de mise à jour, d'insertion et de suppression.

💡 À retenir : Une base normalisée est plus performante et cohérente.

Comment supprimer tous les enregistrements d'une table sans supprimer la structure ?

Utilisez la commande DELETE FROM nom_table;.

💡 À retenir : DROP TABLE supprime la structure, DELETE vide seulement le contenu.

Wach momkin nsta3ml SELECT bla FROM ?

Oui, par exemple pour faire des calculs simples comme SELECT 5 * 10;.

💡 À retenir : Utile pour tester des fonctions ou des constantes sans table.

Qu'est-ce qu'une contrainte d'intégrité ?

C'est une règle imposée aux données pour garantir leur exactitude (ex: NOT NULL, UNIQUE, CHECK).

💡 À retenir : Les contraintes protègent la base contre les erreurs de saisie.

Comment trier les résultats par ordre décroissant ?

Utilisez la clause ORDER BY colonne DESC;.

💡 À retenir : ASC est par défaut, DESC est pour l'ordre inverse.

C'est quoi un index en SQL ?

C'est une structure de données qui accélère la recherche des lignes dans une table.

💡 À retenir : Trop d'index ralentissent l'insertion et la mise à jour.

Comment modifier une donnée existante ?

Utilisez la commande UPDATE nom_table SET colonne = valeur WHERE condition;.

💡 À retenir : Toujours mettre une clause WHERE pour ne pas modifier toute la table.

✍️ Exercices type examen national

Exercice 1

Soit la table Vente(id_vente, id_produit, quantite, date_vente). Écrire la requête SQL pour afficher le total des quantités vendues par produit.

Voir la correction détaillée : inscription gratuite

Exercice 2

Soit deux tables : Client(id_c, nom) et Commande(id_com, id_c, montant). Écrire une requête pour afficher le nom des clients ayant passé une commande supérieure à 1000 DH.

Voir la correction détaillée : inscription gratuite

Exercice 3

Expliquer le rôle de la clause HAVING et donner un exemple où elle est indispensable.

Voir la correction détaillée : inscription gratuite

Un prof de Informatique pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Informatique