Retour à la liste des articles Articles
12 minutes de lecture

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

Voici la deuxième partie de ma liste de termes SQL essentiels pour les débutants. Dans la première partie, vous avez appris ce que sont une table, une base de données relationnelle et une requête. Maintenant, il est temps de passer à des termes de base de données plus avancés. Mais n'ayez pas peur ! Je ne vous écraserai pas 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 mon article précédent, Les termes SQL que les débutants doivent connaître. N'oubliez pas d'ajouter cet article à vos favoris. Il constituera une source d'informations utile.

Sans plus attendre, voici d'autres termes SQL que vous devez connaître.

Termes SQL

Alias

Un alias est un nom que nous pouvons définir pour une colonne ou une table spécifique dans une requête SQL. En général, nous utilisons des alias pour nous faciliter la vie : pour afficher un nom de colonne plus lisible ou pour raccourcir un long nom de table.

Notre tableau peut porter un nom pratique comme order. Mais que se passe-t-il si notre tableau s'appelle orders_january_2020_shipped? Et si c'était encore plus long et plus compliqué ?

Il serait peu pratique d'écrire le nom complet de la table chaque fois que nous y faisons référence. Par exemple, pour faire référence à la colonne confirmed_payment dans la table mentionnée ci-dessus, nous devrions taper orders_january_2020_shipped.confirmed_payment.

Cependant, vous pouvez utiliser la clause AS pour définir un alias, dans ce cas, jpour orders_january_2020_shipped. Maintenant, il sera plus facile d'indiquer les commandes déjà payées : j.confirmed_payment.

Vous pouvez également utiliser un alias si vous écrivez une requête SQL longue et complexe. Par exemple, vous pouvez inclure ceci dans votre requête : j.confirmed_payment AS jcp. Maintenant, pour le reste de la requête, vous pouvez simplement utiliser jcp au lieu de j.confirmed_payment.

Attention toutefois à ne pas vous perdre dans ces noms.

Bon, je vous ai peut-être un peu embrouillé. Laissez-moi vous donner un exemple pour vous montrer ce que je veux dire.

SELECT column as c
FROM table as t
WHERE t.c = "something";

N'oubliez pas qu'un alias n'existe que pour la durée de la requête. Si vous écrivez plus tard une autre requête, distincte, vous pouvez nommer les colonnes ou les tables différemment.

Les alias en SQL sont très pratiques, et il vaut la peine de savoir comment les utiliser. Vous les apprécierez probablement davantage lorsque vous travaillerez avec Les jointures en SQL.

Nulle

NULL indique que la valeur de la donnée dans une cellule spécifique de la table est manquante ou inconnue. Il est important de comprendre ce qu'est NULL et quand il est utilisé. Sans une bonne compréhension de NULL, il vous sera difficile de travailler avec des bases de données.

Tout d'abord, une chose dont vous devez absolument vous souvenir : NULL n'est pas 0, et il ne signifie pas vide ! NULL se produit lorsque la valeur d'une cellule de tableau donnée est inconnue ou indéterminée.

NULL Les valeurs peuvent être appliquées à n'importe quel type de données : entiers, dates, valeurs VARCHAR ou tout autre type de données. Mais nous devons être prudents lorsque nous utilisons NULL. Lorsque vous utilisez des opérations de comparaison, y compris les opérateurs NULL, le résultat sera toujours NULL.

Lors de l'apprentissage de NULL, le sujet de la logique à trois valeurs est abordé. Vous voulez savoir ce que c'est ? Lisez l'article Comprendre l'utilisation de NULL dans la logique à trois valeurs de SQL pour en savoir plus.

La jointure

JOIN est un opérateur SQL qui vous permet de combiner les données de deux ou plusieurs tables. Il concatène généralement les lignes ayant des valeurs égales pour des colonnes spécifiques. Si vous savez déjà ce que sont les clés primaires et les clés étrangères, la fonction JOIN permet de les relier.

