Le SQL est le langage servant à exploiter les bases de données relationnelles. Il est constitué de trois langages:
  1. Le DML (Data Manipulation Language) est constitué des commandes INSERT, UPDATE, DELETE et la très célèbre commande SELECT. Il sert essentiellement à manipuler des enregistrements.
  2. Le DDL (Data Definition Language) est constitué des commandes CREATE, ALTER, DROP et RENAME. Il sert à manipuler la structure des tables.
  3. Le DCL (Data Control Language) est constitué des commandes GRANT, DENY, REVOKE, COMMIT, ROLLBACK et LOCK. Il contrôle l'accès aux données.
Toutes ces commandes constituent un langage déclaratif. En effet, quand on s'adresse à une base de données, on déclare le quoi et non le comment. C'est ce qui fait la force et la complémentarité du SQL face aux langages impératifs, orientés objets et autres.

Le langage existe depuis 1974. Bien qu'il ait été normalisé à plusieurs reprises par ANSI et ISO, il convient en général d'être assez spécifique au moment d'implémenter le code. En effet, les principaux fabricants de SGBDR ont des dialectes et des conventions qui leurs sont propres. Oracle à son PL/SQL, PostgreSQL à le PL/pgSQL, Sybase et Microsoft ont le T-SQL comme extension du SQL standardisé en vue d'en faire un langage qui inclut un volet procédural en plus d'appliquer des filtres et autre opérations là où le langage standard ne le permet pas. Cette richesse est à double tranchant. Il est relativement rare de voir du code SQL qui n'est pas teinté de la plateforme où il est destiné. Au fil des ans, de nombreuses abstractions sont venues servir d'interface aux logiciels qui se connectent aux bases de données afin d'en standardiser l'accès tout en préservant leurs avantages (ODBC, JDBC, ADO, ... et le mapping relationnel objet).

Je vous recommande le document Les bases fondamentales du langage Transact SQL produit par l'Association Dotnet France pour approfondir le sujet.