# SQL

> Langage standardisé permettant d'interroger, de modifier et de définir la structure des données dans une base relationnelle comme MySQL ou MariaDB.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/sql/

Derrière chaque affichage d'article, chaque recherche de commentaire ou chaque mise à jour d'option se cache une même famille d'instructions, écrites dans un langage conçu dans les années 1970 et resté depuis la référence quasi universelle des bases relationnelles.

## Ce que WordPress en fait, et ce qu'il en cache

WordPress encapsule presque toujours ce langage derrière des fonctions PHP de haut niveau : `WP_Query`, `get_posts()` ou `update_option()` génèrent en coulisses les instructions `SELECT`, `INSERT` ou `UPDATE` nécessaires. La classe `$wpdb`, elle, donne un accès direct au langage lorsqu'une requête sort du cadre prévu par l'API classique, à condition de toujours passer par `prepare()` pour les valeurs variables.

## Exemple

```
SELECT post_title, post_date
FROM wp_posts
WHERE post_status = 'publish'
ORDER BY post_date DESC
LIMIT 5;
```

## Bon à savoir

- Activer la constante `SAVEQUERIES` dans `wp-config.php` permet, en développement uniquement, de lister toutes les requêtes exécutées sur une page via `$wpdb->queries` ; à ne jamais laisser active en production, l'impact sur la mémoire étant significatif.
- Écrire une requête directe avec `$wpdb` reste justifié dans des cas précis (statistiques agrégées, jointures complexes), mais contourne les caches internes de `WP_Query`, à réintroduire manuellement si nécessaire.
- Ce langage se décline en plusieurs dialectes proches mais pas identiques : la syntaxe utilisée par MySQL et MariaDB diverge parfois légèrement de celle de PostgreSQL ou SQLite.
- Un débutant confond parfois ce langage avec le moteur de base de données lui-même : SQL désigne la grammaire des requêtes, tandis que MySQL ou MariaDB désignent le logiciel qui l'exécute réellement.
