Aller au contenu
Développement medium

SQL pour les admins et DevOps : le langage universel des bases de données

5 min de lecture

SQL (Structured Query Language) est le langage standard pour interagir avec les bases de données relationnelles. Que vous administriez PostgreSQL, MySQL, MariaDB ou SQLite, les mêmes fondamentaux SQL reviennent partout : requêter des données, les modifier, les structurer, les protéger.

Vous n’avez pas besoin d’être développeur pour en avoir besoin. Un SELECT bien écrit dans pg_stat_activity ou performance_schema peut vous épargner des heures de diagnostic. Un UPDATE … WHERE mal maîtrisé peut détruire des données en production en une fraction de seconde.

Cette section vous propose une progression en 5 guides, du SELECT basique aux fonctionnalités avancées (CTE, window functions, vues). Tous les guides s’appuient sur une base fil rouge SQLite (infra.db) — une base d’infrastructure avec des serveurs, des déploiements, des alertes et des utilisateurs. Vous la créez une seule fois et vous la réutilisez tout au long du parcours.

L’objectif n’est pas de vous former au développement applicatif, mais de vous donner les compétences SQL indispensables au quotidien pour l’administration et le DevOps.

  • Administrateurs système qui gèrent des bases PostgreSQL, MySQL ou MariaDB et ont besoin de requêter, vérifier ou corriger des données
  • DevOps qui écrivent des scripts de migration, des healthchecks SQL ou des pipelines CI/CD avec des étapes base de données
  • SRE qui diagnostiquent des problèmes de performance via EXPLAIN, pg_stat_statements ou le slow query log
  • Toute personne qui touche à une base relationnelle sans en maîtriser le langage

La progression suit un ordre logique : lire les données, puis les modifier, puis croiser les tables, puis agréger, puis structurer les requêtes complexes. Chaque guide s’appuie sur les connaissances du précédent.

ÉtapeGuideCe que vous saurez faire
1Syntaxe de baseLire et filtrer les données d’une table
2Manipuler les donnéesInsérer, modifier, supprimer en toute sécurité
3Jointures et sous-requêtesCroiser les données de plusieurs tables
4Fonctions et agrégationsCalculer des statistiques et transformer les données
5SQL avancéStructurer des requêtes complexes lisibles et performantes

Tous les guides utilisent une base SQLite nommée infra.db, créée dans le dossier ~/Projets/cours-sql. Elle contient 6 tables réalistes :

TableContenuLignes
serversServeurs avec OS, datacenter, RAM, CPU12
usersUtilisateurs (admins, ops, devs)10
servicesServices déployés sur les serveurs15
deploymentsHistorique des déploiements25
alertsAlertes de supervision20
categoriesCatégories hiérarchiques (pour les CTE récursifs)11

Le script init-db.sql complet est fourni dans le premier guide (Syntaxe de base). Vous n’avez besoin que de sqlite3 (installé par défaut sur la plupart des distributions Linux et macOS).

SQL est un standard ISO (dernière version : SQL:2023, ISO/IEC 9075:2023). En pratique, chaque SGBD ajoute ses extensions propres :

FonctionnalitéSQL standardSQLitePostgreSQLMySQL
Limiter les résultatsFETCH FIRST n ROWS ONLYLIMIT nLIMIT nLIMIT n
Insensible à la casseLIKE + UPPER()LIKE (insensible ASCII)ILIKELIKE (insensible par défaut)
Auto-incrémentationGENERATED ALWAYS AS IDENTITYINTEGER PRIMARY KEY AUTOINCREMENTGENERATED ALWAYS AS IDENTITYAUTO_INCREMENT
UpsertMERGEON CONFLICTON CONFLICTON DUPLICATE KEY UPDATE
Concaténation||||||CONCAT()
DatesTypes dédiésTEXT (ISO 8601) + strftime()TIMESTAMPDATETIME

Les guides de cette section utilisent une syntaxe SQLite comme base. Les différences avec PostgreSQL et MySQL sont signalées dans des encadrés quand elles sont significatives.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn