Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Base de données Dernière mise à jour : 16 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

SQL, ou Sstructuré Query Language est un ensemble de commandes permettant de gérer les opérations des bases de données relationnelles telles que la suppression, la création, la mise à jour, la lecture, etc.

SQL est la norme internationale utilisée par les bases de données relationnelles depuis 1987. Il existe quatre types de commandes SQL :

  • Langage de définition des données (DDL) - Ces commandes définir la structure de la base de données. Par exemple, l'abandon, le renommage, la modification et la création. Ils affectent la structure de la base de données. Par exemple, créer une base de données ou renommer une table.
  • Langage de manipulation des données (DML) - Ces commandes sont utilisées pour travailler avec les données. Par exemple, insérer, sélectionner, mettre à jour, supprimer. Ces commandes n'affectent pas les tables ou la structure de la base de données, mais les données présentes dans les tables. Par exemple, l'insertion d'une nouvelle ligne ou la mise à jour d'une valeur dans la ligne.
  • Langage de contrôle des transactions (TCL) - Ces commandes contrôlent le traitement des transactions dans la base de données. Par exemple, rollback, save, commit. Ces commandes ont un impact permanent sur la base de données. Par exemple, le retour à l'état précédent de l'ensemble de la transaction, même si un processus échoue.
  • Langage de contrôle des données (DCL) - Les commandes de contrôle des données sont utilisées pour autoriser les utilisateurs et n'accorder que les autorisations nécessaires à un utilisateur ou à un groupe. Par exemple, un utilisateur peut avoir l'autorisation de lecture seule, tandis qu'un autre peut avoir l'autorisation de lecture et d'écriture. Le contrôle d'accès s'effectue à l'aide des commandes "grant", "deny" et "revoke".

Vous trouverez ci-dessous l'aide-mémoire SQL contenant les commandes les plus utiles. L'antisèche vous aidera à référencer rapidement les commandes requises avec la syntaxe correcte et le résultat attendu d'une requête. Dans cette antisèche, nous nous concentrons sur les commandes DDL et DML, car les deux autres types de commandes sont assez simples à utiliser.

Définition des données et requêtes de manipulation

CommandementDescriptionExemple
ADDAjoute une colonne ou une contrainte (comme spécifié) à la table existante.ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);

ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);
ALTER TABLEModifie la table spécifiée pour ajouter, mettre à jour ou supprimer la colonne d'une table.ALTER TABLE employee ADD last_name varchar2(255);

ALTER TABLE employee DROP COLUMN last_name;
ALTER COLUMNModifier le type de données de la colonne. Par exemple, pour modifier le type de la colonne joining_date de la table employee de varchar2 à datetime.ALTER TABLE employee ALTER COLUMN joining_date datetime;
TOUSOpérateur logique utilisé avec SELECT, WHERE et HAVING, et qui renvoie un résultat positif si toutes les valeurs satisfont à la condition de la sous-requête.SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = ‘R&D’);
ETOpérateur logique qui ne renvoie un résultat positif que si toutes les conditions de la clause WHERE sont remplies.SELECT employee_name, salary from employee WHERE city = ‘California’ AND salary > 2000;
ANYOpérateur logique ; renvoie un résultat positif si l'une des valeurs de la sous-requête satisfait à la condition de la clause where.SELECT employee_id, employee_name from employee WHERE employee_id = ANY (select employee_id from department_details WHERE department = ‘HR’ OR department = ‘R&D’);
ASCrée un alias pour la table ou la colonne jusqu'au moment de l'exécution de la requête, ce qui est utile lorsque le nom est utilisé plusieurs fois, notamment lors de jointures de tables.SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston';
ASCRenvoie les données dans ascordre final, utilisé avec la clause ORDER BY. La clause ORDER BY elle-même trie les résultats dans l'ordre croissant par défaut.SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC;
ENTREPour sélectionner des valeurs à l'intérieur d'une plageSELECT employee_name, joining_date, department_id from employee WHERE salary  BETWEEN 40000 AND 100000;
CASEConsiste en un ensemble d'énoncés ; renvoie la valeur de l'énoncé qui est vrai, SI aucune des conditions n'est remplie, la condition de la partie ELSE est exécutée. S'il n'y a pas d'autre condition, la valeur NULL est renvoyée.SELECT order_amount, customer_id, contact_email CASE WHEN order_amount > 3000 THEN "Eligible for 40% discount" WHEN order_amount between 2000 and 3000 THEN "Eligible for 25% discount" ELSE "Eligible for 5% discount" END FROM order_details;
CRÉER UNE BASE DE DONNÉESCrée une nouvelle base de données avec le nom spécifiéCREATE DATABASE movies_development;
CRÉER UNE TABLECrée une nouvelle table avec le nom de table spécifié et les noms et types de colonnes.CREATE TABLE movie_info (movie_name varchar2(255), release_date datetime, lead_actor varchar2(255), music_director varchar2(255));
DÉFAUTDéfinit une valeur par défaut pour la colonne spécifiée, utilisée avec les commandes CREATE ou ALTER TABLE.CREATE TABLE employee (joining_date SET DEFAULT CURRENT_DATE);