Les différents types de JOIN renvoient des résultats différents. Voici plusieurs types de JOIN:

  • Inner JOIN renvoie toutes les lignes des deux tables qui correspondent à la condition indiquée.
  • Left JOIN renvoie toutes les lignes de la table de gauche dont les valeurs correspondent à celles de la table de droite. Si l'une des lignes n'a pas de valeurs correspondantes dans la table de droite, NULL apparaît.
  • Lajointure à droite renvoie le même résultat que ci-dessus, mais dans l'autre sens. Le résultat sera toutes les lignes de la table de droite avec les valeurs correspondantes de la table de gauche, ainsi que NULL s'il n'y a pas de correspondance.
  • Full JOIN renvoie toutes les lignes des deux tables.
  • Lajointure croisée renvoie toutes les combinaisons de lignes des deux tables. Voici un guide illustré sur le SQL Cross JOIN.

Voici d'autres cas d'utilisation de JOIN:

Pour en savoir plus et vous entraîner à joindre des tables, consultez notre cours interactif. Les jointures en SQL cours interactif. Nous disposons également d'un excellent aide-mémoire SQL JOIN. Mettez-la en signet dans votre navigateur. Vous y reviendrez souvent.

Clé primaire

Toutes les colonnes n'ont pas le même rôle. Certaines colonnes sont des identifiants primaires pour la table en question : elles ont des valeurs différentes dans chaque ligne. Cette colonne est appelée la clé primaire.

Une clé primaire est utilisée pour identifier les lignes, et l'unicité d'un enregistrement donné garantit qu'aucun doublon n'apparaîtra dans la table. Si vous essayez d'insérer une nouvelle ligne avec une valeur en double dans la colonne de la clé primaire, cette ligne sera rejetée par la base de données.

Par exemple, imaginez la table orders table. Il est fort probable qu'elle contienne des colonnes telles que product, customer, purchase_date, etc. Toutefois, pour que tout soit plus clair et plus facile, il est utile d'avoir une colonne order_id. Chaque ligne aura son propre identifiant unique. Ce sera votre clé primaire.

Ceci est très important ! Aucune cellule de la colonne de clé primaire ne peut être vide. Cette colonne ne peut pas non plus contenir les valeurs NULL. Pour vous rafraîchir la mémoire sur NULL, consultez la section ci-dessus.

Pour la table orders une ligne avec une valeur NULL dans la colonne order_id sera rejetée par la base de données. En d'autres termes, les clés primaires garantissent que toutes les lignes de la table ont des valeurs uniques et non nulles dans la colonne de la clé primaire. En d'autres termes, s'il en était autrement, il est fort probable que toutes les commandes n'aboutiraient pas chez vos clients.

Vous voulez en savoir plus sur les clés primaires ? Lisez Qu'est-ce qu'une clé primaire en SQL ? Cet excellent article contient presque tout ce que vous devez savoir sur le sujet.

Clé étrangère

C'est l'un de ces concepts qui semble difficile et abstrait, mais qui est en fait simple. Les clés étrangères sont un concept central dans les bases de données SQL. Elles nous aident à maintenir l'intégrité des données et fonctionnent généralement avec les clés primaires pour JOIN deux tables.

Imaginez deux tables : product et customers. Les deux auront très probablement la colonne product_id, que nous pouvons utiliser pour relier le produit à une personne spécifique qui l'a commandé. Dans la deuxième table, nous appellerons cette colonne la clé étrangère. La clé étrangère vérifie si la table parente (celle qui contient la clé primaire) possède une telle valeur.

Vous voulez en savoir plus sur les clés étrangères ? Je vous recommande l'ouvrage What is a Foreign Key in SQL ? de mon collègue Ignacio.

Si vous voulez maîtriser les clés étrangères en créant des tables et leur structure, je vous recommande les cours SQL interactifs de Creating Database Structure. Ces cinq cours comportent plus de 330 exercices au total. Si vous envisagez une carrière d'ingénieur en données, c'est parfait pour vous.

