Retour à la liste des articles Articles
16 minutes de lecture

Termes SQL que les débutants doivent connaître - Partie 3

Voici la troisième partie de ma liste de termes SQL essentiels pour les débutants. Dans la première, vous avez appris ce que sont les tables, les bases de données relationnelles et les requêtes. Dans la deuxième partie du tutoriel, je vous ai parlé des alias, de Les jointures en SQL, des clés primaires et des sous-requêtes. Maintenant, il est temps d'aborder des termes plus avancés relatifs aux bases de données. Mais n'ayez pas peur ! Je ne vais pas vous assommer avec des définitions scientifiques. Je vais tout expliquer simplement pour que vous puissiez comprendre facilement.

Si vous souhaitez revoir les termes SQL de base, consultez mes articles précédents, Termes SQL que les débutants doivent connaître et Termes SQL que les débutants doivent connaître - Partie 2. N'oubliez pas d'ajouter cet article à vos favoris afin de pouvoir y revenir facilement !

Passons aux choses sérieuses ! Voici d'autres termes SQL que vous devez connaître.

Termes SQL

SELECT

Si vous avez déjà commencé à apprendre le langage SQL, votre première instruction SQL était probablement SELECT. Si ce n'est pas le cas, demandez-vous si vous avez une bonne source de connaissances SQL.

SELECT est la base de l'essentiel, surtout lorsqu'il s'agit d'analyse de données. Nous utilisons SELECT pour choisir littéralement les données que nous souhaitons dans une base de données. Nous pouvons tout sélectionner, y compris des colonnes ou des lignes spécifiques en utilisant le filtrage. Mais tout d'abord, examinons l'utilisation la plus simple de SELECT. Supposons que nous disposions d'un tableau de type Courses qui ressemble à ceci :

IDNameDialectTopic
1SQL pour les débutantsStandardBasics
2Revenue Trend Analysis in SQLStandardSQL Reporting
3Création de rapports basiques en SQL in SQL ServerMS SQLSQL Reporting
4PostgreLes jointures en SQLPostgreSQLSQL JOINS

Écrivons maintenant la requête SQL la plus simple en utilisant SELECT et, par exemple, une clause WHERE (qui nous permet de choisir des données spécifiques). Supposons que nous voulions trouver le cours SQL Reporting en MS SQL. La requête ressemblerait à ceci :

SELECT Name
FROM Courses
WHERE Dialect=‘MS SQL’
AND Topic=‘SQL Reporting’

Après l'instruction SELECT, nous avons défini ce que nous voulons obtenir - dans notre cas, le nom du cours. Après FROM, nous avons écrit d'où les données doivent provenir : la table Courses table. Ensuite, nous avons utilisé une clause WHERE pour indiquer quel type de données nous voulions. Comme nous avons spécifié deux conditions, nous avons utilisé AND pour indiquer à la base de données que le résultat souhaité devait correspondre aux deux conditions. Comme vous pouvez le constater, cette requête n'est pas très différente d'une phrase anglaise courante.

Le résultat sera des informations sur le cours Création de rapports basiques en SQL en SQL Server. Si votre entreprise utilise une solution de base de données de Microsoft et que vous souhaitez prendre de meilleures décisions stratégiques sur la base de vos données, ce cours est parfait pour vous. Il fait partie de la filière SQL Reporting in MS SQL Server.

Mon collègue Adrian a écrit un excellent article sur la façon d'apprendre l'instruction SELECT en SQL. Vous y apprendrez beaucoup plus sur SELECT. Et une fois que vous avez appris les bases, cela vaut la peine d'envisager des sujets plus avancés. Si vous voulez bien apprendre SQL, je vous recommande notre SQL pour les débutants cours. C'est la première étape pour devenir un professionnel du SQL.

INSERT INTO

