SQL (Structured Query Language) est un langage utilisé pour interagir avec les bases de données relationnelles. Il permet de créer, lire, mettre à jour et supprimer des données. Cet article présente une introduction aux types de requêtes SQL, avec des exemples simples adaptés à MySQL/MariaDB et SQLite.
Bien que SQL soit un langage standardisé, chaque système de gestion de base de données (SGBD) implémente ses propres variantes, appelées "dialectes". Ces dialectes introduisent des différences au niveau des fonctionnalités, de la syntaxe ou du comportement des commandes SQL.
La norme SQL est un ensemble de spécifications définies pour garantir une certaine portabilité et compatibilité des commandes SQL entre différents SGBD. Elle définit les fonctionnalités de base comme :
CREATE, ALTER, DROP) pour la gestion des structures.INSERT, UPDATE, DELETE) pour la manipulation des données.SELECT) pour les requêtes.Cependant, chaque SGBD interprète cette norme de manière spécifique et propose souvent des extensions ou des fonctionnalités non standard.
Les "dialectes" SQL permettent de tirer parti des fonctionnalités avancées de chaque SGBD, mais en comprendre les différences est essentiel pour écrire des requêtes robustes et portables.
Dans les cours de cette année, nous aborderont les dialectes propres à SQLite3 et MySql/MariaDB.
SQL peut être divisé en plusieurs catégories de requêtes selon leur objectif. Voici les principaux types :
Ces requêtes permettent de définir ou modifier la structure de la base de données : créer, modifier ou supprimer des tables et d'autres objets.
Ces requêtes permettent de manipuler les données à l'intérieur des tables : insertion, mise à jour ou suppression des enregistrements.
Ces requêtes permettent d'interroger les données à l'aide de la commande SELECT.
Il existe d'autres types de requêtes SQL. Bien qu'importants dans le monde des bases de données, ces types ne seront pas abordés dans ces cours d'introduction.
Ces requêtes permettent de gérer les permissions et la sécurité des bases de données.
Ces requêtes permettent de contrôler les transactions, comme valider ou annuler des modifications.
CREATE TABLE utilisateurs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
);
Ce script crée une table utilisateurs avec 4 colonnes : id, nom, age et email.
ALTER TABLE utilisateurs ADD colonne_creation DATE;
ALTER TABLE utilisateurs ADD COLUMN colonne_creation DATE;
Ce script ajoute une colonne colonne_creation à la table utilisateurs.
DROP TABLE IF EXISTS utilisateurs;
INSERT INTO utilisateurs (nom, age, email)
VALUES ('Alice', 25, 'alice@example.com');
Ce script insère une ligne dans la table utilisateurs.
UPDATE utilisateurs
SET age = 26
WHERE nom = 'Alice';
Ce script met à jour l'âge de l'utilisateur nommé "Alice".
DELETE FROM utilisateurs
WHERE age < 20;
Ce script supprime tous les utilisateurs ayant moins de 20 ans.
SELECT * FROM utilisateurs;
Ce script récupère toutes les colonnes et lignes de la table utilisateurs.
SELECT nom, email
FROM utilisateurs
WHERE age > 25;
Ce script récupère les colonnes nom et email des utilisateurs âgés de plus de 25 ans.
SELECT nom, age
FROM utilisateurs
ORDER BY age DESC;
Ce script récupère les colonnes nom et age triées par ordre décroissant de l'âge.
GRANT SELECT, INSERT ON utilisateurs TO 'nouvel_utilisateur'@'localhost';
Ce script donne les permissions SELECT et INSERT à un utilisateur nommé nouvel_utilisateur.
SQLite ne gère pas les permissions utilisateur directement, car il est conçu pour être utilisé comme une base de données légère embarquée.
REVOKE INSERT ON utilisateurs FROM 'nouvel_utilisateur'@'localhost';
COMMIT;
Ce script valide toutes les modifications effectuées dans une transaction.
ROLLBACK;
Ce script annule toutes les modifications effectuées depuis le début de la transaction.
SQL est un langage puissant qui offre une variété de commandes pour manipuler des bases de données. Cet article a présenté les principales catégories de requêtes et des exemples simples pour chaque type. Ces bases permettent de débuter avec SQL et de comprendre les actions fondamentales, que vous utilisiez MySQL, MariaDB ou SQLite. Pour aller plus loin, explorez des notions avancées comme les jointures, les sous-requêtes et les index.