ALTER TABLE product ALTER is_available SET DEFAULT true;
DELETESupprime les données de la table spécifiéeDELETE from employee where employee_id = 345;
DESCRenvoie les données en descordre final, utilisé avec la clause ORDER BY.SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC;
DROP COLUMNSupprime la colonne spécifiée de la table spécifiée.ALTER TABLE employee DROP COLUMN employee_name;
DROP DATABASESupprime la totalité de la base de donnéesDROP DATABASE movies_development;
DROP DEFAULTSupprime la valeur par défaut de la colonne spécifiéeALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT;
DROP TABLESupprime la table spécifiéeDROP TABLE employee;
EXISTEVérifie si un enregistrement existe ou non dans la sous-requête, et renvoie un résultat positif si un ou plusieurs résultats sont trouvés.SELECT employee_id, contact_number FROM employee WHERE EXISTS (SELECT employee_id, department FROM department WHERE employee_id = 345 AND department = 'HR');
DESpécifie la table dans laquelle les données doivent être sélectionnées ou supprimées.SELECT * FROM employee; DELETE FROM employee where employee_id = 345;
GROUPE PARRegroupe les données en fonction de la colonne spécifiée, utilisée pour les fonctions d'agrégation.Afficher le nombre de salariés dans chaque pays

SELECT COUNT(employee_id), country from employee GROUP BY country;

Affiche les notes moyennes des employés de chaque département

SELECT AVG(rating), department from employee GROUP BY department;
INUtilisé pour sélectionner plusieurs valeurs à la fois dans une clause WHERE au lieu d'utiliser plusieurs conditions ORSELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia');
INDEXL'index rend l'interrogation des données plus efficace et plus rapide. Les index sont généralement créés sur les colonnes qui font l'objet du plus grand nombre de recherches.Créer un index :
CREATE INDEX idx_employee ON employee (first_name, last_name);

Créer un index unique dont les valeurs ne peuvent être dupliquées :
CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name);

Supprimer l'index :
ALTER TABLE employee DROP INDEX idx_employee;
INSERT INTOAjouter une nouvelle ligne dans un tableauINSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, ‘Lee Cooper’, 40000, ‘Java’);
EST NULLVérifie les valeurs nullesSELECT employee_id from employee where employee_name IS NULL;
IS NOT NULLVérifie que les valeurs ne sont pas nullesSELECT employee_id, core_skill from  employee where core_skill IS NOT NULL;
LIKERenvoie toutes les valeurs qui correspondent à un modèle donnéSELECT employee_id,  first_name, last_name  where  first_name LIKE ‘%tony’;
PAS COMMERenvoie toutes les valeurs qui ne correspondent pas au motif donnéSELECT employee_id,  first_name, last_name  where  first_name NOT LIKE ‘%tony’;
OURenvoie un résultat positif si l'une des conditions de la clause where est remplie.SELECT * from employee where country = ‘India’ OR country = ‘Australia’;
ORDER BYOrdonne les résultats par ordre croissant (par défaut) ou dans l'ordre spécifié dans la requête (ascfin ou descfin)SELECT employee_name, salary from employee ORDER BY salary DESC;
ROWNUMRenvoie le nombre spécifié de lignes mentionnées dans la clause WHERE de la requête.SELECT * from employee where ROWNUM <= 5; This will return the first five rows in the resultset.
SELECTIONNERSélectionne les colonnes mentionnées de la table en fonction des conditions données. Si * est spécifié, toutes les valeurs des colonnes sont renvoyées.SELECT employee_id from employee; SELECT * from employee;
SELECT INTOCopie les données de la table source dans une autre table de destination. Vous pouvez sélectionner toutes les colonnes (*) ou des colonnes spécifiques.SELECT * INTO new_employee_info FROM employee; SELECT employee_name, joining_date, core_skill INTO new_employee_info FROM employee;
SELECTIONNER LE HAUTSélectionne le nombre spécifié d'enregistrements dans la tableSELECT TOP 5 employee_id from employee where employee_rating = 5;
SETDéfinit la valeur d'une colonne à la nouvelle valeur spécifiée lors d'une opération UPDATE.UPDATE employee SET first_name = ‘Tony’ WHERE employee_id = 345;
QUELQUES-UNESRenvoie un résultat positif si l'une des conditions de la sous-requête est remplie. SOME est similaire à la commande ANY.SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = ‘HR’);
TRUNCATE TABLESupprime les données du tableau - n'oubliez pas que le tableau ne sera pas supprimé.TRUNCATE TABLE log_info;
UNIONRenvoie des valeurs distinctes à partir de 2 tables ou plus qui sont jointes. Pour obtenir également les valeurs en double, utilisez UNION ALL.SELECT city from employee UNION SELECT city from office_locations;
UNIQUEAjoute une contrainte d'unicité à la colonne spécifiée, ce qui signifie que la colonne ne peut pas avoir de valeurs dupliquées. Peut être utilisé lors des commandes de création ou de modification de table.CREATE TABLE employee (employee_id int NOT NULL, UNIQUE(employee_id));

