Sql
| Fiche express | |
|---|---|
| Type | Langage de requête déclaratif |
| Norme | ISO/CEI 9075 (SQL:2016 dernière édition majeure) |
| Familles de commandes | DDL, DML, DCL, TCL |
| Voir aussi | Oracle · MySQL · PostgreSQL |
SQL (Structured Query Language) est le langage standard d'interrogation et de manipulation des bases de données relationnelles. Chaque système de gestion de base de données (SGBD) — Oracle, MySQL/MariaDB, PostgreSQL, SQL Server… — en implémente le cœur commun décrit ici, avec des extensions et des variantes de syntaxe propres à chacun.
Cette page réunit les commandes SQL génériques, transversales aux moteurs. Pour les spécificités d'un moteur donné, voir les catégories dédiées (Oracle, MySQL, PostgreSQL).
Catégories de commandes
DDL — Data Definition Language
Définition et modification de la structure des objets (bases, tables, index, vues…) :
- Sql:CREATE — création d'un objet
- Sql:ALTER — modification de la structure d'un objet existant
- Sql:DROP — suppression définitive d'un objet
DML — Data Manipulation Language
Lecture et modification des données contenues dans les tables :
- Sql:SELECT — lecture de données
- Sql:INSERT — ajout de lignes
- Sql:UPDATE — modification de lignes existantes
- Sql:DELETE — suppression de lignes
DCL — Data Control Language
Gestion des droits d'accès (utilisateurs, privilèges) : GRANT, REVOKE.
Voir l'exemple d'implémentation MySQL sur Mysql:GRANT.
TCL — Transaction Control Language
Gestion des transactions : COMMIT (valide une transaction), ROLLBACK
(annule une transaction), SAVEPOINT (point de reprise intermédiaire). Par défaut,
MySQL/InnoDB et PostgreSQL fonctionnent en autocommit (chaque requête est validée
immédiatement) sauf transaction explicite (START TRANSACTION / BEGIN).
Portabilité entre moteurs
La syntaxe de base (SELECT, INSERT, UPDATE,
DELETE, clauses WHERE/JOIN/GROUP BY) est
largement portable. Les points de divergence les plus fréquents entre moteurs :
- pagination des résultats :
LIMIT(MySQL/PostgreSQL) vsROWNUM/
FETCH FIRST(Oracle) vsTOP(SQL Server) ;
- auto-incrément :
AUTO_INCREMENT(MySQL) vsSERIAL/
GENERATED ... AS IDENTITY(PostgreSQL) vsSEQUENCE(Oracle) ;
- guillemets d'identifiants : double guillemets (
"...", standard SQL,
PostgreSQL, Oracle) vs accents graves (`...`, MySQL) ;
- moteurs de stockage (MySQL uniquement,
ENGINE=InnoDBetc.) sans équivalent
direct ailleurs.
Ressources
- sql.developpez.com — cours et tutoriels SQL en français.
- SQL de A à Z — fonctions — référence
des fonctions SQL standard et spécifiques par moteur.
Voir aussi
- Sql:CREATE — créer un objet
- Sql:ALTER — modifier un objet
- Sql:DROP — supprimer un objet
- Sql:SELECT — lire des données
- Sql:INSERT — insérer des données
- Sql:UPDATE — modifier des données
- Sql:DELETE — supprimer des données
- MySQL — implémentation MySQL/MariaDB
- Oracle — implémentation Oracle
- PostgreSQL — implémentation PostgreSQL