Retour à la liste des articles Articles
23 minutes de lecture

Aide-mémoire pour les entretiens SQL

Vous avez besoin de vous référer rapidement à toutes les connaissances fondamentales pour un entretien SQL ? Vous voulez vous rafraîchir la mémoire sur un concept SQL ? Notre aide-mémoire pour les entretiens SQL est votre nouveau meilleur ami !

La préparation d'un entretien SQL nécessite une mise à niveau de votre SQL. Mais il est très facile de se perdre dans tous les concepts SQL que vous devez réviser. Dans de telles situations, vous avez besoin d'une ressource facilement consultable et remplie de connaissances SQL. C'est pourquoi nous avons créé cet aide-mémoire pour les entretiens SQL. Si vous avez besoin de vous référer rapidement aux concepts SQL de base, cette antisèche est faite pour vous !

Si vous avez besoin d'un peu plus qu'une simple remise à niveau rapide, envisagez de suivre notre SQL pour les débutants cours. Il vous enseigne les principes fondamentaux du langage SQL, de la récupération de données à la création de rapports simples, à l'aide de 129 défis de codage. Vous pouvez ensuite consolider vos connaissances en vous exerçant sur les 1 190 défis de codage de notre La pratique du SQL piste. Vous serez alors prêt pour n'importe quel entretien SQL !

Sans plus attendre, plongeons dans notre antisèche sur les entretiens SQL. Nous commencerons par la question la plus élémentaire :

Qu'est-ce que le langage SQL ?

Le langage de requête structuré, ou SQL, est un langage de programmation conçu pour manipuler des données dans des bases de données. Il permet aux utilisateurs d'interroger, d'ajouter, de modifier, d'enregistrer et de supprimer des données dans une base de données. Il peut également être utilisé pour créer et modifier les structures des bases de données.

Informations sur les tables SQL

Terme Explication
Tableau Objet de base de la base de données. Constituée de lignes et de colonnes, elle stocke des données sur un sujet particulier (par exemple, une table "employés" stocke des données sur les employés d'une entreprise).
Colonnes (ou attributs) Comme les colonnes d'un tableur, les colonnes d'une table contiennent des détails sur l'objet de la base de données (par exemple, la colonne "ID" stocke les numéros d'identification des employés).
Lignes (ou enregistrements) Comme les lignes d'une feuille de calcul, les lignes d'un tableau contiennent des données relatives à une seule instance du sujet de la base de données (par exemple, une ligne enregistre toutes les données relatives à un employé).
Champs Comme une cellule dans une feuille de calcul, un champ est l'intersection entre une colonne et une ligne. Il stocke une donnée, par exemple le numéro d'identification d'un employé.
Types de données Définit le type de données pouvant être stockées dans chaque colonne.

Voici une visualisation de la terminologie ci-dessus.

Aide-mémoire pour les entretiens SQL

Commandes SQL

Terme Explication
Requête Une instruction SQL qui récupère des données, c'est-à-dire une instruction SELECT.
Déclaration Une commande qui peut être exécutée sur la base de données ; c'est l'élément de base du langage SQL.
Déclarations DDL Les instructions DDL (Data Definition Language)créent et modifient les objets de la base de données, tels que les tables ou les index. DDL est un sous-ensemble de SQL.
Déclarations DCL Les instructions du langage de contrôle des donnéesdonnent ou retirent des droits d'accès à certaines parties de la base de données. DCL est un sous-ensemble de SQL.
Déclarations DML Les instructions du langage de manipulation des donnéespermettent de manipuler les informations contenues dans une base de données. DML est un sous-ensemble de SQL. Les instructions DML les plus courantes sont les suivantes
INSERT Insère une ou plusieurs nouvelles lignes de données dans une table.
UPDATE Modifie les valeurs existantes d'une colonne de tableau.
DELETE Supprime une ou plusieurs lignes du tableau.
Déclarations DQL Les instructionsData Query Languagepermettent d'extraire des données d'une base de données ( SELECT ).
SELECT Permet d'extraire des données d'une ou de plusieurs tables d'une base de données.

Requêtes SQL

Clauses de base d'une requête SQL

SELECT est l'instruction la plus couramment utilisée dans les requêtes SQL. Cette requête SQL typique peut également inclure plusieurs clauses qui permettent d'affiner les résultats de la requête. Voici la syntaxe d'une requête SQL :

