- Découvrez le commandes SQL essentiel et exemples pratiques pour l'interrogation, la gestion et la sécurité dans bases de données.
- Apprenez à utiliser SELECT, WHERE, JOIN, GROUP BY, les fonctions d'agrégation et les vues, en utilisant la syntaxe et des cas d'utilisation réels.
- rencontrer Ruses avancé, gestion des autorisations et FAQ pour maîtriser SQL dans les environnements professionnels.
Le langage SQL (Structured Query Language ) est un outil qui, une fois maîtrisé, devient votre meilleur allié pour interagir avec n'importe quelle base de données relationnelle. Si vous vous êtes déjà demandé comment accéder, modifier, supprimer ou analyser facilement et efficacement de grands volumes de données, SQL est la solution. Apprendre à utiliser correctement les commandes SQL fait toute la différence entre un utilisateur débutant et un véritable expert en gestion et analyse de données.
Dans cet article, vous trouverez une liste complète des principales commandes SQL, accompagnée d'explications claires et d'exemples pratiques, couvrant tous les aspects, des bases aux requêtes les plus complexes. Je vous dévoilerai également des astuces et des détails souvent négligés dans les articles plus superficiels, afin que vous puissiez tirer le meilleur parti de vos bases de données, que vous soyez débutant ou que vous cherchiez à perfectionner vos compétences. Préparez-vous à plonger dans l'univers du SQL et à découvrir comment ce langage peut transformer votre façon de travailler avec l'information.
Qu’est-ce que SQL et pourquoi est-il toujours essentiel ?
SQL , ou Structured Query Language, est un langage de programmation conçu spécifiquement pour gérer et manipuler les bases de données relationnelles. Bien qu'il ait été développé dans les années 70, il demeure la solution standard pour communiquer avec des bases de données telles que MySQL, PostgreSQL, SQL Server, MariaDB et Oracle Database, entre autres.
La raison de sa longévité est simple : SQL permet d’effectuer toutes les tâches, des plus basiques comme l’interrogation de données aux plus avancées, telles que la jointure de tables complexes, la création de structures, la mise à jour en masse d’enregistrements et la définition des autorisations . De plus, sa syntaxe est suffisamment simple pour que chacun puisse s’y familiariser rapidement, tout en étant assez puissante pour résoudre des problèmes métier complexes.
Les professionnels d’un large éventail de domaines, des développeurs, analystes et administrateurs de bases de données aux scientifiques des données, s’appuient sur SQL pour traiter, nettoyer et analyser les données critiques de leurs projets et organisations.
Catégories de commandes SQL : DQL, DML, DDL et DCL
Avant de passer aux exemples, il convient de rappeler que les commandes SQL peuvent être regroupées en différentes catégories selon leur fonction :
- DQL (langage de requête de données) : Ce sont les phrases permettant d'interroger des données, telles que SELECT.
- DML (langage de manipulation de données) : Ils manipulent les enregistrements, avec des commandes comme INSERT, MISE A JOUR y EFFACER.
- DDL (langage de définition de données) : Ils gèrent la structure de la base de données, par exemple, CREATE, ALTER, GOUTTE y TRONQUER.
- DCL (langage de contrôle des données) : Ils contrôlent les autorisations et les accès, en utilisant SUBVENTION y RÉVOQUER.
Chaque type de commande remplit une fonction essentielle dans la gestion quotidienne d'une base de données. Il est important de savoir quelle commande utiliser dans chaque situation afin d'éviter des erreurs, voire des catastrophes, dans la gestion des données.
Principales commandes SQL : principes fondamentaux et exemples pratiques
La maîtrise des commandes SQL de base ouvre la voie à pratiquement toutes les tâches de gestion et d'analyse de données. Ci-dessous, je vous présente les commandes les plus pertinentes, leur fonctionnement et des exemples d'utilisation pour vous aider à les maîtriser.
SELECT : Le roi des requêtes
La commande SELECT est la pierre angulaire de la plupart des opérations SQL. Elle permet de récupérer des données stockées dans une ou plusieurs tables.
Syntaxe générale :
SÉLECTIONNEZ colonne1, colonne2, ... DE nom_table ;
Pour obtenir toutes les colonnes d'un tableau, utilisez simplement l'astérisque :
SÉLECTIONNEZ * PARMI les employés ;
Si vous souhaitez filtrer des données spécifiques, vous pouvez ajouter des conditions :
SÉLECTIONNEZ le nom, l'âge PARMI les employés OÙ l'âge > 30 ;
Grâce à SELECT, vous pouvez extraire des données allant d'une simple valeur à des ensembles de données complexes, appliquer des fonctions d'agrégation, calculer des colonnes dérivées et préparer des informations pour des rapports ou des visualisations.
OÙ : Filtrer les résultats avec précision
La clause WHERE permet de spécifier des conditions afin de sélectionner uniquement les lignes répondant à certains critères. Il s'agit d'un filtre fondamental pour toute requête.
Syntaxe de base:
SÉLECTIONNEZ * PARMI les produits OÙ le prix < 100 ;
Vous pouvez combiner des conditions en utilisant des opérateurs logiques tels que ET , OU et NON , ainsi que des opérateurs de comparaison ( =, <, >, <=, >=, <> ).
Par exemple, pour recruter des commerciaux de moins de 30 ans :
SÉLECTIONNEZ * DANS les employés OÙ le service = « Ventes » ET l'âge < 30 ;

