SQL

Le SQL fait désormais partie du programme de Maths appliquées et ECT. Il ne faut pas le négliger, car il risque de tomber régulièrement au concours, à l’écrit comme à l’oral. Maintenant que tu connais tout ce qu’il faut savoir sur le SQL grâce à cet article, tu dois connaître les commandes qui sont à la limite du programme pour ne pas être surpris lorsque tu tomberas dessus au concours !

Rappel sur les commandes exigibles

Si jamais le SQL tombe au concours, le programme officiel (maths appliquées) dit que tu dois être capable de créer une table, de connaître les types d’attributs, de faire des enregistrements dans des tables, et d’utiliser la commande SELECT, la commande WHERE et INNER JOIN.

Tu devras aussi être capable de modifier des données d’une table et de supprimer des données. Revenons sur ces commandes.

La commande UPDATE permet de modifier d’une table. Elle s’écrit sous cette forme : UPDATE table SET attribut = la nouvelle valeur WHERE condition.

Par exemple, si on a la table Adhérent suivante :

Num_adherent Prénom Ville
1 Luca Toulon
2 Romain Montpellier
3 Marie Strasbourg
4 Antoine Nancy
5 Baptiste Lille

Et si Antoine déménage de Nancy à Lille, on peut écrire : UPDATE Adhérent SET ville = Lille WHERE Prénom = “Antoine”.

La commande DELETE permet de supprimer un enregistrement d’un tableau. Par exemple, si l’on reprend l’exemple de la table Adhérent une fois modifiée, avec la commande DELETE FROM Adhérent WHERE ville = “Lille”, on obtient le tableau (avec la commande SELECT * FROM Adhérent pour l’afficher) :

Num_adherent Prénom Ville
1 Luca Toulon
2 Romain Montpellier
3 Marie Strasbourg

Les commandes à la limite du programme

Il est bon de savoir quelques commandes à la limite du programme pour ne pas être surpris si jamais elles tombent au concours. Il est possible qu’elles soient données dans l’énoncé et que tu doives les utiliser.

Rassure-toi, elles ne sont pas à apprendre ! Mais savoir les utiliser sera un vrai atout pour toi. Toutes ces commandes s’utilisent dans le cadre de projections (de sélections).

Les fonctions d’agrégation

Il s’agit des fonctions minimum MIN, maximum MAX, somme SUM, moyenne AVG et comptage COUNT. Les commandes COUNT et AVG sont notamment présentes dans le sujet ECRICOME 2024.

Les fonctions MIN et MAX renvoient la plus petite/la plus grande valeur de l’attribut (de la colonne) sélectionné. Elles s’écrivent de la sorte : SELECT MIN(attribut) FROM table.

Par exemple, prenons la table suivante, nommée Boulangerie, qui contient les produits d’une boulangerie et leurs prix :

Produit Prix
pain-au-chocolat 1,5
croissant 0,9
baguette 1,2

La commande SELECT Max(Prix) FROM Boulangerie renvoie « pain-au-chocolat ».

On peut aussi les utiliser sur des valeurs non numériques. La commande renverra en fonction de l’ordre alphabétique.

La commande SELECT Min(Produit) FROM Boulangerie renvoie donc « baguette ».

La fonction COUNT permet de connaître le nombre d’enregistrements d’une table. Elle s’écrit de la forme : SELECT COUNT (*) FROM table ou alors SELECT COUNT (attribut_1) FROM table, si on veut connaître le nombre d’enregistrements pour lequel la colonne attribut_1 n’est pas vide.

La fonction AVG permet de calculer la moyenne des valeurs d’une colonne dans une table et la fonction SUM la somme. Par exemple, la commande SELECT AVG (prix) FROM boulangerie renvoie 1,2.

On peut bien sûr ajouter des conditions à ces fonctions. Par exemple, la commande SELECT COUNT (*) FROM boulangerie WHERE prix >1 renvoie 2.

Les commandes UNION, INTERSECTION et EXCEPT

La commande UNION combine les résultats de deux (ou plusieurs) requêtes en les affichant dans les lignes à la suite (au sein des mêmes colonnes). Elle élimine automatiquement les doublons. Attention : il faut le même nombre d’attributs sollicités. On peut faire appel à la même table ou non.