SELECT column_1, 
 column_2, 
 aggregate_function(column_3),
 …
FROM table_1
JOIN table_2 
ON table_1.common_column = table_2.common_column
WHERE column_1 <condition>
GROUP BY column_1, column_2, …
HAVING aggregate_function(column_3) <condition>
ORDER BY column_1 [ASC|DESC];

Voici une explication et un exemple de chaque clause :

Clause SQL Explication Exemple de code Sortie du code
FROM Définit la table à partir de laquelle les données doivent être extraites.
SELECT 
  first_name, 
  last_name
FROM employees;
Renvoie les noms et prénoms des employés à partir de la table employees.
JOIN Joint les données de deux tables ou plus afin que vous puissiez les interroger comme une seule table.
SELECT 
  e.first_name,
  e.last _name,
  d.name
FROM employees e
JOIN department d
ON e.department_id = d.id;
Joint les tables employees et department sur l'ID du département. Renvoie les noms et prénoms des employés ainsi que le nom de leur service.
WHERE Filtre les enregistrements avant l' agrégation et ne renvoie que ceux qui satisfont à la condition énoncée.
SELECT 
  first_name,
  last_name
FROM employees
WHERE last_name = 'Smith';
Renvoie les noms et prénoms de tous les employés dont le nom de famille est Dupont dans la table employees.
GROUP BY Regroupe les résultats de la requête en fonction des valeurs des colonnes partagées. Souvent utilisé avec les fonctions d'agrégation.
SELECT 
  nationality,
  AVG(salary)
FROM employees
GROUP BY nationality;
Renvoie le salaire moyen des employés pour chaque nationalité.
HAVING Filtre les enregistrements après l' agrégation et ne renvoie que ceux qui satisfont à la condition énoncée.
SELECT 
  nationality,
  AVG(salary)
FROM employees
GROUP BY nationality
HAVING AVG(salary) > 5000;
Renvoie le salaire moyen des employés pour chaque nationalité - mais uniquement pour les nationalités où le salaire moyen est supérieur à 5 000.
ORDER BY Trie le résultat dans l'ordre croissant (1-10, A-Z) ou décroissant (10-1, Z-A) selon les valeurs de la ou des colonnes données.
SELECT 
  first_name,
  last_name
FROM employees
ORDER BY last_name ASC;
Renvoie les noms et prénoms des employés et trie le résultat par ordre alphabétique des noms des employés.

JOINs

JOIN est une clause SQL qui joint deux tables ou plus, permettant de récupérer les données de toutes les tables jointes.

Vous trouverez des explications et des représentations des différents types de JOIN dans le graphique ci-dessous.

JOIN INNER : renvoie uniquement les lignes correspondantes des tables jointes.

Aide-mémoire pour les entretiens SQL

JOINTE DE GAUCHE (OUTER) : renvoie toutes les lignes de la première table (gauche) et uniquement les lignes correspondantes de la deuxième table (droite). Les valeurs non correspondantes de la table de droite sont affichées en tant que NULL.

Aide-mémoire pour les entretiens SQL

JOINTE DE DROITE (OUTER) : renvoie toutes les lignes de la deuxième table (droite) et uniquement les lignes correspondantes de la première table (gauche). Les valeurs non correspondantes de la table de gauche sont affichées en tant que NULL.

Aide-mémoire pour les entretiens SQL

FULL (OUTER) JOIN : renvoie toutes les lignes de la table de gauche et de la table de droite. Les valeurs non appariées de l'une ou l'autre table sont affichées en tant que NULL.

Aide-mémoire pour les entretiens SQL

Agrégation en SQL

L'agrégation consiste à effectuer des calculs sur plusieurs lignes et à renvoyer une valeur unique qui représente un résumé ou un résultat statistique. Elle est également connue sous le nom d'agrégation de lignes, par exemple en comptant les lignes, en calculant la moyenne ou la somme par groupe de lignes, etc.

Comment effectuer une agrégation de données en SQL : Cette opération est réalisée à l'aide des fonctions d'agrégation de SQLIl suffit de passer l'argument entre les parenthèses de la fonction. En d'autres termes, écrivez le nom de la colonne que vous souhaitez agréger :

SELECT aggregate_function (column_name) 
FROM table_name;

GROUP BY : L'agrégation est généralement effectuée en conjonction avec la clause GROUP BY. GROUP BY organise les lignes ayant les mêmes valeurs de colonne en un seul groupe. La combinaison des fonctions d'agrégation avec GROUP BY vous permet d'afficher des étiquettes à côté des valeurs agrégées, comme dans le graphique ci-dessous :

Aide-mémoire pour les entretiens SQL

HAVING : La clause HAVING filtre les groupes en fonction du résultat d'une fonction d'agrégation; seuls les enregistrements qui satisfont à la condition sont affichés dans la sortie.

Voici un exemple de son fonctionnement :

Aide-mémoire pour les entretiens SQL

Fonctions d'agrégation : Les fonctions d'agrégation les plus courantes sont énumérées ci-dessous. Vous trouverez plus d'informations sur les fonctions agrégées dans notre Aide-mémoire sur les fonctions agrégées SQL.

Fonction agrégée Explication de la fonction Exemple de code Sortie du code
COUNT() Compte le nombre de lignes.
SELECT 
  country,
  COUNT(id)
FROM orders
GROUP BY country;
Renvoie le nombre de commandes de chaque pays dans le tableau.
AVG() Calcule la valeur moyenne.
SELECT 
  country,
  AVG(value)
FROM orders
GROUP BY country;
Renvoie la valeur moyenne de la commande par pays.
SUM() Calcule la somme des valeurs.
SELECT 
  country,
  SUM(value)
FROM orders
GROUP BY country;
Totalise la valeur des commandes par pays.
MIN() Retourne la plus petite valeur.
SELECT 
  country,
  MIN(value)
FROM orders
GROUP BY country;
Retourne la valeur de commande la plus basse par pays.
MAX() Retourne la valeur la plus élevée.
SELECT 
  country,
  MAX(value)
FROM orders
GROUP BY country;
Retourne la valeur de la commande la plus élevée par pays.

Pour en savoir plus sur GROUP BY et les fonctions d'agrégation, consultez notre article GROUP BY and Aggregate Functions : Une vue d'ensemble complète.

Opérateurs d'ensemble

Les opérateurs d'ensemble de SQL combinent les résultats d'une ou de plusieurs instructions en un seul résultat. SELECT en une seule sortie.

Opérateur Set Explication
UNION Affiche uniquement les lignes uniques (non dupliquées) de toutes les sorties de l'instruction SELECT.
UNION ALL Affiche toutes les lignes de tous les résultats des instructions SELECT, y compris les doublons.
INTERSECT Affiche uniquement les lignes qui existent dans les sorties de toutes les instructions SELECT.
MINUS or EXCEPT Renvoie les lignes de la première sortie SELECT qui n'existent pas dans d'autres sorties SELECT.

Sous-requêtes

SELECT Les requêtes qui sont intégrées dans une autre requête SQL sont appelées sous-requêtes.

Elles peuvent être utilisées dans les instructions principales suivantes :

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

Les clauses qui acceptent les sous-requêtes sont les suivantes :

  • SELECT
  • FROM
  • WHERE
  • HAVING
  • JOIN

Les types de sous-requêtes sont les suivants :

  • Scalaire - Renvoie exactement une valeur.
  • Multi-rangée - renvoie plusieurs valeurs.
  • Corrélée - Fait référence à la requête principale.

L'infographie ci-dessous présente les différents types de sous-requêtes.

Exemple 1 : Sous-requête scalaire

Aide-mémoire pour les entretiens SQL

Exemple 2 : Sous-requête à plusieurs lignes

Aide-mémoire pour les entretiens SQL

Exemple 3 : Sous-requête corrélée

Aide-mémoire pour les entretiens SQL

Opérateurs de sous-requête : Les sous-requêtes sont généralement utilisées avec plusieurs opérateurs qui vous permettent de comparer les données de la requête principale avec le résultat de la sous-requête.

Opérateur de sous-requête Explication
ANY ou SOME Renvoie VRAI si une valeur d'une sous-requête satisfait à la condition de la requête principale.
ALL Retourne VRAI si toutes les valeurs d'une sous-requête satisfont à la condition de la requête principale.
EXISTS Retourne VRAI si une sous-requête renvoie des lignes.
IN Renvoie toutes les valeurs de la requête principale qui peuvent être trouvées dans la sous-requête qui renvoie plusieurs valeurs, c'est-à-dire une liste de valeurs.

Opérateurs et expressions SQL

Les opérateurs SQL sont utilisés pour les comparaisons, les opérations arithmétiques et logiques.

Les expressions sont constituées d'une ou plusieurs valeurs, d'opérateurs, de fonctions et d'autres composants de requête qui calculent des valeurs et créent des conditions. L'expression la plus courante est CASE WHEN.

Opérateurs de comparaison

Les opérateurs de comparaison sont utilisés pour comparer des valeurs au sein d'une requête.

Opérateur de comparaison Explication Exemple de code Sortie du code
= Les deux valeurs sont égales ou correspondantes.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary = 5000;
Renvoie tous les employés dont le salaire est exactement égal à 5 000.
< Inférieur (plus petit) à la valeur comparée.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary < 5000;
Renvoie tous les employés dont le salaire est inférieur à 5 000.
<= Inférieur ou égal à la valeur comparée.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary <= 5000;
Renvoie tous les employés dont le salaire est inférieur ou égal à 5 000.
> Supérieur (plus haut, plus grand) à la valeur comparée.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary > 5000;
Renvoie tous les employés dont le salaire est supérieur à 5 000.
>= Supérieur ou égal à la valeur comparée.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary >= 5000
Renvoie tous les employés dont le salaire est supérieur ou égal à 5 000.
<> Les valeurs ne sont pas égales ou ne correspondent pas.
SELECT 
  first_name,
  last_name
FROM employees
WHERE salary <> 5000;
Renvoie tous les employés dont le salaire n'est pas de 5 000.
BETWEEN Vérifie si la valeur est comprise dans l'intervalle spécifié. L'opérateur est inclusif, ce qui signifie que les valeurs égales aux valeurs supérieures et inférieures de l'intervalle sont incluses.
SELECT 
  first_name, 
  last_name
FROM employees
WHERE salary BETWEEN 5000 
  AND 6000;
Renvoie tous les salariés dont le salaire est compris entre 5 000 et 6 000, y compris ceux dont le salaire est exactement de 5 000 ou 6 000.
LIKE Vérifie si la valeur correspond à la chaîne de caractères (texte) donnée. Important : cet opérateur est sensible à la casse.
SELECT 
  first_name,
  last_name
FROM employees
WHERE last_name LIKE 'van%';
Renvoie tous les employés dont le nom de famille commence par "van", comme "van Basten" et "vanBeek". Ne comprend pas 'Vandeley', puisque la recherche est sensible à la casse.
ILIKE Vérifie si la valeur correspond à un modèle de chaîne (insensible à la casse).
SELECT 
  first_name,
  last_name
FROM employees
WHERE last_name ILIKE 'van%';
Renvoie tous les employés dont le nom de famille commence par "van", comme "van Basten", "vanBeek" et "Vandeley" - la recherche n'est pas sensible à la casse.
IS NULL vérifie si la valeur est NULL.
SELECT 
  first_name,
  last_name
FROM employees
WHERE end_date IS NULL;
Renvoie tous les salariés qui sont encore dans l'entreprise, c'est-à-dire dont la date de fin d'emploi est NULL.
IS NOT NULL Vérifie que la valeur n'est pas NULL.
SELECT 
  first_name,
  last_name
FROM employees
WHERE end_date IS NOT NULL;
Renvoie tous les ex-salariés, c'est-à-dire les enregistrements dont la date de fin d'emploi n'est pas NULL.
IN Vérifie si la (les) valeur(s) peut (peuvent) être trouvée(s) dans la liste de valeurs donnée.
SELECT 
  first_name,
  last_name
FROM employees
WHERE city IN (
  'New York', 
  'Los Angeles', 
  'Baltimore');
Renvoie tous les employés qui vivent à New York, Los Angeles ou Baltimore.

Opérateurs arithmétiques

Les opérateurs arithmétiques sont utilisés pour effectuer des opérations mathématiques en SQL.

Opérateur arithmétique Explication Exemple de code Sortie du code
+ Ajoute des valeurs.
SELECT 
  first_name,
  last_name,
  salary + bonus
FROM employees;
Renvoie les noms des employés et calcule leur rémunération totale, c'est-à-dire la somme de leur salaire et de leur prime.
- Soustrait des valeurs.
SELECT 
  first_name,
  last_name,
  vacation_days - used_vacation_day
FROM employees;
Renvoie les noms des employés et calcule leurs jours de vacances restants, c'est-à-dire la différence entre le nombre total de jours de vacances et le nombre de jours de vacances utilisés.
* Multiplie les valeurs.
SELECT 
  first_name,
  last_name,
  salary*1.03
FROM employees;
Renvoie les noms des employés et calcule leur salaire après une augmentation de 3 %, c'est-à-dire le produit de leur salaire actuel et de 1,03.
/ Divise les valeurs.
SELECT 
  first_name,
  last_name,
  salary/12
FROM employees;
Renvoie les noms des employés et calcule leur salaire mensuel, c'est-à-dire leur salaire annuel divisé par 12.
** Augmente un nombre à la puissance d'un autre.
SELECT 
  first_name,
  last_name,
salary * 1.05 ** 3
FROM employees;
Renvoie les noms des employés et calcule leur salaire après trois ans d'augmentations annuelles de 5 %, c'est-à-dire le produit de leur salaire actuel et de 1,05 à la puissance 3.
% Renvoie le reste de la division (opérateur modulo).
SELECT 
  first_name,
  last_name
FROM employees
WHERE id % 2 = 0;
Renvoie tous les salariés dont l'ID est un nombre pair (car le reste lorsque l'ID est divisé par deux est égal à zéro).

Opérateurs logiques

Les opérateurs logiques combinent plusieurs conditions.

Opérateur logique Explication Exemple de code Sortie du code
AND Vérifie si les deux conditions sont remplies.
SELECT 
  first_name,
  last_name
FROM employees
WHERE department = 'IT' 
  AND salary > 5000;
Renvoie tous les employés qui travaillent dans l'informatique et dont le salaire est supérieur à 5 000.
OR Vérifie si l'une ou l'autre condition est remplie.
SELECT 
  first_name,
  last_name
FROM employees
WHERE department= 'IT' 
  OR salary > 5000;
Renvoie tous les employés qui travaillent dans l'informatique ou dont le salaire est supérieur à 5 000.
NOT Vérifie si la condition donnée n'est pas satisfaite.
SELECT 
  first_name,
  last_name
FROM employees
WHERE NOT department = 'IT';
Renvoie tous les employés qui ne travaillent pas dans l'informatique.

CASE WHEN

CASE WHEN est une expression conditionnelle qui renvoie des valeurs spécifiées dans les cas où la condition est ou n'est pas remplie. Il s'agit de l'implémentation par SQL de la logique IF-THEN.

La syntaxe de CASE WHEN est la suivante :

CASE 
    WHEN condition_1 THEN value_1
    WHEN condition_2 THEN value_2
    ...
    ELSE default_value
END;
  • CASE lance l'expression.
  • WHEN spécifie la condition qui doit être remplie.
  • THEN spécifie la valeur qui sera renvoyée si la condition est remplie.
  • ELSE spécifie la valeur qui sera renvoyée si la condition n'est pas remplie.
  • END met fin à l'expression.

Fonctions SQL

Les fonctions SQL sont des éléments de code nommés et prédéfinis qui peuvent être utilisés dans une requête SQL. Ces fonctions acceptent des arguments (écrits entre les parenthèses de la fonction) qui indiquent à la fonction comment ou où s'exécuter.

Les types de base des fonctions SQL sont les suivants

Fonctions de texte

Fonction texte Explication Exemple de code Sortie de code
CONCAT() Concatène deux ou plusieurs chaînes de caractères en une seule.
SELECT 
  CONCAT(first_name, 
    ' ', last_name)
FROM employees;
Concatène les noms et prénoms des employés de deux colonnes distinctes en une seule chaîne affichée dans une colonne.
SUBSTRING() Renvoie une partie de la chaîne.
SELECT 
  first_name,
  last_name,
  SUBSTRING(last_name, 4)
FROM employees;
Renvoie les noms complets des employés et les quatre premières lettres de leur nom de famille.
LENGTH() Renvoie la longueur d'une chaîne de caractères (en nombre de caractères).
SELECT 
  first_name,
  last_name,
  LENGTH(last_name)