Contrainte SQL

Vous savez déjà que les tables des bases de données relationnelles doivent avoir une structure spécifique. Cependant, il arrive que vous ayez besoin d'ajouter des restrictions supplémentaires à certaines colonnes.

Par exemple, dans la table customer de votre entreprise, les colonnes first_name, last_name, et client_id ne peuvent pas être vides. En outre, la colonne email_adress doit avoir des valeurs uniques. C'est là que les contraintes SQL sont utiles.

  • Not Null garantit qu'aucune des valeurs de la colonne n'est vide (c'est-à-dire qu'elle ne peut pas contenir une valeur NULL ).
  • Unique garantit que la colonne ne contient pas de valeurs en double (c'est-à-dire que toutes les valeurs de la colonne doivent être uniques).
  • Laclé primaire garantit que chaque valeur de colonne identifie de manière unique chaque ligne de la table.
  • Clé étrangère garantit qu'une colonne est liée à la clé primaire d'une colonne dans une autre table.
  • Check vérifie la condition qui suit.
  • Default garantit l'existence d'une valeur par défaut dans la colonne. Cette valeur est utilisée lorsque l'utilisateur ne saisit pas de valeur dans la colonne.

Grâce aux contraintes SQL, vos tables contiendront des données correctes qui seront plus faciles à analyser par la suite. Pour plus d'informations et d'exemples sur l'utilisation des contraintes SQL, consultez la rubrique Qu'est-ce qu'une contrainte SQL ?

Sous-requête

En gros, une sous-requête est une requête SQL à l'intérieur d'une autre requête SQL. Au lieu de diviser votre projet en de nombreux petits éléments, vous pouvez écrire une seule requête SQL logique pour effectuer le travail.

La puissance des sous-requêtes est sous-estimée. De nombreux utilisateurs ont peur d'utiliser des sous-requêtes, même si elles sont simples et utiles.

Il existe plusieurs types de sous-requêtes SQL :

  • Lessous-requêtes scalaires renvoient une seule valeur, ou exactement une ligne et exactement une colonne. On les trouve le plus souvent dans les clauses WHERE, où elles permettent de filtrer les résultats de la requête principale.
  • Lessous-requêtes à rangées multiples renvoient une colonne et plusieurs rangées. Elles sont généralement utilisées avec des opérateurs tels que IN, NOT IN, ANY, ALL, EXISTS ou NOT EXISTS.
  • Lessous-requêtes corrélées sont intéressantes. La requête interne s'appuie sur les informations obtenues à partir de la requête externe.

Il existe de nombreuses combinaisons et possibilités de sous-requêtes. Vous voulez en savoir plus ? Consultez le Guide du débutant pour les sous-requêtes SQL de mon collègue Ignacio. Si vous voulez approfondir les types de sous-requêtes, lisez Quels sont les différents types de sous-requêtes SQL ?

Je ne peux pas bien expliquer les sous-requêtes SQL en si peu de mots. Prenez le temps de bien les apprendre. Vous pouvez le faire avec notre SQL pour les débutants cours. Vous pouvez également regarder des clips sur notre chaîne YouTube We Learn SQL, dans lesquels mon ami Adrian vous explique tout sur les sous-requêtes SQL. N'oubliez pas de vous abonner et de lui donner un coup de pouce !

Outils de base de données

Je suppose que vous rencontrerez parfois des termes liés aux solutions et aux outils permettant de travailler avec des bases de données. J'en ai choisi trois importants pour vous les présenter.

MS SQL Server

MS SQL Server

Dans l'article précédent, je vous ai parlé du SGBD. Si vous ne vous souvenez pas de ce que c'est, vous pouvez revenir en arrière et le découvrir. En bref, il s'agit d'un programme permettant de travailler avec des bases de données.

L'un des SGBD les plus populaires au monde est MS SQL Server. Son principal inconvénient est que la version complète est payante.

SQL Server 2019, nom de code Aris, est la 15e et dernière édition de cet outil. La première édition a été créée en 1989. C'est l'outil de base de données phare, mais pas le seul, du géant informatique de Redmond.

MS SQL Server est basé sur Transact-SQL (T-SQL), qui est une extension de la norme ANSI/ISO. T-SQL est un SQL standard dans lequel certaines choses sont définies de manière légèrement différente.

Du point de vue de l'utilisateur occasionnel, il n'y a pas de grandes différences. Si vous pouvez utiliser SQL Standard, vous serez en mesure d'utiliser T-SQL tout aussi bien. Vous pouvez vérifier les différences dans la documentation.

Si vous souhaitez apprendre à écrire des requêtes SQL dans MS SQL Server dès maintenant, je vous recommande ce cours interactif SQL pour les débutants in MS SQL Server. Vous apprendrez les bases nécessaires et maîtriserez suffisamment la syntaxe pour écrire vos propres requêtes grâce à 131 exercices.

Vous n'êtes pas convaincu d'utiliser un SGBD et vous avez encore du mal avec le traitement des données dans Excel? Ce programme ne me dérange pas. C'est un puissant outil multitâche. Mais il a ses limites. Alors, pourquoi ne pas utiliser MS SQL Server ? Mon collègue Roman vous aidera à répondre à cette question dans son article sur les avantages et inconvénients de Microsoft SQL Server.

PostgreSQL

PostgreSQL

PostgreSQL, également appelé Postgres, est un autre excellent outil de SGBD. Dans mes articles, j'ai admis à plusieurs reprises que c'est mon préféré. Pourquoi ? Premièrement, il est open source, ce qui signifie qu'il est gratuit.

Ensuite, il est soutenu par une énorme communauté. Des développeurs passionnés du monde entier ajoutent chaque jour de nouvelles extensions et de nouveaux correctifs. C'est l'une des communautés informatiques les plus actives du Web. Vous pouvez être sûr que si vous avez des problèmes, quelqu'un vous aidera.

Mais vous n'êtes pas obligé de me croire sur parole. Découvrez qui utilise PostgreSQL en lisant Quelles sont les grandes entreprises qui utilisent PostgreSQL ? Dans quel but l'utilisent-elles ?

Vous pouvez facilement utiliser PostgreSQL dans tout projet lié au travail avec des bases de données relationnelles. Sérieusement, c'est un outil brillant.

Si vous êtes complètement novice, commencez par SQL pour les débutants dans PostgreSQL. Vous y apprendrez les bases nécessaires pour commencer à travailler avec PostgreSQL. Ensuite, je vous recommande le parcours La pratique du SQL in PostgreSQL. Il vous sera utile avant l'entretien, avant l'examen, ou simplement lorsque vous voudrez revoir Postgres.

PostGIS

PostGIS

L'une des extensions PostgreSQL les plus intéressantes est PostGIS. Il s'agit d'une extension qui vous permet de stocker et de traiter des données géographiques dans PostgreSQL.

Les jeux de données géographiques (comme les coordonnées de points sur une carte ou les limites de zones) peuvent être énormes. Il s'agit souvent de téraoctets de données auxquelles il serait autrement difficile d'accéder.

Grâce à PostGIS, cela peut être fait assez facilement et, surtout, rapidement. Ce qui prendrait normalement des heures peut maintenant ne prendre que quelques secondes.

Vous voulez un exemple de site utilisant PostGIS? OpenStreetMap en est un.

Si cela vous semble de la magie noire, je vous recommande ce cours PostGIS. C'est l'un des meilleurs cours de ce type sur le marché. C'était notre cours du mois sur LearnSQL.fr, et j'en ai parlé avec sa co-créatrice, Agnieszka Kozubek-Krycuń, qui est Chief Content Officer chez Vertabelo.