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

Informatique · Classes prépa (CPGE) — 2ème année — TSI

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 organise les données sous forme de tables. Chaque table possède des attributs (colonnes) et des tuples (lignes). La clé primaire ($PK$) identifie de manière unique chaque tuple. La clé étrangère ($FK$) assure l'intégrité référentielle entre deux tables. Le langage SQL (Structured Query Language) permet de manipuler ces données via des commandes : SELECT, INSERT, UPDATE, DELETE.

Méthodes à maîtriser

  1. Lecture d'un schéma : Identifier les clés primaires et étrangères.
  2. Requêtes simples : Utiliser SELECT ... FROM ... WHERE ....
  3. Jointures : Utiliser JOIN ... ON ... pour lier des tables liées par des clés.
  4. Agrégations : Utiliser GROUP BY avec HAVING pour filtrer les résultats agrégés.

Exemples corrigés

  • Sélection : SELECT nom FROM Etudiants WHERE note > 10;
  • Jointure : SELECT E.nom, C.libelle FROM Etudiants E JOIN Classes C ON E.id_classe = C.id;

Erreurs fréquentes

  • Oublier la condition de jointure (ON ...), ce qui crée un produit cartésien.
  • Confondre WHERE (filtre les lignes avant agrégation) et HAVING (filtre les groupes après agrégation).
  • Utiliser des noms d'attributs ambigus sans préciser la table (ex: E.nom).

🌉 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 permet de filtrer les résultats après un regroupement ?

❓ Questions fréquentes

C'est quoi la différence entre une clé primaire et une clé étrangère ?
  1. La clé primaire identifie de façon unique chaque ligne d'une table. Elle ne peut pas être nulle.
  2. La clé étrangère est une colonne qui fait référence à la clé primaire d'une autre table, permettant de créer un lien entre elles.

💡 À retenir : La clé primaire définit l'identité, la clé étrangère définit la relation.

kifach n7seb chhal men etudiant kayn f kol classe?
  1. Tu dois utiliser la fonction COUNT(*) pour compter les lignes.
  2. Tu dois grouper les résultats par l'identifiant de la classe avec GROUP BY.
  3. La requête est : SELECT id_classe, COUNT(*) FROM Etudiants GROUP BY id_classe;

💡 À retenir : Dès qu'il y a un calcul sur un groupe, il faut un GROUP BY.

Est-ce qu'on peut supprimer une table avec des données ?

Oui, avec la commande DROP TABLE nom_table;. Attention, cela supprime la structure et toutes les données définitivement.

💡 À retenir : DROP supprime la table, DELETE supprime seulement les lignes.

chno hiya l-fayda dyal l-normalisation?
  1. Éviter la redondance des données (ne pas écrire la même info plusieurs fois).
  2. Garantir la cohérence des données lors des mises à jour.
  3. Optimiser l'espace de stockage.

💡 À retenir : Normaliser = Moins de répétitions, plus de fiabilité.

Est-ce que WHERE marche avec SUM ?

Non, WHERE filtre les lignes individuelles avant le calcul. Pour filtrer après un SUM, on utilise HAVING.

💡 À retenir : WHERE avant GROUP BY, HAVING après.

kifach n-tiri l-ma3loumat men jouj tables f d9i9a wehda?
  1. Utilise la clause JOIN (souvent INNER JOIN).
  2. Précise la condition de liaison avec ON.
  3. Exemple : SELECT * FROM A JOIN B ON A.id = B.id_a;

💡 À retenir : La jointure nécessite une colonne commune.

C'est quoi le rôle de DISTINCT ?

Il permet d'éliminer les doublons dans les résultats d'une requête SELECT.

💡 À retenir : DISTINCT = valeurs uniques uniquement.

Est-ce que l'ordre des colonnes dans SELECT est important ?

Oui, le résultat affichera les colonnes dans l'ordre exact où tu les as écrites après le SELECT.

💡 À retenir : L'ordre de la requête définit l'ordre de l'affichage.

Peut-on modifier une donnée existante ?

Oui, avec la commande UPDATE. Syntaxe : UPDATE table SET colonne = valeur WHERE condition;.

💡 À retenir : Ne jamais oublier le WHERE dans un UPDATE, sinon toutes les lignes seront modifiées !

Quelle est la différence entre CHAR et VARCHAR ?

CHAR a une taille fixe (rempli d'espaces), VARCHAR a une taille variable selon le contenu.

💡 À retenir : VARCHAR est plus efficace pour le texte de longueur variable.

C'est quoi un produit cartésien ?

C'est le résultat d'une jointure sans condition ON. Chaque ligne de la table A est combinée avec chaque ligne de la table B.

💡 À retenir : À éviter, cela génère énormément de données inutiles.

Comment trier les résultats ?

Utilise la clause ORDER BY. Par défaut, c'est croissant (ASC), tu peux mettre DESC pour décroissant.

💡 À retenir : ORDER BY se place toujours à la fin de la requête.

✍️ Exercices type examen national

Exercice 1

Soit le schéma : Etudiant(id_etud, nom, id_classe) et Classe(id_classe, nom_classe). Écrire la requête SQL pour afficher le nom de l'étudiant et le nom de sa classe pour tous les étudiants.

Voir la correction détaillée : inscription gratuite

Exercice 2

Soit la table Produit(id, nom, prix, stock). Écrire la requête pour afficher le nom des produits dont le prix est supérieur à 100 et le stock est inférieur à 10.

Voir la correction détaillée : inscription gratuite

Exercice 3

Soit la table Vente(id_v, montant, date). Écrire la requête pour calculer le montant total des ventes par date.

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