Les instruction SQL s'écrivent d'une manière qui ressemble à celle de phrases ordinaires en anglais. Cette ressemblance voulue vise à faciliter l'apprentissage et la lecture.
C'est un langage déclaratif, c'est-à-dire qu'il permet de décrire le quoi des opérations à effectuer, mais pas le comment. Les SGBD sont équipés d'optimiseurs de requêtes - des mécanismes qui déterminent automatiquement la manière optimale d'effectuer les opérations, par une estimation de la complexité algorithmique.
Les instructions de manipulation du contenu de la base de données commencent par les mots clés SELECT, UPDATE, INSERT ou DELETE qui correspondent respectivement aux opérations de recherche de contenu, modification, ajout et suppression. Divers mots clés tels que FROM, JOIN et GROUP permettent d'indiquer les opérations d'algèbre relationnelle à effectuer en vue d'obtenir le contenu à manipuler.
Les instructions de manipulation des métadonnées - description de la structure, l'organisation et les caractéristiques de la base de données - commencent avec les mots clés CREATE, ALTER ou DROP qui correspondent aux opérations d'ajouter, modifier ou supprimer une métadonnée. Ces mots clés sont immédiatement suivies du type de métadonnée à manipuler - TABLE, VIEW, INDEX, ...
Les mots clés GRANT et REVOKE permettent d'autoriser des opérations à certaines personnes, d'ajouter ou de supprimer des autorisations. Tandis que les mots clés COMMIT et ROLLBACK permettent de confirmer ou annuler l'exécution de transactions.
La syntaxe de SQL fait l'objet de la norme ISO 9075. Cette norme laisse la possibilité aux producteurs de SGBD d'y ajouter des instructions spécifiques et non normalisées. En raison de cette possibilité, ainsi que de l'évolution de la norme au cours des années, les éditeurs de SGBD ajoutent souvent des possibilités avant que celle-ci fassent objet de normes, ce qui provoque des variations dans la compréhension et l'interprétation qui est faite d'un code source en SQL par les différents logiciels de SGBD. Ces différences font qu'un code source écrit sans précautions pour un SGBD donné ne fonctionnera pas forcément avec un autre SGBD.
ALTER TABLE table1 ADD COLUMN colonne5 INTEGER NULL;
SELECT name, service FROM employees WHERE statut='stagiaire' ORDER BY name;
DECLARE N INTEGER; SET N = 1; FOR C AS C_USR_MISE_A_JOUR CURSOR FOR SELECT USR_ID, USR_NOM FROM T_UTILISATEUR_USR ORDER BY USR_ID FOR UPDATE OF USR_NOM DO IF MOD(N, 2) = 0 THEN UPDATE T_UTILISATEUR_USR ...
Le langage SQL s'utilise principalement de trois manières :