INSERT INTO est l'une des principales commandes SQL utilisées dans toutes les bases de données populaires. Elle est essentielle pour travailler avec des données et des tableaux, en particulier si vous êtes un ingénieur logiciel, un administrateur de base de données, un ingénieur en données ou quelqu'un qui travaille avec l'aspect technique des bases de données.

Que fait INSERT INTO? Exactement ce qu'il dit - il introduit des données dans la table. Il peut s'agir d'une seule ligne ou d'un groupe de lignes.

En programmation, nous utilisons l'acronyme CRUD - create, retrieve, update, and delete - pour décrire les quatre opérations de base que vous pouvez effectuer sur des données. INSERT est l'une d'entre elles. (Plus tard, je décrirai également UPDATE et DELETE). Toutes ces opérations sont utilisées pour modifier des bases de données).

Prenons la même table, Coursesque nous venons d'utiliser pour démontrer la commande SELECT et ajoutons-y des informations à l'aide de l'instruction INSERT (ou INSERT INTO).

IDNameDialectTopic
1SQL pour les débutantsStandardBasics
2Revenue Trend Analysis in SQLStandardSQL Reporting
3Création de rapports basiques en SQL in SQL ServerMS SQLSQL Reporting
4PostgreLes jointures en SQLPostgreSQLSQL JOINS

Supposons que nous voulions ajouter un autre cours de LearnSQL.fr au tableau. Cette fois, il s'agit de l'instruction Exercices Pratiques de SQL en SQL standard - idéal pour mettre en pratique vos nouvelles compétences ou vous préparer à un entretien d'embauche ou à un examen. Ajoutons-le à notre table à l'aide de la commande INSERT INTO. Notre requête SQL ressemblerait à ceci :

INSERT INTO Courses (id, Name, Dialect, Topic) 
VALUES (5, ‘Exercices Pratiques de SQL’, ‘Standard’, ‘Basic’);

Cette opération ajoute une nouvelle ligne à notre tableau :

IDNameDialectTopic
1SQL pour les débutantsStandardBasics
2Revenue Trend Analysis in SQLStandardSQL Reporting
3Création de rapports basiques en SQL in SQL ServerMS SQLSQL Reporting
4PostgreLes jointures en SQLPostgreSQLSQL JOINS
5Exercices Pratiques de SQLStandardBasics

Vous pouvez ajouter des données une ligne à la fois ou vous pouvez insérer plusieurs lignes à la fois en utilisant une seule instruction SQL. Comment ? Cela ressemblerait à ceci :

INSERT INTO Courses (id, Name, Dialect, Topic) 
VALUES ('6', ‘a’, ‘b’, ‘c’),
       ('7', ‘x’, ‘y’, ‘z’),
       …;

Si vous ajoutez des valeurs à toutes les colonnes d'une table, vous n'avez pas besoin d'inclure les noms des colonnes dans votre requête. Toutefois, veillez à saisir les valeurs dans l'ordre correct. Sinon, ce sera le chaos. Si vous ajoutez des données à toutes les colonnes, votre requête ressemblerait à ceci :

INSERT INTO Courses 
VALUES (5, ‘Exercices Pratiques de SQL’, ‘Standard’, ‘Basic’);

N'oubliez pas qu'il n'est pas nécessaire de spécifier des colonnes, mais cela ne veut pas dire que vous ne pouvez pas le faire si vous voulez être sûr que les données sont placées aux bons endroits.

Je sais que vous ne faites probablement que commencer à utiliser INSERT INTO; j'ai décrit son scénario d'utilisation le plus simple. Cependant, cette instruction peut être très intéressante - INSERT INTO peut apparaître, par exemple, dans des sous-requêtes. Vous voulez en savoir plus ? Alors lisez l'article Comment utiliser les sous-requêtes dans les instructions INSERT, UPDATE et DELETE. Vous pouvez également insérer des données d'une table à une autre, comme l'explique mon amie Rebecca dans SQL Insert, Update, and Delete.