La commande sera de cette forme : SELECT colonne1, colonne2 FROM table1 UNION SELECT colonne1, colonne2 FROM table2 (si l’on souhaite avoir deux colonnes).

Par exemple, prenons la table Maraîcher suivante :

fruits prix
banane 1,5
fraise 0,8
pomme 1,3

La commande suivante : SELECT fruits FROM Maraîcher WHERE prix > 1 UNION SELECT produits FROM boulangerie WHERE prix=1,5 renvoie le tableau :

banane
pomme
pain-au-chocolat

La commande INTERSECT permet de trouver les lignes communes entre les résultats de deux requêtes. Attention, les commandes sollicitées doivent être de même nombre et de même type. L’ordre des colonnes doit être aussi le même. Par exemple, si on a ces deux tables employes_projetA et employes_projetB :

id_employe nom rôle
1 Alice Dupont Développeur
2 Bob Martin Analyste
3 Claire Leroy Chef de projet

 

id_employe nom role salaire
2 Bob Martin Analyste 45 000
3 Claire Leroy Chef de projet 60 000
5 Emma Dubois Développeur 50 000

La commande SELECT nom, role FROM employes_projetA INTERSECT SELECT nom, role FROM employes_projetB renvoie le tableau suivant :

Bob Martin Analyste
Claire Leroy Chef de projet

La commande EXCEPT retourne les lignes du premier ensemble de résultats qui n’apparaissent pas dans le second. De même, les commandes sollicitées doivent être de même nombre et l’ordre des colonnes sollicitées doit aussi être identique.

Par exemple, si on reprend nos tables employes_projetA et employes_projetB, SELECT id_employe, nom, role FROM employes_projetA EXCEPT SELECT id_employe, nom, role FROM employes_projetB renvoie :

1 Alice Dupont Développeur

Les commandes INTERSECT et EXCEPT sont aussi compatibles avec des conditions !

Les commandes DISTINCT et ORDER BY

La commande DISTINCT permet d’afficher les résultats d’une requête en évitant les doublons. Elle s’écrit de la manière suivante : SELECT DISTINCT colonne1, colonne2, … FROM table WHERE … (si l’on veut mettre une condition).

Par exemple, avec la table Adhérent suivante :

Nom Ville
Nom1 Paris
Nom2 Paris
Nom3 Lille

La commande SELECT DISTINCT ville FROM Adhérent renvoie :

Paris
Lille

La commande ORDER BY permet de trier les résultats en ordre croissant en fonction d’une colonne. Elle s’écrit : SELECT colonne1, colonne2, … FROM table ORDER BY colonneN.

Les requêtes imbriquées

Les requêtes imbriquées peuvent tomber aux concours, car elles sont déjà tombées à l’oral HEC en 2023. Elles permettent de réaliser plusieurs actions en une seule fois. Cela peut paraître compliqué, mais c’est assez simple à utiliser, un exemple te permettra de comprendre.

Par exemple, on veut savoir quel est le produit qui coûte le moins cher dans notre table Boulangerie. Il nous suffit d’écrire SELECT produit FROM Boulangerie WHERE prix = ( SELECT MIN(prix) FROM Boulangerie) pour obtenir « croissant ». Cela nous évite de d’abord trouver le prix le plus petit, puis le produit auquel il correspond.

Tout l’enjeu d’un exercice SQL au concours sera donc de savoir gérer toutes ces commandes complexes en une seule requête. Mais ne t’inquiète pas, ce n’est pas si compliqué que ça et souviens-toi que ces commandes ne sont pas exigibles.

Conclusion

Maintenant, tu maîtrises parfaitement le SQL ! Si tu veux, tu peux t’entraîner sur des annales, car le SQL est tombé à Ecricome 2024 et à l’oral HEC 2023 (exercice sans préparation 6). Tu peux aussi consulter le méga-répertoire écrit et oral pour t’entraîner sur des notions précises, en maths comme en Python.

 

Et si tu souhaites consulter nos autres ressources en mathématiques, tu peux cliquer ici !