FROM employees;
Renvoie les noms complets des employés et le nombre de caractères de leur nom de famille.
LEFT() Renvoie un nombre spécifié de caractères à partir du début (côté gauche) d'une chaîne.
SELECT 
  first_name,
  last_name,
  LEFT(last_name, 3)
FROM employees;
Renvoie le nom complet des employés et les trois premières lettres de leur nom de famille.
RIGHT() Renvoie un nombre spécifié de caractères à partir de la fin (côté droit) d'une chaîne.
SELECT 
  first_name,
  last_name,
  RIGHT(last_name, 3)
FROM employees;
Renvoie les noms complets des employés et les trois dernières lettres de leur nom de famille.
TRIM() Supprime les espaces vides de part et d'autre d'une chaîne de caractères.
SELECT 
  TRIM(first_name),
  TRIM(last_name),
FROM employees;
Renvoie les noms complets des employés sans les espaces de début et de fin, par exemple, le nom de famille Jonas " devient " Jonas ".
REPLACE() Remplace une chaîne de caractères spécifiée par une autre chaîne de caractères.
SELECT 
  first_name,
  last_name,
  REPLACE(department,
    'Acuonting', 'Accounting')
FROM employees; 
Renvoie les noms complets des employés et leurs départements tout en renommant le département "Comptabilité" en "Comptabilité".
REVERSE() Inverse une chaîne de caractères.
SELECT REVERSE(last_name)
FROM employees;
Renvoie les versions inversées des noms de famille des employés, par exemple, "Jonas" devient "sanoJ".
UPPER() Convertit une chaîne de caractères en majuscules.
SELECT UPPER(last_name)
FROM employees;
Renvoie des versions entièrement en majuscules des noms de famille des employés, par exemple, "Jonas" devient "JONAS".
LOWER() Convertit une chaîne de caractères en minuscules.
SELECT LOWER(last_name)
FROM employees;
Renvoie des versions entièrement en minuscules des noms de famille des employés, par exemple, "Jonas" devient "jonas".

Vous trouverez un examen approfondi des fonctions de texte dans notre article Vue d'ensemble des fonctions de texte SQL.

Fonctions numériques

Fonction numérique Explication Exemple de code Code de sortie
ABS() Renvoie la valeur absolue d'une valeur numérique.
SELECT ABS(-169.23);
-169,23 devient 169,23.
ROUND() Arrondit une valeur numérique au nombre de décimales spécifié.
SELECT ROUND(169.2389, 3);
169,2389 est arrondi à la troisième décimale et devient 169,239.
CEILING() Arrondit une valeur numérique au premier entier supérieur ou égal à celle-ci.
SELECT CEILING(169.2389);
169,2389 est arrondi à 170.
FLOOR() Arrondit une valeur numérique au premier entier inférieur ou égal.
SELECT FLOOR(169.2389);
169,2389 est arrondi à 169.
POWER() Augmente une valeur numérique à la puissance d'une autre valeur numérique.
SELECT POWER(5, 4);
Élève 5 à la puissance 4, ce qui équivaut à 625.
SQRT() Renvoie la racine carrée d'une valeur numérique.
SELECT SQRT(25);
Renvoie la racine carrée de 25, qui est égale à 5.
RAND() ou RANDOM() Renvoie un nombre aléatoire en virgule flottante compris entre 0 et 1.
SELECT RANDOM();
Par exemple, renvoie 0.4371221377641987.
LOG() Renvoie le logarithme d'une valeur numérique d'une base spécifiée.
SELECT LOG(12, 2);
Renvoie le logarithme de base 2 de 12, soit 0,2789429456511298.
LN() Renvoie le logarithme naturel d'une valeur numérique.
SELECT LN(12);
Renvoie le logarithme naturel de 12, soit 2,4849066497880004.

Vous trouverez une présentation détaillée des fonctions numériques dans notre article Fonctions numériques SQL.

Fonctions NULL

NULL Fonction Explication de la fonction Exemple de code Sortie du code
COALESCE() Renvoie la première valeur non NULL d'une liste d'arguments.
SELECT 
  first_name,
  last_name,
  COALESCE(department, 'N/A')
FROM employees;
Retourne les employés et leurs départements. Lorsque la valeur de la colonne department est NULL, elle est affichée sous la forme N/A dans la sortie.
NULLIF() Renvoie NULL si deux expressions sont égales ; sinon, il renvoie la première expression.
SELECT 
  first_name,
  last_name
  NULLIF(department, 'N/A')
