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

Informatique · Écoles d'ingénieurs — ENSIAS

Bases de données relationnelles et 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

Le modèle relationnel repose sur la théorie des ensembles. Une base de données est un ensemble de relations (tables).

  • Structure : Une table est composée de $n$ colonnes (attributs) et $m$ lignes (tuples).
  • Contraintes d'intégrité :
    • Clé primaire (PK) : Unique et non nulle.
    • Clé étrangère (FK) : Référence une PK d'une autre table.
  • Langage SQL :
    • DDL (Data Definition Language) : CREATE, ALTER, DROP.
    • DML (Data Manipulation Language) : SELECT, INSERT, UPDATE, DELETE.

Méthodes à maîtriser

  1. Passage du MCD au MLD : Transformer les entités en tables et les associations en clés étrangères ou tables de jointure.
  2. Écriture de requêtes SELECT : Maîtriser la clause WHERE, les jointures (INNER JOIN, LEFT JOIN) et les fonctions d'agrégation (COUNT, SUM, AVG).
  3. Normalisation : Vérifier la 1NF, 2NF et 3NF pour éviter la redondance.

Exemples corrigés

  • Requête simple : SELECT nom FROM Etudiant WHERE age > 20;
  • 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 GROUP BY avec ORDER BY.
  • Ne pas respecter l'ordre des clauses dans une requête SQL (SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY).

🌉 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 SQL

1/4

Quelle clause est utilisée pour filtrer les résultats d'une requête SQL ?

❓ Questions fréquentes

Chno lfar9 bin INNER JOIN w LEFT JOIN ?
  1. INNER JOIN : kayjib ghir les lignes li 3ndhom correspondance f jjouj tables.
  2. LEFT JOIN : kayjib ga3 les lignes mn la table li 3la lissr, 7ta ila ma kanouch 3ndhom correspondance.

💡 À retenir : LEFT JOIN est utile pour ne pas perdre de données lors des jointures.

Peut-on supprimer toutes les données d'une table sans supprimer la table elle-même ?

Oui, avec la commande TRUNCATE TABLE nom_table ou DELETE FROM nom_table.

💡 À retenir : TRUNCATE est plus rapide mais réinitialise les compteurs d'auto-incrémentation.

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

💡 À retenir : On utilise WHERE pour les colonnes simples et HAVING pour les fonctions d'agrégation (ex: SUM, COUNT).

Kifach n3ref wach nzid table jdida wla ghir clé étrangère ?
  1. Ila kan l3ala9a (1,n), katzid ghir clé étrangère f l'entité li fiha (n).
  2. Ila kan l3ala9a (n,n), darouri khassk tzid table jdida (table de jointure).

💡 À retenir : La règle d'or est de toujours regarder la cardinalité maximale.

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

Oui, c'est ce qu'on appelle une clé primaire composée. Elle est utilisée quand une seule colonne ne suffit pas à identifier de manière unique une ligne.

💡 À retenir : Une clé primaire composée est définie à la fin de la déclaration de la table : PRIMARY KEY (col1, col2).

Chno hiya l'utilité dyal DISTINCT ?

DISTINCT katssta3mal bach t7yd tkarar f les résultats dyal SELECT.

💡 À retenir : SELECT DISTINCT nom FROM Etudiant n'affiche chaque nom qu'une seule fois, même s'il est répété.

Comment gérer les valeurs nulles dans une base de données ?
  1. Utiliser IS NULL ou IS NOT NULL dans les conditions.
  2. Éviter les NULL dans les clés primaires.

💡 À retenir : NULL n'est pas égal à 0 ou à une chaîne vide.

Kifach n7seb l'âge dial l'étudiant ila 3ndi ghir date de naissance ?

Il faut utiliser les fonctions de date du SGBD, par exemple YEAR(CURRENT_DATE) - YEAR(date_naissance).

💡 À retenir : La syntaxe dépend du SGBD (MySQL, PostgreSQL, Oracle).

Pourquoi on normalise les bases de données ?
  1. Pour réduire la redondance des données.
  2. Pour éviter les anomalies de mise à jour, d'insertion et de suppression.

💡 À retenir : La 3NF est le standard pour la plupart des applications professionnelles.

C'est quoi une vue (View) en SQL ?

Une vue est une table virtuelle basée sur le résultat d'une requête SELECT. Elle ne stocke pas les données physiquement.

💡 À retenir : Les vues servent à simplifier les requêtes complexes et à sécuriser l'accès aux données.

Est-ce que je peux modifier la structure d'une table après sa création ?

Oui, en utilisant la commande ALTER TABLE.

💡 À retenir : ALTER TABLE nom_table ADD colonne type permet d'ajouter un champ.

Comment trier les résultats d'une requête ?

En utilisant la clause ORDER BY.

💡 À retenir : ASC pour l'ordre croissant (par défaut) et DESC pour l'ordre décroissant.

✍️ Exercices type examen national

Exercice 1

Soit le schéma : Etudiant(id_etudiant, nom, prenom, id_classe) et Classe(id_classe, libelle). Écrire la requête SQL pour afficher le nombre d'étudiants par classe.

Voir la correction détaillée : inscription gratuite

Exercice 2

Soit la table Produit(id_prod, nom, prix). Écrire une requête pour augmenter le prix de 10% pour les produits dont le prix est inférieur à 100 DH.

Voir la correction détaillée : inscription gratuite

Exercice 3

Soit une base de données de gestion de bibliothèque. Créer la table Livre avec les colonnes : isbn (clé primaire), titre, annee_edition.

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