Si vous voulez vraiment bien apprendre INSERT, je vous recommande notre Comment modifier une base de données avec SQL cours. Il contient plus de 50 exercices interactifs, grâce auxquels vous apprendrez les secrets de la modification des bases de données en SQL.

UPDATE

Maintenant que vous connaissez INSERT INTO, il vous sera beaucoup plus facile de comprendre la commande UPDATE - il s'agit simplement d'un moyen de modifier les données d'une ou de plusieurs lignes d'une table. Mais faites attention lorsque vous utilisez cette commande ; si vous ne faites pas attention, vous pouvez vraiment vous causer beaucoup d'ennuis. Mal utilisée, UPDATE peut détruire toute la table. Il n'y a pas lieu de s'inquiéter : apprenez à utiliser cette commande SQL avant de commencer à mettre à jour vos données.

Voici Courses encore :

IDNameDialectTopic
1SQL pour les débutantsStandardBasics
2Revenue Trend Analysis in SQLStandardSQL Reporting
3Création de rapports basiques en SQL in SQL ServerMS SQLSQL Reporting
4PostgreLes jointures en SQLPostgreSQLSQL JOINS
5Exercices Pratiques de SQLStandardBasics

Supposons que vous décidiez que le thème du Exercices Pratiques de SQL cours ne devrait pas être " Basics " mais "La pratique du SQL". Bien qu'il soit destiné aux débutants, ce cours est également utile aux utilisateurs plus avancés qui souhaitent rafraîchir leurs connaissances. Pour changer cela, nous allons utiliser la commande UPDATE. La requête SQL ressemblera à ceci :

UPDATE Courses 
SET Topic='La pratique du SQL’
WHERE ID=5;

Notre table ressemblera à ceci :

IDNameDialectTopic
1SQL pour les débutantsStandardBasics
2Revenue Trend Analysis in SQLStandardSQL Reporting
3Création de rapports basiques en SQL in SQL ServerMS SQLSQL Reporting
4PostgreLes jointures en SQLPostgreSQLSQL JOINS
5Exercices Pratiques de SQLStandardLa pratique du SQL

Il est très important d'appliquer la clause WHERE dans ce cas. Si elle était omise, toutes les valeurs de la colonne topic seraient modifiées et nous aurions ceci (ce qui n'est pas cool) :

IDNameDialectTopic
1SQL pour les débutantsStandardLa pratique du SQL
2Revenue Trend Analysis in SQLStandardLa pratique du SQL
3Création de rapports basiques en SQL in SQL ServerMS SQLLa pratique du SQL
4PostgreLes jointures en SQLPostgreSQLLa pratique du SQL
5Exercices Pratiques de SQLStandardLa pratique du SQL

Comme INSERT INTO, UPDATE nous permet de modifier plus d'une ligne à la fois. Si nous revenons à notre tableau original Coursesnous pourrions, par exemple, renommer le dialecte "Standard" en "SQL Standard" pour tous les cours qui utilisent ce dialecte. Voici comment procéder :

UPDATE Courses
SET Dialect='SQL Standard'
WHERE Dialect='Standard';

Que pensez-vous que nous obtiendrons ? Bien sûr, une table encore plus sympa :

IDNameDialectTopic
1SQL pour les débutantsSQL StandardBasics
2Revenue Trend Analysis in SQLSQL StandardSQL Reporting
3Création de rapports basiques en SQL in SQL ServerMS SQLSQL Reporting
4PostgreLes jointures en SQLPostgreSQLSQL JOINS
5Exercices Pratiques de SQLSQL StandardLa pratique du SQL

DELETE

La troisième commande SQL importante est DELETE, qui supprime les données existantes de la table. Je vous invite ici à être encore plus prudent qu'avec UPDATE. Si vous ne faites pas de sauvegardes régulières de vos données, la suppression d'un élément de la base de données peut être irréversible. Une telle chose m'est arrivée une fois, et j'en ai tiré une leçon pour la vie !

Prenons notre tableau Cours et supprimons le cours PostgreSQL. Tout ce que nous devons faire est d'utiliser la requête suivante :

DELETE FROM Courses 
WHERE Dialect=’PostgreSQL';

Et voilà ! Il n'y a pas de cours PostgreLes jointures en SQL dans le tableau, ce qui est dommage car il est vraiment bon.

Comme pour les commandes précédentes, DELETE fonctionne également sur plus d'une ligne. S'il y avait d'autres cours dans le tableau avec un dialect défini comme 'PostgreSQL', ils seraient tous supprimés.

De plus, vous pouvez supprimer toutes les lignes de la table avec une seule ligne SQL - même si la table en compte des centaines de milliers. Dans notre cas, il suffirait d'écrire :

DELETE FROM Courses;

Cela ne signifie pas que nous supprimons la table elle-même : sa structure, ses attributs et ses index resteront en place. Cependant, elle ne contiendra pas d'enregistrements. Il existe une autre commande DROP qui supprime la table entière ; je vous en parlerai peut-être dans un autre article.

ORDER BY

Si vous extrayez des données d'une table, c'est une bonne idée d'avoir un résultat bien ordonné. Parfois, vous souhaitez trier les résultats de votre requête. Dans ce cas, vous aurez besoin de ORDER BY, qui vous permet de classer les données dans un ordre croissant (A-Z, 1-10) ou décroissant (Z-A, 10-1).

Comme nous aimons que tout soit bien organisé, jetons un coup d'oeil à notre table Courses tableau. Cette fois, nous voulons voir les noms des cours par ordre alphabétique. Si des cours portent le même nom mais sont dans des dialectes SQL différents, nous trierons également les noms de dialectes par ordre alphabétique :

SELECT *
FROM Courses 
ORDER BY Name;

Le résultat sera charmant.

IDNameDialectTopic
3Création de rapports basiques en SQL in SQL ServerMS SQLSQL Reporting
4PostgreLes jointures en SQLPostgreSQLSQL JOINS
2Revenue Trend Analysis in SQLSQL StandardSQL Reporting
1SQL pour les débutantsSQL StandardBasics
5Exercices Pratiques de SQLSQL StandardSql Practice

Dans la première partie de mon tutoriel sur les termes SQL pour les débutants, j'ai décrit GROUP BY. À première vue, il est très similaire à ORDER BY. Cependant, il existe de grandes différences, que nous expliquons dans l'article Différence entre GROUP BY et ORDER BY en termes simples. Et que se passe-t-il si des valeurs NULL apparaissent dans le tableau ? Découvrez-le en lisant Comment ORDER BY et NULL fonctionnent ensemble en SQL.

HAVING

HAVING est utilisé pour le filtrage des données. HAVING est l'un des amis de SELECT's et ne peut exister sans lui ; il fonctionne également avec WHERE et GROUP BY. Cette clause spécifie la ou les conditions d'un groupe ou d'une agrégation.

Voici un exemple musical de ce dont je parle. Prenons la table music_artists (Les données proviennent de Wikipedia). Voici huit des artistes ayant réalisé le plus de recettes.

ArtistCountryGenreSale_mln
The BeatlesUnited KingdomRock600
Elvis PresleyUnited StatesRock and roll500
Michael JacksonUnited StatesPop350
Elton JohnUnited KingdomRock300
MadonnaUnited StatesPop275
Led ZeppelinUnited KingdomRock200
RihannaUnited States BarbadosPop250
Celine DionCanadaPop200

Pour calculer la somme des ventes d'albums des artistes par pays, vous écrirez cette requête :

SELECT Country, SUM(Sale_mln)
FROM music_artists
GROUP BY Country;

Le résultat est une liste des pays des artistes et le nombre total d'albums vendus par les artistes de chaque pays.

CountrySale_mln
United States1375
United Kingdom1100
Canada200

Supposons que nous voulions filtrer encore plus le résultat et que nous voulions que notre requête ne renvoie que les pays dont les principaux artistes ont vendu plus d'un milliard d'albums :

SELECT Country, SUM(Sale_mln)
FROM music_artists
GROUP BY Country
HAVING SUM(Sale_mln)>=1000;

Désolé, Canada, d'avoir été oublié dans les résultats. Drake doit vendre un peu plus d'albums. Au final, nous avons obtenu une comparaison entre les États-Unis et le Royaume-Uni.

Cet exemple n'est que la partie émergée de l'iceberg. Si vous voulez en savoir plus sur les HAVING, je vous recommande de lire La clause HAVING SQL expliquée et notre tutoriel HAVING SQL. Tous deux vous donneront une base solide pour l'utilisation de HAVING en SQL. Vous pouvez également l'apprendre et la pratiquer dans notre SQL pour les débutants cours.

Ordre des opérations SQL

Imaginez qu'une requête SQL soit la recette d'un plat délicieux. Chacun des éléments de cette requête est une étape successive. Par exemple, GROUP BY est l'étape de cuisson et ORDER BY est la garniture sur l'assiette.

Une requête SQL se compose le plus souvent de plusieurs commandes qui sont exécutées par la base de données dans un ordre précis. Par exemple, il est impossible de trier le résultat avant d'utiliser HAVING pour le filtrer ; ce serait un travail inutile de trier tous les enregistrements au lieu de ceux que nous aurons dans le résultat final.

Même si vous utilisez SQL tous les jours, vous n'avez pas besoin de mémoriser toutes les règles. Il vous suffit de vous souvenir de l'ordre général dans lequel les différentes commandes et clauses sont mises en œuvre. Toutefois, si vous envisagez de devenir un développeur de logiciels, vous devez savoir ce qui se passera dans la base de données après la saisie d'une requête spécifique.

Vous voulez en savoir plus ? Mon collègue Ignacio a tout décrit parfaitement dans son article Ordre des opérations SQL. N'oubliez pas que, selon les clauses qui apparaissent dans votre requête, l'ordre des actions peut être différent. Il existe toutefois une règle générale, illustrée dans cette image :

Ordre des opérations SQL

Outils de base de données

Voyons maintenant les systèmes de gestion de bases de données relationnelles ou SGBDR les plus populaires.

MySQL

MySQL

MySQL est actuellement le SGBD le plus populaire au monde. Selon une étude de Stack Overflow, il détenait plus de 50 % du marché l'année dernière - bien que PostgreSQL le suive de près.

MySQL a été fondée il y a 25 ans en Suède. En 2008, elle a été rachetée par Sun Microsystems, et depuis 2010, elle est développée sous l'égide d'Oracle. Il est intéressant de noter que le géant informatique dispose également de sa propre solution de base de données, que je décrirai dans un instant.

Ce SGBD est gratuit, fonctionne pour la plupart des applications et s'exécute sur les plateformes les plus populaires, notamment Linux, Windows et macOS. Tout cela - ainsi qu'une communauté active et un bon support - fait de MySQL un excellent choix pour de nombreuses utilisations. Personnellement, je suis un adepte de PostgreSQL, mais MySQL ne manque certainement de rien pour répondre à vos besoins.

Si vous souhaitez en savoir plus sur les bases de données populaires, je vous recommande de lire notre article sur les bases de données les plus populaires en 2020.

Oracle

Oracle

Dire qu'Oracle est un géant de l'informatique revient à dire qu'Amazon gère un magasin en ligne. Les solutions d'Oracle sont utilisées sous une forme ou une autre par 90 % des entreprises du classement Fortune 100. Oracle est l'un des principaux acteurs du marché des logiciels depuis le tout début de son existence (c'est-à-dire depuis la fin des années 1970). Vous connaissez peut-être Oracle comme le propriétaire de Java ou d'OpenOffice.

Fait amusant : le nom d'Oracle provient du nom de code de l'un des projets parrainés par la CIA sur lequel travaillait son cofondateur, Larry Ellison.

