Bases de données

🗄 Chapitre : Le langage SQL

1️⃣ Le langage SQL

SQL (Structured Query Language) est un langage standardisé permettant de définir, manipuler et interroger des bases de données relationnelles.

SQL est utilisé par les systèmes de gestion de bases de données relationnelles (SGBDR).



Reprenons l'exemple des tables Classe et Eleve du chapitre sur les bases de données.

Table Classe :

id_classe nom_classe
1 Terminale NSI
2 Première NSI

Table Eleve :

id_eleve nom prenom moyenne id_classe
10 Martin Alice 13 1
11 Durand Hugo 12 1
12 Petit Emma 18 2


2️⃣ Requêtes interrogatives

SELECT * FROM Eleve;
id_eleve nom prenom moyenne id_classe
10 Martin Alice 13 1
11 Durand Hugo 12 1
12 Petit Emma 18 2



Il est possible de ne sélectionner que certaines colonnes:

SELECT nom, prenom FROM Eleve;
prenom nom
Martin Alice
Durand Hugo
Petit Emma



On peut enfin ordonner les résultats avec la clause ORDER BY.

SELECT * FROM Eleve ORDER BY moyenne;
id_eleve nom prenom moyenne id_classe
11 Durand Hugo 12 1
10 Martin Alice 13 1
12 Petit Emma 18 2


3️⃣ Filtrage des données

La clause WHERE:

SELECT * FROM Eleve WHERE moyenne>13;
id_eleve nom prenom moyenne id_classe
12 Petit Emma 18 2



On peut associer des condition avec AND:

SELECT * FROM Eleve
WHERE
moyenne<18 AND prenom='Hugo';
id_eleve nom prenom moyenne id_classe
11 Durand Hugo 12 1



Recherche sur du texte avec LIKE:

SELECT * FROM Eleve
WHERE
nom LIKE %ti%;
id_eleve nom prenom moyenne id_classe
10 Martin Alice 13 1
12 Petit Emma 18 2


4️⃣ Les jointures

Une jointure permet de combiner les données de plusieurs tables en se basant sur une relation entre leurs colonnes (généralement une clé primaire et une clé étrangère).

SELECT nom, prenom FROM Eleve
JOIN
Classe ON Eleve.id_eleve = Classe.id_classe
WHERE Classe.nom_classe="Terminale NSI";
nom prenom
Martin Alice
Durand Hugo


5️⃣ Les clauses d'agrégation

Les clauses d'agrégation permettent de réaliser des calculs sur des ensembles de données. Elles ne sont pas au programme, mais si le sujet en fait usage, leur signification sera précisée.

Exemple : Compter le nombre d'élèves.

SELECT COUNT(*)
FROM
Eleve


→ Renvoit 3.

💡 Même si ces fonctions ne sont pas au programme NSI Terminale, elles apparaissent parfois dans les sujets et leur compréhension est alors nécessaire.



6️⃣ Mise à jour d'une table

Un peut mettre à jour une table avec les clauses UPDATE puis SET, par exemple:

UPDATE Eleve
SET
moyenne=14
WHERE id_eleve = 11;
id_eleve nom prenom moyenne id_classe
10 Martin Alice 13 1
11 Durand Hugo 14 1
12 Petit Emma 18 2


7️⃣ Insertion

Une rquête d'insertion s'effectue avec les clauses INSERT INTO puis VALUES, par exemple:

INSERT INTO Eleve
VALUES
(13, "Hennessy" ,"Jo", 11, 2 )
id_eleve nom prenom moyenne id_classe
10 Martin Alice 13 1
11 Durand Hugo 14 1
12 Petit Emma 18 2
13 Hennessy Jo 11 2



🔗 Consulez ici la grande quantité d'exercices de bac sur le langage SQL.