Commandes SQL : DQL, DDL, DML, DCL et TCL avec exemples

โšก Rรฉsumรฉ intelligent

Les commandes SQL sont regroupรฉes en cinq sous-langages qui gรจrent une base de donnรฉes relationnelle. Le langage DDL dรฉfinit la structure, le langage DML modifie les donnรฉes, le langage DCL contrรดle l'accรจs, le langage TCL gรจre les transactions et le langage DQL extrait les donnรฉes, chacun avec son propre ensemble d'instructions et sa propre syntaxe.

  • ???? LDD : Les instructions CREATE, DROP, ALTER et TRUNCATE dรฉfinissent et modifient le schรฉma des tables et des bases de donnรฉes.
  • ๏ธ DML: Les instructions INSERT, UPDATE et DELETE modifient les lignes contenues dans une table.
  • (I.e. CDL : Les commandes GRANT et REVOKE permettent d'octroyer et de supprimer des privilรจges d'accรจs sur des objets de base de donnรฉes.
  • (I.e. TCL: Les instructions COMMIT, ROLLBACK et SAVEPOINT contrรดlent la maniรจre dont les transactions sont enregistrรฉes ou annulรฉes.
  • ๐Ÿ” DQL : La commande SELECT rรฉcupรจre les lignes filtrรฉes par la clause WHERE.
  • ๐Ÿ‡ง๐Ÿ‡ท Langue standard : Tous les principaux SGBDR, de MySQL ร  Oracle et SQL Server utilise SQL.
  • โš ๏ธ Principale diffรฉrence : TRUNCATE et DELETE effacent tous deux les lignes, mais TRUNCATE est une commande DDL et ne s'applique pas ligne par ligne.

Commandes SQL DQL DDL DML DCL TCL

Qu'est-ce que SQL?

SQL est un langage de base de donnรฉes conรงu pour la rรฉcupรฉration et la gestion de donnรฉes dans une base de donnรฉes relationnelle.

SQL est le langage standard pour la gestion de bases de donnรฉes. Tous les systรจmes SGBDR comme MySQL, MS Access, OracleSybase, PostgreSQL et SQL Server utilisent SQL comme langage de base de donnรฉes standard. Le langage de programmation SQL utilise diverses commandes pour diffรฉrentes opรฉrations. Nous allons รฉtudier les commandes DCL, TCL, DQL, DDL et DML en SQL ร  l'aide d'exemples.

Pourquoi utiliser SQL ?

Voici des raisons importantes d'utiliser SQL :

  • Il aide les utilisateurs ร  accรฉder aux donnรฉes dans le Systรจme SGBDR.
  • Cela vous aide ร  dรฉcrire les donnรฉes.
  • Il vous permet de dรฉfinir les donnรฉes dans une base de donnรฉes et de manipuler ces donnรฉes spรฉcifiques.
  • Grรขce aux commandes SQL, vous pouvez crรฉer et supprimer des bases de donnรฉes et des tables.
  • SQL vous permet d'utiliser des fonctions dans une base de donnรฉes, et de crรฉer des vues et des procรฉdures stockรฉes.
  • Vous pouvez dรฉfinir des autorisations sur les tables, les procรฉdures et les vues.

Bref historique de SQL

Voici quelques points de repรจre importants de la histoire de SQL:

  • 1970 โ€“ Le Dr Edgar F. ยซ Ted ยป Codd dรฉcrit un modรจle relationnel pour les bases de donnรฉes.
  • 1974 โ€“ Apparition du langage de requรชte structurรฉ (Structured Query Language), initialement nommรฉ SEQUEL. IBM.
  • 1979 - Oracle a lancรฉ la premiรจre base de donnรฉes SQL disponible dans le commerce, basรฉe sur IBMPrototype de recherche du systรจme R de .
  • 1986 โ€“ Lโ€™ANSI a publiรฉ la premiรจre norme SQL, SQL-86.
  • 1989 โ€“ SQL-89 est apparu comme la premiรจre rรฉvision de la norme.
  • 1992 โ€“ SQL-92 (SQL2) est devenu la norme de base majeure encore utilisรฉe aujourd'hui par la plupart des bases de donnรฉes.
  • 1999 โ€“ SQL:1999 (SQL3) est lancรฉ avec des fonctionnalitรฉs telles que les dรฉclencheurs, les requรชtes rรฉcursives et l'orientation objet.
  • 2003 โ€“ SQL:2003 a ajoutรฉ des fonctions de fenรชtre, des gรฉnรฉrateurs de sรฉquences et des fonctionnalitรฉs liรฉes ร  XML.
  • 2006 โ€“ SQL :2006 a ajoutรฉ la prise en charge du langage de requรชte XML (XQuery).
  • 2008 โ€“ SQL:2008 a introduit l'instruction TRUNCATE et les dรฉclencheurs INSTEAD OF.
  • 2011 โ€“ SQL :2011 : prise en charge amรฉliorรฉe des bases de donnรฉes temporaires.
  • 2016 โ€“ SQL:2016 a ajoutรฉ la prise en charge de JSON et la correspondance de modรจles de lignes (MATCH_RECOGNIZE).
  • 2019 โ€“ SQL/MDA (Partie 15) a ajoutรฉ la prise en charge des tableaux multidimensionnels ร  la norme.
  • 2023 โ€“ SQL:2023 a ajoutรฉ un type de donnรฉes JSON natif et des requรชtes de graphes de propriรฉtรฉs (SQL/PGQ).
  • 2024 โ€“ GQL, le premier nouveau langage de base de donnรฉes ISO depuis SQL, a รฉtรฉ publiรฉ en tant que norme complรฉmentaire pour les requรชtes graphiques.
  • 2026 โ€“ SQL:2023 reste la norme actuelle, la prochaine rรฉvision รฉtant en cours d'รฉlaboration ร  l'ISO/IEC.

Types de commandes SQL

Voici cinq types de commandes SQL couramment utilisรฉes :

  • Data Definition Language (DDL)
  • Manipulation de donnรฉes Langue (DML)
  • Langue Control Data (DCL)
  • Langage de contrรดle des transactions (TCL)
  • Langage de requรชte de donnรฉes (DQL)
Types de commandes SQL
Types de SQL

Le tableau ci-dessous rรฉcapitule les cinq catรฉgories avant que chacune ne soit abordรฉe en dรฉtail.

Catรฉgories Interet Commandes principales
DDL Dรฉfinir la structure CRร‰ER, SUPPRIMER, MODIFIER, TRONQUER
DML Modifier les donnรฉes INSร‰RER, METTRE ร€ JOUR, SUPPRIMER
DCL Contrรดle d'accรจs GRANT, Rร‰VOQUER
TCL Gรฉrer les transactions COMMIT, ROLLBACK, SAVEPOINT
DQL Rรฉcupรฉrer des donnรฉes SELECT

Qu'est-ce que le DDL ?

Le langage de dรฉfinition de donnรฉes (DDL) permet de dรฉfinir la structure ou le schรฉma d'une base de donnรฉes. Dรฉcouvrons les commandes DDL et leur syntaxe. Les principales commandes DDL en SQL sont : CREATE, DROP, ALTER et TRUNCATE.

CREATE

L'instruction CREATE est utilisรฉe pour dรฉfinir la structure ou le schรฉma de la base de donnรฉes :

syntaxe:

CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);

Par exemple :

Create database university;
Create table students;
Create view for_students;

GOUTTE

La commande DROP supprime les tables et les bases de donnรฉes du SGBDR.

syntaxe:

DROP TABLE ;

Par exemple :

Drop object_type object_name;
Drop database university;
Drop table student;

ALTER

La commande ALTER permet de modifier la structure de la base de donnรฉes.

syntaxe: pour ajouter une nouvelle colonne au tableau :

ALTER TABLE table_name ADD column_name COLUMN-definition;

Pour modifier une colonne existante dans le tableau :

ALTER TABLE MODIFY(COLUMN DEFINITION....);

Par exemple :

Alter table guru99 add subject varchar;

TRONQUER

Cette commande permet de supprimer toutes les lignes du tableau et de libรฉrer l'espace contenant le tableau.

syntaxe:

TRUNCATE TABLE table_name;

Exemple :

TRUNCATE table students;

Quโ€™est-ce que le langage de manipulation de donnรฉes ?

Le langage de manipulation de donnรฉes (LMD) permet de modifier une instance de base de donnรฉes en insรฉrant, modifiant et supprimant des donnรฉes. Il est responsable de tous les types de modifications de donnรฉes dans une base de donnรฉes. Les principales commandes LMD en SQL sont :

  • INSERT
  • MISE A JOUR
  • EFFACER

INSERT

Cette instruction permet d'insรฉrer des donnรฉes dans les lignes d'un tableau.

syntaxe:

INSERT INTO TABLE_NAME (col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
Or
INSERT INTO TABLE_NAME
VALUES (value1, value2, value3, .... valueN);

Par exemple :

INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');

MISE A JOUR

Cette commande permet de mettre ร  jour ou de modifier la valeur d'une colonne du tableau.

syntaxe:

UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]

Par exemple :

UPDATE students
SET FirstName = 'Jhon', LastName= 'Wick'
WHERE StudID = 3;

EFFACER

Cette commande permet de supprimer une ou plusieurs lignes d'un tableau.

syntaxe:

DELETE FROM table_name [WHERE condition];

Par exemple :

DELETE FROM students
WHERE FirstName = 'Jhon';

Quโ€™est-ce que le DCL ?

Le langage DCL (Data Control Language) comprend des commandes telles que GRANT et REVOKE, utiles pour attribuer des droits et des permissions. D'autres commandes permettent de contrรดler les paramรจtres du systรจme de base de donnรฉes.

Subvention

Cette commande permet d'accorder ร  un utilisateur des privilรจges d'accรจs ร  une base de donnรฉes.

syntaxe:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

Par exemple :

GRANT SELECT ON Users TO'Tom'@'localhost;

Revbien

Cette commande est utile pour reprendre les autorisations ร  l'utilisateur.

syntaxe:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

Par exemple :

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

Quโ€™est-ce que TCL ?

Le langage de contrรดle des transactions, ou commandes TCL, gรจre les transactions au sein de la base de donnรฉes. Elles interagissent directement avec les รฉtats dรฉcrits sous gestion des transactions.

Sโ€™ENGAGER

Cette commande est utilisรฉe pour enregistrer toutes les transactions dans la base de donnรฉes.

syntaxe:

Commit;

Par exemple :

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

Rollback

La commande Rollback permet d'annuler les transactions qui n'ont pas encore รฉtรฉ enregistrรฉes dans la base de donnรฉes.

syntaxe:

ROLLBACK;

Exemple :

DELETE FROM Students
WHERE RollNo =25;

POINT DE SAUVEGARDE

Cette commande vous permet de dรฉfinir un point de sauvegarde au sein d'une transaction.

syntaxe:

SAVEPOINT SAVEPOINT_NAME;

Exemple :

SAVEPOINT RollNo;

Qu'est-ce que DQL?

Le langage de requรชte de donnรฉes (DQL) est utilisรฉ pour extraire des donnรฉes de la base de donnรฉes. Il n'utilise qu'une seule commande : SELECT.

SELECT

Cette commande vous permet de sรฉlectionner les attributs en fonction de la condition dรฉcrite par la clause WHERE.

syntaxe:

SELECT expressions
FROM TABLES
WHERE conditions;

Par exemple :

SELECT FirstName
FROM Student
WHERE RollNo > 15;

SUPPRIMER vs TRONQUER vs ABANDONNER

Ces trois commandes suppriment toutes des donnรฉes, mais elles diffรจrent par les donnรฉes supprimรฉes et par la possibilitรฉ d'annuler l'action. Les confondre est une erreur frรฉquente chez les dรฉbutants.

Aspect EFFACER TRONQUER GOUTTE
Catรฉgories DML DDL DDL
Supprime Lignes sรฉlectionnรฉes Toutes les lignes La table entiรจre
clause O Autorisรฉ Non autorisรฉ N'est pas applicable
Rollback Possible Gรฉnรฉralement pas Pas possible
La structure a รฉtรฉ conservรฉe. Oui Oui Non

En rรฉsumรฉ, utilisez DELETE pour supprimer des lignes spรฉcifiques, TRUNCATE pour vider rapidement une table et DROP pour supprimer complรจtement la table.

FAQ

DELETE est une commande DML qui supprime les lignes sรฉlectionnรฉes et peut รชtre annulรฉe. TRUNCATE est une commande DDL qui supprime toutes les lignes en une seule fois, est plus rapide et ne peut gรฉnรฉralement pas รชtre annulรฉe.

Elles appartiennent au langage de contrรดle des donnรฉes (DCL). GRANT accorde ร  un utilisateur des privilรจges sur un objet de base de donnรฉes, et REVOKE les lui retire ; ensemble, elles contrรดlent lโ€™accรจs et la sรฉcuritรฉ.

Oui. Les modรจles de conversion texte-SQL transforment une requรชte en langage naturel en une instruction SELECT ou autre, en s'appuyant sur un schรฉma connu. Il est impรฉratif de toujours vรฉrifier la requรชte gรฉnรฉrรฉe avant de l'exรฉcuter sur des donnรฉes de production.

Oui. En analysant le plan d'exรฉcution, l'IA peut suggรฉrer un index, une jointure rรฉรฉcrite ou une modification de la clause WHERE afin de rรฉduire les coรปts. Il est conseillรฉ de tester cette suggestion, car le plan le plus rapide dรฉpend des donnรฉes.

Le langage DDL dรฉfinit ou modifie la structure de la base de donnรฉes, notamment les tables et les colonnes. Le langage DML, quant ร  lui, modifie les donnรฉes contenues dans cette structure, via les instructions INSERT, UPDATE et DELETE. La principale diffรฉrence rรฉside dans l'opposition entre structure et contenu.

Rรฉsumez cet article avec :