L'un des principaux produits de cette société est Oracle Database, un SGBD très populaire. On le trouve le plus souvent dans les entreprises ; beaucoup plus rarement, vous le verrez en utilisation domestique. Actuellement, les licences d'Oracle DB sont disponibles en plusieurs versions :

  • Oracle Enterprise Edition - La version phare du SGBD.
  • Oracle Standard Edition - Une version légèrement réduite, sans possibilité d'extension.
  • Oracle Standard Edition One - Un peu plus réduite que la précédente ; vous ne pouvez pas exécuter une configuration en cluster, et cette version ne peut être utilisée que sur des ordinateurs à un ou deux processeurs.
  • Oracle Express Edition - Une version gratuite qui ne peut être utilisée que sur du matériel avec un cœur de processeur et 1 Go de RAM. Elle peut gérer jusqu'à 4 Go de données.
  • Oracle Personal - Pour les utilisateurs à domicile.
  • OracleLite - Pour les applications mobiles.

En dehors de certaines des versions décrites ci-dessus, Oracle Database est un logiciel payant. Cela présente des avantages et des inconvénients. L'inconvénient évident est l'argent - vous devez payer la société pour utiliser sa solution. Les avantages sont un support technique fiable, des mises à jour et une sécurité garanties. Oracle consacre beaucoup d'argent au développement de ses produits. Néanmoins, chaque année, il perd des utilisateurs au profit de SGBD gratuits et à code source ouvert tels que PostgreSQL ou MySQL.

Comme je l'ai écrit précédemment, une controverse est née après l'acquisition de MySQL par Oracle. Pour l'instant, les deux projets (MySQL et Oracle DB) sont développés séparément - mais personne ne sait quels sont les plans à long terme. Peut-être, avec le temps, MySQL cessera-t-il d'être gratuit ? Ou les deux solutions seront-elles combinées en une seule ? C'est difficile à prévoir, mais pour moi, c'est l'un des arguments en faveur de la recherche d'alternatives à MySQL.

SQLite

SQLite

SQLite est un projet à suivre. Il gagne des partisans et de la popularité. Le projet SQLite est en cours de développement depuis 2000. En 2018, 19,7 % des développeurs professionnels utilisaient cette base de données ; en 2020, ils étaient plus de 30 %. Ce n'est pas une coïncidence.

SQLite est un SGBD open-source qui présente d'excellentes fonctionnalités et dont l'utilisation est gratuite. Si PostgreSQL ou MS SQL sont des systèmes de base de données plus "classiques", SQLite est le plus fréquemment choisi par les développeurs d'applications mobiles. Pourquoi ? Principalement en raison de ses capacités et de ses caractéristiques.

Les données sont stockées dans un fichier pouvant atteindre 140 To. La bibliothèque met en œuvre le moteur SQL, ce qui permet à l'application d'utiliser la base de données sans exécuter un processus distinct. Cela signifie que tout fonctionne rapidement et efficacement, ce qui est crucial pour les applications Web. Chaque milliseconde compte.

SQLite est basé sur la norme SQL-92. Cela signifie que vous serez en mesure de travailler avec lui après avoir suivi notre parcours SQL de A à Z. Bien sûr, SQLite a ses inconvénients et n'est donc pas une solution universelle. Mais il a déjà pris sa place sur le marché et n'est pas prêt de disparaître.

Dépasser les termes SQL pour débutants

Voici un nouvel épisode de la liste des concepts SQL de base que vous devez connaître. J'espère que ma traduction vous a aidé à les comprendre. Je sais qu'il ne s'agit pas toujours de définitions précises ou scientifiques, mais en tant qu'ancien débutant, je sais aussi que, parfois, les définitions précises ou scientifiques ne sont pas d'une grande aide au début.

Si vous avez des problèmes avec d'autres termes SQL, faites-le moi savoir dans les commentaires.