FROM employees;
Renvoie les employés et leurs départements. Lorsque la valeur de la colonne department est N/A, elle est affichée comme NULL dans la sortie.

DML - Modification des données en SQL

Une vue d'ensemble des trois commandes utilisées pour la modification des données (commandes DML) est donnée ci-dessous.

Commande DML Explication de la commande Exemple de code Sortie du code
INSERT Insère une ou plusieurs lignes de données dans un tableau.
INSERT INTO employees (first_name, 
  last_name, department)
VALUES ('Francis', 'Ford', 'Sales');
Insère un nouvel employé dans la table employees. Le prénom de l'employé inséré est Francis, son nom de famille est Ford et il travaille dans le service des ventes.
UPDATE Modifie la valeur d'une colonne pour une ou plusieurs lignes.
UPDATE employees
SET department = 'Accounting'
WHERE department = 'Acuonting';
Met à jour le nom de département mal orthographié "Comptabilité" avec le nom correct "Comptabilité".
DELETE Supprime une ou plusieurs lignes du tableau.
DELETE
FROM employees
WHERE id = 6;
Supprime toutes les données de la ligne où l'ID de l'employé est 6.

DDL - Définition de la structure des données en SQL

Les concepts clés du DDL (Data Definition Language) sont les suivants :

Commandes DDL

Voici un aperçu des commandes DDL :

Commande DDL Explication Exemple de code Sortie du code
CREATE TABLE Crée une nouvelle table avec les noms de colonnes, les types de données et les contraintes spécifiés.
CREATE TABLE customers(
  id INT PRIMARY KEY,
  first_name VARCHAR(120),
  last_name VARCHAR(120)
);
Crée la table customers avec des colonnes nommées id, first_name, et last_name. Les types de données des colonnes sont respectivement INT, VARCHAR(120) et VARCHAR(120). En outre, la contrainte de clé primaire est définie sur la colonne ID.
DROP TABLE Supprime la table entière et sa définition de la base de données.
DROP TABLE customers;
Supprime la table customers ainsi que ses colonnes, ses données, ses définitions de type de données, ses contraintes, etc.
CREATE VIEW Crée une requête stockée (également appelée "vue") qui peut être réutilisée et utilisée dans d'autres requêtes.
CREATE VIEW salary_summary AS
SELECT 
  department, 
  AVG(salary)
FROM employees
GROUP BY department;
Crée une vue nommée salary_summary, qui calcule le salaire moyen par département.
DROP VIEW Supprime complètement une vue et sa définition de la base de données.
DROP VIEW salary_summary;
Supprime la vue salary_summary et sa définition de la base de données.
ALTER TABLE Modifie la structure de la table existante en ...
... renommer la table
ALTER TABLE employees
RENAME TO salaries;
Change le nom de la table employees en salaries.
... renommer une colonne
ALTER TABLE employees
RENAME COLUMN last_name TO surname;
Change le nom de la colonne last_name en surname.
.. changer le type de données d'une colonne
ALTER TABLE employees
ALTER COLUMN salary DECIMAL(10,2);
Modifie le type de données de la colonne salary en DECIMAL(10,2).
... ajouter une colonne
ALTER TABLE employees
ADD date_of_birth DATE;
Ajoute la colonne date_of_birth (du type de données DATE ) à la table employees.
... abandonne (supprime) la colonne
ALTER TABLE employees
DROP COLUMN  end_date;
Supprime la colonne end_date de la table employees.

Types de données SQL

Vous trouverez ci-dessous un aperçu des types de données SQL les plus courants.