ALTER TABLE employee ADD UNIQUE(employee_id);
MISE À JOURMet à jour la valeur de la colonne spécifiée avec une nouvelle valeurUPDATE employee SET first_name = ‘Tony’ WHERE employee_id = 345;
VALEURSUtilisé avec la commande INSERT pour ajouter une nouvelle ligne de valeurs dans le tableau.INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, ‘Lee Cooper’, 40000, ‘Java’);
Ajoute des conditions pour filtrer l'ensemble des résultats d'une instruction de sélection.SELECT * from employee WHERE salary > 20000;
Aide-mémoire des commandes SQL pour une référence rapide

Fonctions agrégées

Les fonctions d'agrégation sont des commandes de manipulation de données qui fonctionnent sur des colonnes numériques telles que int et float. Elles permettent de filtrer et de trier les données au niveau de la base de données elle-même. Les fonctions agrégées les plus couramment utilisées sont les suivantes :

FONCTIONDESCRIPTIONEXEMPLE
AVGRenvoie la valeur moyenne de la colonne spécifiéeSELECT AVG(marks) from students where subject = ‘English’;
MINRenvoie la plus petite valeur de la colonne spécifiéeSELECT MIN(price) from product WHERE product_category = ‘shoes’;
MAXRenvoie la plus grande valeur de la colonne spécifiéeSELECT MAX(quantity), product_name from inventory;
PAYSRenvoie le nombre de lignes qui répondent à la requêteAffiche le nombre total d'enregistrements dans la table des employés.

SELECT COUNT(*) from employee;

Indiquer le nombre d'employés dont le salaire est supérieur à 20000

SELECT COUNT(*) from employee where salary > 20000;
SOMMERenvoie la somme des valeurs de la colonne numérique spécifiéeSELECT SUM(marks) from students where subject = ‘English’;
Fonctions agrégées communes

Joints SQL

Les jointures SQL sont très importantes car elles permettent de connecter et de filtrer les données de plusieurs tables. Les jointures sont un peu délicates et peuvent donner des résultats inattendus si elles ne sont pas exécutées correctement. Le tableau ci-dessous vous aidera à vous référer rapidement aux 4 types de jointures SQL :

TYPE DE JOINTEDESCRIPTIONSYNTAXEXEMPLE
Jointure interneRenvoie les enregistrements qui correspondent dans les tables jointes ; il s'agit d'une opération similaire à une intersection.SELECT column1, column2... from table1 INNER JOIN table2 on table1.columnN = table2.columnN ;select c.customer_id, o.order_id, c.customer_phone from customer c INNER JOIN order o on c.customer_id = o.customer_id;
Jointure complète (externe)Renvoie tous les enregistrements qui ont une correspondance d'un côté ou de l'autre - gauche ou droite. Il s'agit d'une méthode similaire à une union.SELECT column1, column2... from table1 JOINTURE EXTERNE COMPLÈTE table2 on table1.columnN = table2.columnN ;select c.customer_id, o.order_id, c.customer_phone from customer c FULL OUTER JOIN order o on c.customer_id = o.customer_id;
Raccordement gaucheRenvoie tous les enregistrements du tableau de gauche et les enregistrements qui correspondent aux critères du tableau de droite.SELECT column1, column2... from table1 JOINT A LA GAUCHE table2 on table1.columnN = table2.columnN ;select c.country_id, c.country_name, l.location_name from country c LEFT JOIN locations l on c.country_id = l.country_id;
Joint à droiteRenvoie tous les enregistrements de la table de droite et les enregistrements qui correspondent aux critères de la table de gauche.SELECT column1, column2... from table1 JOINT À DROITE table2 on table1.columnN = table2.columnN ;select c.country_id, c.country_name, l.location_name from country c RIGHT JOIN locations l on c.country_id = l.country_id;
Types de jointures avec syntaxe et exemple

Ressources complémentaires

SQL est un outil important pour les développeurs de logiciels, les scientifiques des données et les analystes. Une référence pratique des commandes SQL sous forme d'antisèche peut vous faire gagner beaucoup de temps et vous aider à comprendre le résultat attendu de chaque mot-clé.

Pour plus d'informations, veuillez consulter les ressources suivantes :

Tutoriel SQL : L'aide-mémoire SQL

Intellipaat : Aide-mémoire des commandes SQL

WebsiteSetup : Aide-mémoire SQL

ProgrammingWithMosh : L'aide-mémoire SQL

L'aide-mémoire de PostgreSQL

  • Pensées papillon
    Auteur
Merci à nos sponsors
D'autres lectures intéressantes sur la base de données
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus