Fermer

mars 29, 2024

SQL : DML, DDL et DCL

SQL : DML, DDL et DCL


Dans le domaine des bases de données, SQL (Structured Query Language) sert de lingua franca, permettant aux utilisateurs d’interagir efficacement avec les données stockées dans divers systèmes. Bien que SQL englobe un large éventail de commandes, comprendre les distinctions entre le langage de manipulation de données (DML), le langage de définition de données (DDL) et le langage de contrôle de données (DCL) est fondamental pour utiliser ce puissant outil avec finesse.

DML, DDL et DCL constituent la triade de commandes SQL qui constituent l’épine dorsale de la gestion de bases de données. Chaque catégorie répond à des objectifs distincts, répondant à différents aspects de la manipulation des données, de la définition du schéma et du contrôle d’accès. Approfondissons chaque domaine pour comprendre leur importance et leurs fonctionnalités au sein de l’écosystème SQL.

LMD :

DML signifie Langage de Manipulation de Données. Il s’agit d’un sous-ensemble de SQL utilisé pour effectuer des opérations sur les données stockées dans la base de données. Les commandes DML permettent aux utilisateurs de récupérer, insérer, mettre à jour et supprimer des données des tables de base de données. Voici le détail des opérations :

INSÉRER: Utilisé pour insérer de nouveaux enregistrements dans une table.

Syntaxe:

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

Exemple:

INSERT INTO employees (emp_id, emp_name, emp_salary) VALUES (101, 'John Doe', 50000);

SÉLECTIONNER: Utilisé pour récupérer les données d’une ou plusieurs tables.

Syntaxe:

SELECT column1, column2, ... FROM table_name WHERE condition;

Exemple:

SELECT emp_name, emp_salary FROM employees WHERE emp_id = 101;

MISE À JOUR: Utilisé pour modifier les enregistrements existants dans une table.

Syntaxe:

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

Exemple:

UPDATE employees SET emp_salary = 55000 WHERE emp_id = 101;

SUPPRIMER: Utilisé pour supprimer un ou plusieurs enregistrements d’une table.

Syntaxe:

DELETE FROM table_name WHERE condition;

Exemple:

DELETE FROM employees WHERE emp_id = 101;

FUSIONNER: Utilisé pour effectuer une opération « upsert », qui est une combinaison d’opérations INSERT et UPDATE basées sur une condition.

Syntaxe:

MERGE INTO target_table USING source_table ON condition
WHEN MATCHED THEN UPDATE SET column1 = value1, column2 = value2, ...
WHEN NOT MATCHED THEN INSERT (column1, column2, ...) VALUES (value1, value2, ...);

Exemple:

MERGE INTO target_table USING source_table ON target_table.id = source_table.id
WHEN MATCHED THEN UPDATE SET target_table.value = source_table.value
WHEN NOT MATCHED THEN INSERT (id, value) VALUES (source_table.id, source_table.value);

Les commandes DML sont essentielles pour gérer le contenu de la base de données et sont couramment utilisées conjointement avec les commandes DDL et DCL pour manipuler, définir et contrôler la structure et l’accès à la base de données.

DDL :

DDL signifie Langage de définition de données. Il s’agit d’un sous-ensemble de SQL utilisé pour définir la structure et l’organisation des objets de la base de données. Les commandes DDL sont chargées de créer, modifier et supprimer des objets de base de données tels que des tables, des index, des vues et des schémas.

CRÉER UN TABLEAU : Utilisé pour créer une nouvelle table dans la base de données.

Syntaxe:

CREATE TABLE table_name (
         column1 datatype constraints,
         column2 datatype constraints,
         ...
     );

Exemple:

CREATE TABLE employees (
         emp_id INT PRIMARY KEY,
         emp_name VARCHAR(100),
         emp_salary DECIMAL(10, 2)
     );

MODIFIER TABLE: Utilisé pour modifier la structure d’une table existante.

Syntaxe:

ALTER TABLE table_name
     ADD column_name datatype constraints,
     MODIFY column_name datatype constraints,
     DROP COLUMN column_name;

Exemple:

ALTER TABLE employees
ADD emp_department VARCHAR(50),
DROP COLUMN emp_salary;

TABLEAU DE DÉPÔT : Utilisé pour supprimer une table et toutes ses données de la base de données.

Syntaxe:

DROP TABLE table_name;

Exemple:

DROP TABLE employees;

CRÉER UN INDICE : Utilisé pour créer un index sur une table. Les index améliorent la vitesse des opérations de récupération de données.

Syntaxe:

CREATE INDEX index_name ON table_name (column_name);

Exemple:

CREATE INDEX emp_name_index ON employees (emp_name);

INDICE DE BAISSE : Utilisé pour supprimer un index d’une table.

Syntaxe:

DROP INDEX index_name;

Exemple:

DROP INDEX emp_name_index;

CRÉER UNE VUE : Utilisé pour créer une table virtuelle basée sur le jeu de résultats d’une requête SELECT.

Syntaxe:

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

Exemple:

CREATE VIEW employee_view AS
SELECT emp_id, emp_name
FROM employees
WHERE emp_department="IT";

Les commandes DDL sont cruciales pour les administrateurs et les développeurs de bases de données afin de gérer la structure de la base de données et de garantir l’intégrité des données. Ils sont souvent utilisés en combinaison avec les commandes DML et DCL pour effectuer efficacement les tâches de gestion de bases de données.

DCL :

DCL signifie Langage de contrôle de données. Il s’agit d’un sous-ensemble de SQL utilisé pour contrôler l’accès aux données dans une base de données. Les commandes DCL concernent principalement la définition et la gestion des privilèges et autorisations des utilisateurs, garantissant ainsi la sécurité et l’intégrité des données.

ACCORDER: Utilisé pour accorder des privilèges spécifiques à un utilisateur ou un rôle.

Syntaxe:

GRANT privilege1, privilege2, ... ON object_name TO user_or_role;

Exemple:

GRANT SELECT, INSERT ON employees TO user1;

RÉVOQUER: Utilisé pour révoquer les privilèges précédemment accordés à un utilisateur ou à un rôle.

Syntaxe:

REVOKE privilege1, privilege2, ... ON object_name FROM user_or_role;

Exemple:

REVOKE SELECT, INSERT ON employees FROM user1;

COMMETTRE: Utilisé pour apporter des modifications permanentes à la base de données depuis la dernière instruction COMMIT ou ROLLBACK.

Syntaxe:

COMMIT;

Exemple:

COMMIT;

RETOUR EN ARRIERE: Utilisé pour annuler les modifications apportées à la transaction en cours et restaurer la base de données à son état précédent.

Syntaxe:

ROLLBACK;

Exemple:

ROLLBACK;

POINT DE SAUVEGARDE : Utilisé pour définir un point nommé dans une transaction auquel vous pourrez ultérieurement revenir.

Syntaxe:

SAVEPOINT savepoint_name;

Exemple:

SAVEPOINT before_update;

DÉFINIR LA TRANSACTION : Utilisé pour définir les propriétés de la transaction en cours.

Syntaxe:

SET TRANSACTION { ISOLATION LEVEL | READ WRITE | READ ONLY };

Exemple:

SET TRANSACTION READ WRITE;

Les commandes DCL sont essentielles pour garantir la sécurité des données et contrôler l’accès aux informations sensibles au sein d’une base de données. Ils sont souvent utilisés conjointement avec les commandes DDL et DML pour gérer la sécurité et l’intégrité globales de la base de données.

Référence de la documentation officielle : Types d’instructions SQL




Source link