SQL, ou Sstructuré Qurée Language est un ensemble de commandes permettant de gérer les opérations de base de données relationnelles telles que la suppression, la création, la mise à jour, la lecture, etc.
SQL est le standard international utilisé par les bases de données relationnelles depuis 1987. Il existe quatre types de commandes SQL :
- Data Definition Language (DDL) – Ces commandes Vous permet de définir la structure de la base de données. Par exemple, supprimez, renommez, modifiez et créez. Ils affectent la structure de la base de données. Par exemple, créer une base de données ou renommer une table.
- Manipulation de données Langue (DML) – Ces commandes sont utilisées pour travailler avec les données. Par exemple, insérer, sélectionner, mettre à jour, supprimer. Ceux-ci 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, insérer une nouvelle ligne ou mettre à jour 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, restaurer l'intégralité de la transaction à l'état précédent même si un processus échoue.
- Langue Control Data (DCL) – Les commandes de contrôle des données sont utilisées pour autoriser les utilisateurs et accorder uniquement les autorisations nécessaires à un utilisateur ou à un groupe. Par exemple, un utilisateur peut avoir une autorisation en lecture seule, tandis qu'un autre peut avoir une autorisation en lecture et en écriture. Le contrôle d'accès se fait à l'aide des commandes grant, deny et revoke.
Vous trouverez ci-dessous la feuille de triche SQL contenant les commandes les plus utiles. La feuille de triche vous aidera à référencer rapidement les commandes requises avec la syntaxe correcte et le résultat attendu d'une requête. Dans cette feuille de triche, nous nous concentrons sur les commandes DDL et DML car les deux autres types sont assez simples à utiliser.
Data Definition and Manipulation Queries
Command | Description | Exemple |
ADD | Ajoute 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 TABLE | Modifie 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; |
MODIFIER LA COLONNE | Modifiez le type de données de la colonne. Par exemple, pour changer le type de colonne joining_date de la table employee de varchar2 à datetime. | ALTER TABLE employee ALTER COLUMN joining_date datetime; |
TOUTES | Opérateur logique utilisé avec SELECT, WHERE et HAVING, et renvoie vrai si toutes les valeurs satisfont la condition de sous-requête | SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = ‘R&D’); |
ET | Opérateur logique qui renvoie true uniquement lorsque toutes les conditions de la clause WHERE sont satisfaites. | SELECT employee_name, salary from employee WHERE city = ‘California’ AND salary > 2000; |
TOUT | Opérateur logique ; renvoie true si même l'une des valeurs de la sous-requête satisfait la condition dans 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’); |
AS | Crée un alias pour la table ou la colonne jusqu'au moment de l'exécution de la requête, utile lorsque le nom est utilisé plusieurs fois, en particulier lors des jointures de table | SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston'; |
ASC | Renvoie les données dans ascordre de fin, utilisé avec la clause ORDER BY. ORDER BY lui-même trie les résultats par ordre croissant par défaut. | SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC; |
ENTRE | Pour sélectionner des valeurs dans une plage | SELECT employee_name, joining_date, department_id from employee WHERE salary BETWEEN 40000 AND 100000; |
CASE | Se compose d'un ensemble d'instructions ; renvoie la valeur de l'instruction qui est vraie, SI aucune des conditions n'est remplie, la condition dans la partie ELSE est exécutée. S'il n'y a pas d'autre, alors renvoie NULL. | 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ÉES | Crée une nouvelle base de données avec le nom spécifié | CREATE DATABASE movies_development; |
CREER LA TABLE | Cré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)); |
DEFAULT | Dé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; |
EFFACER | Supprime les données de la table spécifiée | DELETE from employee where employee_id = 345; |
DESC | Renvoie les données en descordre de fin, utilisé avec la clause ORDER BY. | SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC; |
COLONNE DE DÉPOSE | Supprime la colonne spécifiée de la table spécifiée. | ALTER TABLE employee DROP COLUMN employee_name; |
SUPPRIMER LA BASE DE DONNÉES | Supprime toute la base de données | DROP DATABASE movies_development; |
ABANDONNER PAR DÉFAUT | Supprime la valeur par défaut de la colonne spécifiée | ALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT; |
TABLE DROP | Supprime la table spécifiée | DROP TABLE employee; |
EXISTE | Vérifie si un enregistrement existe ou non dans la sous-requête et renvoie vrai 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'); |
De | Spécifie la table à partir de laquelle les données doivent être sélectionnées ou supprimées | SELECT * FROM employee; DELETE FROM employee where employee_id = 345; |
PAR GROUPE | Regroupe les données selon la colonne spécifiée, utilisée pour les fonctions d'agrégation | Afficher le nombre d'employés dans chaque paysSELECT 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; |
IN | Utilisé pour sélectionner plusieurs valeurs à la fois dans une clause WHERE au lieu d'utiliser plusieurs conditions OR | SELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia'); |
INDEX | Index rend l'interrogation des données plus efficace et plus rapide. Les index sont généralement créés sur les colonnes les plus recherchées. | Créer un index :CREATE INDEX idx_employee ON employee (first_name, last_name); Créez un index unique où les valeurs ne peuvent pas être dupliquées : CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name); Supprimez l'index : ALTER TABLE employee DROP INDEX idx_employee; |
INSÉRER DANS | Ajouter une nouvelle ligne dans un tableau | INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, ‘Lee Cooper’, 40000, ‘Java’); |
EST NULL | Vérifie les valeurs nulles | SELECT employee_id from employee where employee_name IS NULL; |
EST NON NULLE | Vérifie les valeurs qui ne sont pas nulles | SELECT employee_id, core_skill from employee where core_skill IS NOT NULL; |
COMME | Renvoie toutes les valeurs qui correspondent à un modèle donné | SELECT employee_id, first_name, last_name where first_name LIKE ‘%tony’; |
PAS COMME | Renvoie toutes les valeurs qui ne correspondent pas au modèle donné | SELECT employee_id, first_name, last_name where first_name NOT LIKE ‘%tony’; |
OR | Renvoie true si l'une des conditions de la clause where est satisfaite | SELECT * from employee where country = ‘India’ OR country = ‘Australia’; |
COMMANDÉ PAR | Classe les résultats dans l'ordre croissant (par défaut) ou dans l'ordre spécifié dans la requête (ascse terminant ou descfin) | SELECT employee_name, salary from employee ORDER BY salary DESC; |
ROWNUM | Renvoie 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. |
SELECT | Sélectionne les colonnes mentionnées de la table en fonction des conditions données. Si * est spécifié, toutes les valeurs de colonne sont renvoyées. | SELECT employee_id from employee; SELECT * from employee; |
CHOISIR DANS | Copie 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; |
SÉLECTIONNER LE HAUT | Sélectionne le nombre spécifié d'enregistrements dans la table | SELECT TOP 5 employee_id from employee where employee_rating = 5; |
SET | Définit la valeur d'une colonne sur la nouvelle valeur spécifiée lors d'une opération UPDATE. | UPDATE employee SET first_name = ‘Tony’ WHERE employee_id = 345; |
CERTAINS | Renvoie vrai si l'une des conditions de la sous-requête est satisfaite. SOME est similaire à la commande ANY. | SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = ‘HR’); |
TABLE DU TRONCAT | Supprime les données du tableau - rappelez-vous que le tableau ne sera pas supprimé. | TRUNCATE TABLE log_info; |
UNION | Renvoie 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; |
UNIQUE | Ajoute une contrainte unique à la colonne spécifiée, ce qui signifie que la colonne ne peut pas contenir de valeurs en double. Peut être utilisé pendant les 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 À JOUR | Met à jour la valeur de la colonne spécifiée avec une nouvelle valeur | UPDATE employee SET first_name = ‘Tony’ WHERE employee_id = 345; |
VALEURS | Utilisé avec la commande INSERT pour ajouter une nouvelle ligne de valeurs dans la table | INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, ‘Lee Cooper’, 40000, ‘Java’); |
OÙ | Ajoute des conditions pour filtrer le jeu de résultats d'une instruction select | SELECT * from employee WHERE salary > 20000; |
Aggregate functions
Les fonctions d'agrégation sont des commandes de manipulation de données qui fonctionnent sur des colonnes numériques comme int et float. Celles-ci sont utiles pour filtrer et trier les données au niveau de la base de données elle-même. Certaines fonctions d'agrégat couramment utilisées sont :
FONCTION | DESCRIPTION | EXEMPLE |
AVG | Renvoie la valeur moyenne de la colonne spécifiée | SELECT AVG(marks) from students where subject = ‘English’; |
MIN | Renvoie la plus petite valeur de la colonne spécifiée | SELECT MIN(price) from product WHERE product_category = ‘shoes’; |
MAX | Renvoie la plus grande valeur de la colonne spécifiée | SELECT MAX(quantity), product_name from inventory; |
COUNT | Renvoie le nombre de lignes qui satisfont la requête | Affiche un nombre total d'enregistrements dans la table des employés.SELECT COUNT(*) from employee; Afficher le nombre d'employés dont le salaire est supérieur à 20000 SELECT COUNT(*) from employee where salary > 20000; |
SUM | Renvoie la somme des valeurs de la colonne numérique spécifiée | SELECT SUM(marks) from students where subject = ‘English’; |
SQL Joins
Les jointures SQL sont très importantes car elles connectent et filtrent 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 :
JOINDRE LE TYPE | DESCRIPTION | SYNTAXE | EXEMPLE |
Jointure interne | Renvoie les enregistrements qui correspondent dans les tables jointes ; c'est comme une intersection. | SELECT colonne1, colonne2… de table1 JOINTURE INTERNE table2 sur 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 de chaque côté - gauche ou droite. C'est comme un syndicat. | SELECT colonne1, colonne2… de table1 JOINTURE EXTÉRIEURE COMPLÈTE table2 sur 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; |
Joint gauche | Renvoie tous les enregistrements de la table de gauche et les enregistrements correspondant aux critères de la table de droite | SELECT colonne1, colonne2… de table1 JOINDRE GAUCHE table2 sur 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; |
Joindre à droite | Renvoie tous les enregistrements de la table de droite et les enregistrements correspondant aux critères de la table de gauche | SELECT colonne1, colonne2… de table1 JOINDRE À DROITE table2 sur 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; |
Additional resources
SQL est un outil important pour les développeurs de logiciels, les data scientists et les analystes. Une référence pratique des commandes SQL sous la forme d'une feuille de triche peut vous faire gagner beaucoup de temps et vous aider à comprendre la sortie attendue de chaque mot-clé.
Pour plus d'informations, veuillez consulter les ressources suivantes:
Tutoriel SQL : Aide-mémoire SQL
Intellipaat : Aide-mémoire sur les commandes SQL
Configuration du site Web : Aide-mémoire SQL