Type de données Explication
Types de données numériques
INT Représente les nombres entiers, c'est-à-dire les nombres entiers. La plage va de -2147483648 à 2147483648 et utilise 4 octets de stockage.
DECIMAL(p, s) Représente les nombres décimaux à virgule fixe avec la précision p (nombre total de chiffres avant et après la virgule) et l'échelle s (chiffres après la virgule).
FLOAT Représente des valeurs approximatives avec une précision en virgule flottante.
SMALLINT Représente les petits entiers de -32 768 à 32 767 ; utilise 2 octets de stockage.
Types de données de la chaîne de caractères
CHAR(n) Représente une chaîne de longueur fixe de n caractères ; la longueur maximale est de 255.
VARCHAR(n) Représente une chaîne de longueur variable de n caractères (maximum 255).
TEXT Représente une chaîne de longueur variable de grande taille (jusqu'à 65 535 octets).
Types de données de date et d'heure
DATE Une date au format AAAA-MM-JJ.
TIME Heure au format HH:MI:SS.
DATETIME Date et heure au format AAAA-MM-JJ HH:MI:SS.
INTERVAL Une date ou une période de temps, par exemple l'année, le mois, le jour, l'heure, etc.
BOOLEAN Une valeur logique, c'est-à-dire VRAI ou FAUX.

Contraintes SQL

Voici un aperçu des contraintes SQL les plus courantes :

Contrainte Explication Exemple de code Sortie de code
PRIMARY KEY Assure que les valeurs de la colonne sont uniques (non dupliquées) et non NULL.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2)
);
Les valeurs de la colonne id de la table orders seront uniques et n'accepteront pas de NULL.
FOREIGN KEY Relie une colonne d'une table à la clé primaire d'une autre table. Cela crée une relation entre les deux tables.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2),
  customer_id INT,
  FOREIGN KEY (customer_id) REFERENCES customers (id)
);
La colonne customer_id de la table orders est une clé étrangère qui fait référence à la colonne id de la table customers.
NOT NULL Assure qu'une colonne n'accepte pas de valeurs NULL.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2) NOT NULL
);
Les valeurs de la colonne value ne peuvent pas être NULL - c'est-à-dire que chaque commande doit avoir une valeur.
UNIQUE Assure que les valeurs de la colonne sont uniques, mais autorise les valeurs NULL.
CREATE TABLE customer(
  id INT PRIMARY KEY,
  name VARCHAR(120),
  nin INT UNIQUE
);
Les valeurs de la colonne nin (numéro d'identification national) doivent être uniques, mais les valeurs NULL sont autorisées.
DEFAULT Définit une valeur de colonne par défaut lorsqu'aucune valeur n'est spécifiée pour cette colonne pendant INSERT.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2),
  order_date DEFAULT CURRENT_DATE
);
Si la valeur order_date n'est pas définie pendant INSERT, la valeur par défaut sera la date actuelle.
CHECK Vérifie si les valeurs d'une colonne satisfont à une condition donnée ; rejette celles qui ne satisfont pas à cette condition.
CREATE TABLE orders (
  id INT PRIMARY KEY,
  value DECIMAL(10,2),
  check(value>0)
);
Applique une règle selon laquelle la valeur d'une commande ne peut être nulle si elle doit être stockée dans la table orders.

Ressources supplémentaires pour l'entretien SQL

En plus de cette antisèche pour les entretiens SQL, utilisez ces ressources supplémentaires pour passer en revue les questions et les sujets des entretiens SQL :

  1. La pratique du SQL complet pour les entretiens
  2. 100+ questions d'entretien SQL et exercices d'entraînement
  3. Les 10 meilleures questions d'entretien SQL JOIN avec réponses
  4. Les 9 meilleures questions d'entretien SQL GROUP BY
  5. Les 10 meilleures questions d'entretien SQL Fonctions de fenêtrage
  6. Top 5 des questions d'interview SQL CTE
  7. Top 27 SQL avancé Questions d'interview avec réponses
  8. 15 questions d'entretien SQL difficiles pour les utilisateurs expérimentés

Au-delà de l'aide-mémoire de l'entretien SQL

Nous avons couvert tous les concepts fondamentaux dans cette antisèche d'entretien SQL. Pour impressionner lors de votre entretien, vous devrez montrer que vous maîtrisez ces concepts.

Cette antisèche vous aidera à trouver rapidement la définition ou un exemple d'une commande SQL particulière. Utilisez-la chaque fois que vous êtes bloqué sur la terminologie ou les concepts SQL. Cependant, il ne s'agit pas d'une ressource d'apprentissage autonome. Il est préférable de l'utiliser parallèlement à notre SQL pour les débutants cours, La pratique du SQL ou d'autres ressources principales pour apprendre et pratiquer le langage SQL.

Combinez ces ressources, continuez à vous entraîner et vous réussirez votre entretien SQL !