INSÉRER : Ajout de nouveaux enregistrements
La commande INSERT permet d'ajouter de nouvelles lignes à une table. Elle est essentielle pour maintenir vos bases de données à jour.
Syntaxe générale :
INSÉRER DANS les produits (nom, prix) VALEURS ('Clavier', 29.99);
Si vous souhaitez ajouter plusieurs enregistrements dans une seule requête, vous pouvez également le faire :
INSÉRER DANS les produits (nom, prix) VALEURS ('Souris', 15.50), ('Moniteur', 120.00);
N'oubliez pas que si vous omettez la liste des colonnes, vous devez fournir une valeur pour chaque champ du tableau, en respectant leur ordre.
MISE À JOUR : Modification des données existantes
La commande UPDATE permet de modifier la valeur d'un ou plusieurs champs dans les enregistrements qui répondent à une condition spécifique. Elle est utile pour corriger des erreurs ou mettre à jour des informations.
Syntaxe:
METTRE À JOUR les employés SET salaire = salaire * 1.05 OÙ département = 'Marketing';
Dans cet exemple, le salaire de tous les employés du service marketing augmentera de 5 %. Il est essentiel d'utiliser la clause WHERE lors de chaque mise à jour , sauf si vous souhaitez modifier l'intégralité du tableau.
SUPPRIMER : Suppression des données
Pour supprimer des enregistrements, utilisez la commande DELETE avec une condition, évitant ainsi la suppression accidentelle de toutes les données de la table.
exemple:
SUPPRIMER DES produits OÙ id_producto = 10 ;
Si vous omettez la clause WHERE, toutes les lignes de la table seront supprimées. Attention !
TRIER PAR : Organisation des résultats
La clause ORDER BY permet de trier les résultats d'une requête selon une ou plusieurs colonnes. Par défaut, le tri est ascendant, mais vous pouvez spécifier ASC ou DESC selon vos besoins.
SÉLECTIONNEZ * PARMI les employés TRIER PAR salaire DESC;
Vous pouvez combiner plusieurs colonnes dans le tri :
SÉLECTIONNEZ * PARMI les produits TRIER PAR catégorie ASC, prix DESC ;
Fonctions GROUP BY et d'agrégation : SUM, AVG, MIN, MAX, COUNT
GROUP BY vous permet de regrouper les résultats selon une ou plusieurs colonnes, ce qui est très utile en conjonction avec des fonctions telles que SUM() (somme), AVG() (moyenne), MIN (minimum), MAX (maximum) et COUNT (nombre).
Par exemple, pour savoir combien de produits existent dans chaque catégorie :
SÉLECTIONNER la catégorie, COMPTER(*) À PARTIR des produits GROUPER PAR catégorie ;
Ou pour calculer la facture totale pour chaque client :
SÉLECTIONNEZ customer_id, SUM(montant) DE ventes GROUP BY customer_id ;
Vous pouvez filtrer les groupes résultants à l'aide de la clause HAVING :
SÉLECTIONNER département, MOYENNE(salaire) DES employés GROUPER PAR département AYANT MOYENNE(salaire) > 2000 ;
LIMIT et OFFSET : Limitation du nombre de résultats
Lorsque vos tables contiennent des milliers d'enregistrements, l'instruction LIMIT est essentielle pour n'afficher qu'une partie des résultats, améliorant ainsi les performances et la lisibilité.
SÉLECTIONNEZ * PARMI les produits LIMITE 10 ;
Avec OFFSET, vous pouvez ignorer un certain nombre de lignes, ce qui est utile pour la pagination :
SÉLECTIONNEZ * DES produits LIMITE 10 DÉCALAGE 20 ;
ENTRE, DANS et COMME : conditions WHERE avancées
Ces mots-clés élargissent les possibilités de filtrage :
- ENTRE: Sélectionnez des valeurs dans une plage.
SÉLECTIONNEZ * PARMI les employés DONT le salaire est COMPRIS ENTRE 1000 ET 3000 ;
- IN: Rechercher plusieurs valeurs.
SÉLECTIONNEZ * DANS les produits OÙ catégorie DANS ('Ordinateurs', 'Électronique'); - COMME: Recherchez des modèles dans le texte.
SÉLECTIONNEZ * DES clients OÙ nom COMME 'A%';
Les caractères génériques tels que % (n'importe quel nombre de caractères) et _ (un seul caractère) peuvent également être utilisés pour personnaliser davantage les recherches LIKE.
JOIN : Croisement d'informations entre tables
L'un des principaux atouts de SQL est sa capacité à combiner des données provenant de différentes tables grâce aux jointures . Les plus courantes sont :
- JOINTURE INTERNE: Renvoie les lignes correspondantes dans les deux tables.
- JOINT GAUCHE: Renvoie toutes les lignes de la table de gauche et toutes les correspondances de la droite (remplissage avec NULL s'il n'y a pas de correspondance).
- JOINDRE À DROITE : Renvoie toutes les lignes de la table de droite et les lignes correspondantes de la table de gauche.
- JOINT EXTÉRIEUR COMPLET : Renvoie toutes les lignes des deux tables (complétées avec NULL lorsqu'il n'y a pas de correspondance).
Exemple de jointure interne :
SÉLECTIONNEZ orders.id, customers.name À PARTIR de orders INNER JOIN customers ON orders.customer_id = customers.id;
JOINT GAUCHE:
SÉLECTIONNEZ employees.name, sales.amount À PARTIR de employees GAUCHE JOIN sales ON employees.id = sales.employee_id;
ALTER, CREATE et DROP : Modification de la structure de la base de données
En plus de manipuler des données, SQL vous permet de définir et de modifier la structure des tables et d’autres objets de base de données :
- CRÉER: Pour créer de nouveaux objets (tables, vues, index, utilisateurs…).
CREATE TABLE produits (id INT PRIMARY KEY, nom VARCHAR(100), prix DECIMAL(8,2));
- VIEILLE: Pour modifier la structure d'un objet existant.
ALTER TABLE produits ADD description VARCHAR(255);
ALTER TABLE produits ALTER COLUMN prix SET NOT NULL;
- TOMBER: Pour supprimer des objets de la base de données.
Produits de table de dépôt ;
SUPPRIMER L'UTILISATEUR example_user CASCADE;
Vues (VIEW) : requêtes réutilisables et filtrage avancé
Les vues sont des objets virtuels qui représentent une requête enregistrée. Elles fonctionnent comme une table, mais ne stockent pas de données ; elles pointent uniquement vers des informations contenues dans d’autres tables. Elles sont utiles pour simplifier les requêtes complexes, centraliser les filtres et faciliter l’accès à des informations spécifiques.
CRÉER UNE VUE active_employees AS SELECT * FROM employees WHERE active = 1;
Vous pouvez interroger la vue comme une table :
SÉLECTIONNEZ * DANS active_employees;
Les vues sont idéales pour gérer les autorisations et afficher uniquement les données pertinentes pour certains utilisateurs.
Fonctions d'agrégation et calculs sur les colonnes
SQL vous permet d'utiliser des fonctions d'agrégation et des opérateurs arithmétiques pour effectuer des calculs sur des données :
- SOMME(): Somme totale d'une colonne.
- MOYENNE() : Moyenne arithmétique.
- MIN() et MAX() : Minimum et maximum.
- COMPTER(): Nombre d'enregistrements.
Par exemple, si vous souhaitez connaître le nombre d’employés par service :
SÉLECTIONNER département, COMPTER(*) À PARTIR des employés GROUPER PAR département ;
Ou le salaire le plus élevé par département :
SÉLECTIONNER département, MAX(salaire) DES employés GROUPER PAR département ;
Vous pouvez même créer des colonnes calculées directement dans la requête :
SÉLECTIONNEZ nom, salaire * 0.95 AS net_salary FROM employés ;
Utilisation d'alias (AS) pour les tables et les colonnes
Dans les requêtes, vous pouvez attribuer des noms temporaires aux colonnes et aux tables à l'aide de la commande AS . Cela facilite la lecture des résultats et l'écriture de requêtes complexes.
Par exemple:
SÉLECTIONNEZ e.name AS employee, d.name AS department DE employees AS e REJOIGNEZ departments AS d ON e.department_id = d.id;
De cette façon, le résultat affichera des colonnes portant des noms personnalisés. L'utilisation d'alias est particulièrement utile lors des jointures (JOIN) ou lorsque les colonnes portent des noms longs ou indéfinissables.
Exemples de requêtes SQL avancées : résoudre des cas concrets
Pour maîtriser SQL, il est essentiel de se confronter à des situations concrètes. Vous trouverez ci-dessous des exemples détaillés tirés de cas pratiques qui vous permettront d'approfondir vos connaissances.
Interroger tous les employés d'un service et leurs ventes totales
SÉLECTIONNEZ e.id, e.name, SUM(v.amount) AS total_sales FROM employees e JOIN sales v ON e.id = v.employee_id WHERE e.department = 'Sales' GROUP BY e.id, e.name;
Cet exemple montre comment joindre des tables, appliquer des fonctions d'agrégation et filtrer les résultats.
Calcul du salaire moyen et maximum par département
SÉLECTIONNEZ département, AVG(salaire) COMME salaire_moyen, MAX(salaire) COMME salaire_maximum DE employés GROUP BY département ;
De cette façon, vous pouvez analyser la répartition des salaires et identifier les inégalités ou les domaines avec de plus grandes incitations.
Compter les produits par gamme de prix à l'aide de CASE
SÉLECTIONNER LA CAS QUAND prix < 50 ALORS 'Bon marché' QUAND prix < 150 ALORS 'Moyen' SINON 'Cher' FINIR COMME price_range, COUNT(*) COMME quantité DE produits GROUP BY price_range;
L'utilisation de CASE vous permet de créer des catégories personnalisées au sein de la requête.
Exemple de requête pour trouver des enregistrements en double
SÉLECTIONNEZ nom, COUNT(*) À PARTIR des clients GROUP BY nom AYANT COUNT(*) > 1 ;
Cela vous aide à garder votre base de données propre et exempte de données redondantes.
Identifier le n-ième salaire le plus élevé (sous-requêtes)
SÉLECTIONNEZ LE MEILLEUR salaire DE (SÉLECTIONNEZ LES N MEILLEURS salaires DISTINCT DES employés ORDRE PAR salaire DESC ) ORDRE PAR salaire ASC ;
Idéal pour répondre à des questions lors d'entretiens techniques ou pour produire des rapports avancés.
Supprimer automatiquement les anciens enregistrements
SUPPRIMER DE journaux OÙ date < MAINTENANT() - INTERVALLE 6 MOIS ;
Idéal pour les bases de données de production où vous devez contrôler la taille des tables.
Conseils et astuces utiles en SQL
Maîtriser SQL ne se limite pas à savoir écrire des requêtes basiques. Voici quelques conseils pour tirer le meilleur parti de ce langage :
- Utilisez toujours WHERE dans UPDATE et DELETE pour éviter les modifications ou suppressions accidentelles en masse.
- Mettre des index sur les colonnes les plus consultées pour accélérer les recherches et les jointures.
- Préférez les JOIN explicites à WHERE pour joindre les tables : facilite la maintenance et la lisibilité.
- Utiliser les fonctions d'agrégation et GROUP BY pour des rapports et des analyses automatiques sans recourir à des feuilles de calcul externes.
- Tester sur une base de données de test avant d’effectuer des changements majeurs.
- Contrôlez les autorisations avec GRANT et REVOKE pour assurer la sécurité de vos données.
- Profitez de la vue (VUE) pour simplifier l’accès aux informations complexes et centraliser la logique métier.
- N'abusez pas de SELECT *, car vous risquez d'importer plus de données que nécessaire et de ralentir le système.
- Commenter les requêtes complexes pour faciliter la maintenance future.
Questions fréquemment posées sur les commandes SQL lors d'entretiens et de cas réels
Maîtriser SQL est essentiel pour exceller lors des entretiens techniques et résoudre les problèmes du quotidien. Voici quelques questions et réponses courantes pour vous aider à vous préparer :
- Qu'est-ce qu'une jointure interne ?
Il s'agit de la jointure par défaut de SQL ; elle renvoie les lignes correspondant aux deux tables. Exemple :SÉLECTIONNEZ * À PARTIR D'UNE JOINTURE INTERNE B SUR A.id = B.a_id ;
- À quoi sert LEFT JOIN ?
Renvoie toutes les lignes de la table de gauche et toutes les correspondances de la table de droite. Exemple :SÉLECTIONNEZ * DE employees GAUCHE JOIN ventes ON employees.id = sales.employee_id;
- Quelle est la différence entre DROP et DELETE ?
EFFACER supprime des lignes d'une table, tandis que GOUTTE supprime complètement l'objet (table, vue, utilisateur) de la base de données. - Pouvez-vous revenir en arrière après un ALTER ?
Non, car ALTER est une méthode DDL et de nombreux systèmes s'engagent automatiquement. Il est important de s'en assurer avant de l'utiliser. - Que sont les pseudo-colonnes ?
Ce sont des colonnes virtuelles générées par le système, telles que ROWID, USER ou CURRVAL dans Oracle. - Comment créer une vue ?
CRÉER UNE VUE view_employees AS SÉLECTIONNER nom, salaire DE employés ;
- Comment accorder des autorisations ?
ACCORDER SELECT SUR l'inventaire À ana, rita ;
- Comment supprimer un utilisateur ainsi que ses données ?
DROP USER utilisateur CASCADE ;
Expressions régulières et opérateurs spéciaux en SQL
Un aspect moins connu mais très puissant de SQL est la possibilité de rechercher des modèles à l'aide d'expressions régulières et d'opérateurs avancés. Par exemple :
- % : Représente n'importe quelle chaîne de n'importe quelle longueur (utilisé dans LIKE).
- _ : Représente un seul caractère (également dans LIKE).
- | : Alternance, chercher une chose ou une autre.
- *: Répétition d'un caractère zéro ou plusieurs fois.
Gestion avancée : rôles, autorisations et sécurité
La gestion d'une base de données ne se limite pas à l'interrogation et à la modification des données. Il est essentiel de contrôler qui peut accéder aux informations, les modifier ou les supprimer à l'aide de commandes telles que GRANT , REVOKE ou la gestion avancée des rôles.
CRÉER UN RÔLE gestionnaire ;
ACCORDER SÉLECTIONNER, INSÉRER, METTRE À JOUR les employés AU gestionnaire ;
GESTIONNAIRE DE SUBVENTION À juan, maria;
Cela vous permet de centraliser la sécurité et de simplifier la gestion des permissions dans les environnements de grande envergure. Pour plus d'informations sur la gestion des permissions, consultez notre article sur l'automatisation et l'administration.
Écrivain passionné par le monde des octets et de la technologie en général. J'aime partager mes connaissances à travers l'écriture, et c'est ce que je vais faire dans ce blog, vous montrer toutes les choses les plus intéressantes sur les gadgets, les logiciels, le matériel, les tendances technologiques et plus encore. Mon objectif est de vous aider à naviguer dans le monde numérique de manière simple et divertissante.