Cours Complet MySQL - Résumé pour Examens
(QCM/QSM)
1. Définition de MySQL
- MySQL est un SGBD relationnel open source.
- Les données sont stockées dans des tables.
- Utilisé souvent avec PHP pour le développement web.
2. Concepts fondamentaux
- Base de données : ensemble de tables.
- Table : contient des lignes (tuples/enregistrements) et des colonnes (attributs).
- Attribut (colonne) : propriété décrite avec un type de données.
- Tuple (enregistrement/row) : une ligne de valeurs réelles.
- Domaine : ensemble des valeurs possibles d’un attribut.
- Clé primaire : identifiant unique pour un tuple.
- Clé étrangère : établit une relation avec une autre table.
3. Types de données
- INT : entier
- FLOAT/DOUBLE : nombre décimal
- CHAR(n) : chaîne de longueur fixe
- VARCHAR(n) : chaîne de longueur variable
- DATE : AAAA-MM-JJ
- DATETIME : date + heure
- BOOLEAN : vrai/faux (1 ou 0)
- TEXT : texte long
4. Catégories de commandes SQL
- DDL (Data Definition Language) : CREATE, DROP, ALTER (définition des objets)
- DML (Data Manipulation Language) : SELECT, INSERT, UPDATE, DELETE (manipulation des
données)
- DCL (Data Control Language) : GRANT, REVOKE (gestion des droits)
- TCL (Transaction Control Language) : COMMIT, ROLLBACK (transactions)
5. Commandes de gestion de base de données
CREATE DATABASE nom_base; → créer une base
USE nom_base; → utiliser une base
DROP DATABASE nom_base; → supprimer une base
6. Commandes sur les tables
CREATE TABLE etudiants (id INT PRIMARY KEY AUTO_INCREMENT, nom VARCHAR(50),
prenom VARCHAR(50), age INT); → créer une table
ALTER TABLE etudiants ADD email VARCHAR(100); → ajouter une colonne
ALTER TABLE etudiants DROP COLUMN age; → supprimer une colonne
DROP TABLE etudiants; → supprimer une table
7. Commandes SELECT (interrogation des données)
SELECT * FROM etudiants; → afficher tout
SELECT nom, prenom FROM etudiants; → afficher certaines colonnes
SELECT * FROM etudiants WHERE age > 20; → condition
SELECT * FROM etudiants ORDER BY nom ASC; → tri
SELECT * FROM etudiants LIMIT 5; → limiter le nombre de résultats
SELECT DISTINCT age FROM etudiants; → éliminer doublons
8. Commandes de manipulation des données
INSERT INTO etudiants (nom, prenom, age) VALUES ('Ali','Amine',22); → insérer
UPDATE etudiants SET age = 23 WHERE id = 1; → mise à jour
DELETE FROM etudiants WHERE id = 1; → suppression
9. Fonctions d’agrégation
COUNT() : compter le nombre d’enregistrements
SUM() : somme
AVG() : moyenne
MIN() : valeur minimale
MAX() : valeur maximale
Exemple : SELECT AVG(age) FROM etudiants;
10. Relations entre tables
- 1 → 1 : un étudiant a une seule carte
- 1 → N : un professeur a plusieurs étudiants
- N → N : un étudiant suit plusieurs cours et un cours est suivi par plusieurs étudiants
11. Index et Vues
CREATE INDEX idx_nom ON etudiants(nom); → créer un index
CREATE VIEW etu_vieux AS SELECT * FROM etudiants WHERE age > 25; → créer une vue
12. Organisation des fichiers MySQL
- [Link] : options de la base (charset, collation)
- .frm : définition des tables (avant MySQL 8.0)
- .ibd : données + index d’une table InnoDB
- ibdata1 : tablespace partagé InnoDB
- .myd : données (MyISAM)
- .myi : index (MyISAM)
- ib_logfile0 / ib_logfile1 : journaux de transactions InnoDB
13. Exemple QCM (classique)
Question : Le fichier créé par le serveur pour stocker les attributs de la base est ?
Réponses :
A. [Link]
B. [Link]
C. [Link] ■
D. [Link]