Un langage commun, plusieurs mises en œuvre
Dire « j’utilise SQL » ressemble à dire « j’utilise une langue » : cela décrit un langage, pas le logiciel qui conserve le document. PostgreSQL, MySQL et Microsoft SQL Server sont des SGBD qui comprennent SQL et ajoutent leurs propres capacités.
Une base est le contenu structuré géré par le SGBD. Le serveur est le service auquel se connectent souvent applications et outils. Sur SQL.tn, PGlite exécute un PostgreSQL compilé pour le navigateur : aucun serveur distant ne reçoit les données fictives de l’exercice.
Le socle SQL voyage assez bien
SELECT, WHERE, GROUP BY, HAVING, JOIN, INSERT, UPDATE, DELETE, clés et contraintes possèdent des idées communes. Une requête simple peut fonctionner sur plusieurs moteurs ou demander seulement une petite adaptation.
La portabilité diminue avec les dates, le texte, les types, les fonctions JSON, la génération d’identifiants, l’UPSERT, les procédures et l’administration. Il faut préciser le moteur dès qu’un exemple dépasse le socle.
SELECT ville, COUNT(*) AS clients
FROM clients
WHERE actif = TRUE
GROUP BY ville
ORDER BY clients DESC;PostgreSQL : extensibilité et rigueur
PostgreSQL est un SGBD relationnel open source réputé pour sa conformité, ses types riches, ses fonctions fenêtre, JSONB, la recherche textuelle, les extensions et un langage procédural puissant. PGlite reprend une grande partie de ce moteur dans WebAssembly.
Des constructions comme INSERT ... ON CONFLICT, RETURNING, JSONB ou les fonctions PL/pgSQL sont caractéristiques de PostgreSQL, même si d’autres moteurs offrent des solutions équivalentes avec une autre syntaxe.
INSERT INTO stocks (id_produit, quantite)
VALUES (42, 8)
ON CONFLICT (id_produit)
DO UPDATE SET quantite = EXCLUDED.quantite
RETURNING id_produit, quantite;MySQL et SQL Server répondent aux mêmes familles de besoins
MySQL est très répandu dans les applications web et possède son écosystème, ses moteurs de stockage et sa syntaxe. SQL Server est le SGBD de Microsoft, fortement intégré à ses outils et utilise le dialecte T-SQL.
Limiter des lignes illustre la différence : PostgreSQL et MySQL utilisent couramment LIMIT, tandis que SQL Server emploie TOP ou OFFSET/FETCH. L’objectif métier reste le même, la forme change.
-- PostgreSQL et MySQL
SELECT produit, prix FROM produits
ORDER BY prix DESC
LIMIT 3;
-- SQL Server
SELECT TOP (3) produit, prix FROM produits
ORDER BY prix DESC;Quel moteur faut-il apprendre ?
Pour débuter, apprenez les concepts et un dialecte cohérent. PostgreSQL constitue un choix solide et SQL.tn l’utilise pour son simulateur. Si votre entreprise utilise SQL Server ou MySQL, pratiquez ensuite ses différences sur l’environnement concerné.
Le meilleur moteur dépend aussi de l’existant, des compétences de l’équipe, de l’hébergement, des connecteurs, des exigences d’exploitation et du coût total. Un tutoriel seul ne suffit pas à cette décision d’architecture.
Erreurs fréquentes
Précisez toujours le dialecte d’un exemple avancé et distinguez ce qui appartient au langage de ce qui relève du SGBD ou de son administration.
- Présenter PostgreSQL comme un langage.
- Dire qu’une requête complexe est universelle sans la tester ailleurs.
- Copier une fonction SQL Server dans PostgreSQL parce que les deux utilisent SQL.
- Choisir un moteur uniquement à partir d’une liste de fonctionnalités sans considérer l’exploitation.
Exercice de lecture
Repérez une requête que vous utilisez. Classez chaque élément : SQL commun, syntaxe propre au moteur ou opération d’administration. Par exemple, SELECT est commun, ON CONFLICT est PostgreSQL et la configuration d’une réplication relève de l’administration.
La micro-formation dédiée détaillera cette méthode. Elle reste en préparation : aucun achat n’est proposé avant ses exercices validés.
Suivez la préparation de cette compétence.
Consultez le résultat visé, les prérequis et le statut réel de la micro-formation.
