SQL vs PL/SQL : quelle différence ? (exemples Oracle)

SQL vs PL/SQL : SQL interroge les données, PL/SQL ajoute variables, conditions, boucles et gestion d'erreurs. La différence expliquée avec des exemples.

Comparatif SQL vs PL/SQL

SQL est le langage qui interroge et manipule les données ; PL/SQL est le langage de programmation procédural d’Oracle qui ajoute au SQL des variables, des conditions, des boucles et la gestion d’erreurs. En clair : SQL dit quoi faire sur les données, PL/SQL permet d’orchestrer une logique autour. Voici la différence en détail, avec exemples.

Publicité

Tableau comparatif

SQLPL/SQL
NatureLangage de requête (déclaratif)Langage procédural
ExécutionUn ordre à la foisDes blocs entiers (logique)
Variables, IF, boucles❌ non✅ oui
Gestion d’erreurs❌ non✅ (EXCEPTION)
Objets stockésProcédures, fonctions, packages, triggers
RôleManipuler les donnéesAutomatiser une logique métier

SQL : interroger et manipuler les données

SQL (Structured Query Language) est déclaratif : vous décrivez le résultat voulu, le moteur décide comment l’obtenir.

SELECT nom, solde FROM comptes WHERE solde > 1000;
UPDATE comptes SET solde = solde * 1.01 WHERE actif = 'O';

Chaque instruction est autonome. SQL ne sait pas, à lui seul, « faire une boucle » ou « réagir à une erreur ». Pour les bases : notre tutoriel SELECT en SQL Oracle.

PL/SQL : ajouter de la logique procédurale

PL/SQL (Procedural Language/SQL) enveloppe le SQL dans une vraie structure de programmation : blocs, variables, conditions, boucles, exceptions.

DECLARE
  v_solde comptes.solde%TYPE;
BEGIN
  SELECT solde INTO v_solde FROM comptes WHERE id = 42;
  IF v_solde < 0 THEN
    DBMS_OUTPUT.put_line('Compte à découvert !');
  ELSE
    UPDATE comptes SET solde = v_solde * 1.01 WHERE id = 42;
  END IF;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.put_line('Compte introuvable');
END;

Ici, le SQL (SELECT, UPDATE) est intégré dans une logique. PL/SQL sert à créer des procédures, triggers, packages, etc.

Comment ils travaillent ensemble

On ne choisit pas « SQL ou PL/SQL » : on les combine. Le SQL fait le travail sur les données ; PL/SQL orchestre quand et comment. Un trigger (PL/SQL) qui se déclenche après un INSERT (SQL) en est l’exemple parfait.

Quand utiliser quoi ?

  • Une requête, un calcul, un export → SQL seul.
  • Une règle métier, un traitement conditionnel, une automatisation → PL/SQL.
  • Règle d’or : si un seul ordre SQL ensembliste suffit, n’enroulez pas inutilement du PL/SQL autour (c’est plus lent).

FAQ

Faut-il apprendre SQL avant PL/SQL ?

Oui, absolument : PL/SQL repose sur SQL. Maîtrisez d’abord SELECT, les jointures et les fonctions, puis ajoutez la logique procédurale.

PL/SQL existe-t-il ailleurs que sur Oracle ?

PL/SQL est propre à Oracle. Les équivalents sont PL/pgSQL (PostgreSQL) et T-SQL (SQL Server) — même idée, syntaxe différente.

PL/SQL est-il plus rapide que SQL ?

Non : pour manipuler des ensembles de données, le SQL pur est généralement plus rapide. PL/SQL brille quand il faut de la logique, pas pour remplacer un bon ordre ensembliste.

Un nouveau tutoriel SQL par semaine

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Publicité

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Cours SQL & Oracle — 100% gratuitVoir les cours →