GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

Langage SQL

0. Introduction


Les bases de données relationnelles existent depuis de nombreuses années et permettent de structurer les informations de masse. Un langage spécifique a été développé pour permettre de réaliser des interrogations sur ces données. Ce langage est SQL (Structured Query Language).

Il permet de réaliser un certain nombre d'actions sur les bases de données, telles que des requêtes (lecture), des mises à jour et des insertions de données (écriture).

Source W3 Schools : https://www.w3schools.com/sql
Documentation intéressante sur SQL : https://sql.sh
Autre documentation importante : https://www.zentut.com/sql-tutorial

0. Table des matières

SELECT et les jointures


Le langage SQL permet la récupération de données depuis une ou plusieurs tables en fonction de critères d'égalité inclusive, semi inclusive ou exclusive. Lorsque plusieurs tables sont utilisées, nous utilisons le principe des jointures SQL.

Pour tous les exemples qui vont suivre, nous utiliserons deux tables mais le principe est strictement le même quel que soit le nombre de tables.

INNER JOIN / Jointure interne

La jointure interne est la plus générale et consiste à renvoyer les enregistrements qui ont des valeurs à la fois dans les deux tables. Si des enregistrements existent dans la table1 mais pas de correspondance dans la table2 alors ils ne seront pas renvoyés.

L'autre façon d'écrire une jointure interne est d'utiliser la notation explicite par l'intermédiaire de la clause WHERE de l'instruction SELECT.

SELECT colonnes
FROM Table1, Table2
WHERE Table1.nom_colonne = Table2.nom_colonne;

LEFT JOIN / Jointure Gauche

La jointure gauche renvoie tous les enregistrements de la table de gauche dans la requête ainsi que les enregistrements de la table de droite même si leur valeur est nulle.

En utilisant le mode strict de la jointure gauche, vous pouvez obtenir strictement uniquement les enregistrements de Table1 qui sont définis dans Table2.

RIGHT JOIN / Jointure Droite

La jointure droite réalise exactement l'inverse à savoir renvoie tous les éléments de la table de droite de la requête qui ont des valeurs, même nulles dans la table de gauche.

En utilisant le mode strict de la jointure droite, vous pouvez obtenir strictement uniquement les enregistrements de Table2 qui sont définis dans Table1.

OUTER JOIN / Jointure externe

La jointure externe permet de renvoyer l'ensemble des enregistrements des tables entrant dans la requête, quelle que soit la valeur de l'une ou l'autre valeur de comparaision.

FULL EXCLUSIVE OUTER JOIN / Jointure exclusive externe

La jointure exclusive externe permet de renvoyer l'ensemble des enregistrements des tables entrant dans la requête, uniquement pour celles définies soit dans l'une soit dans l'autre table.