SQL PL et SQL/PSM: développer d'applications bases de données

SQL/PSM (SQL/Persistent Stored Modules) est une norme ISO pour la "logique procédurale" dans SQL (depuis SQL:1999). SQL/PSM est donc un langage de programmation, utilisé principalement pour l'implémentation de procédures stockées, triggers (déclencheurs), et fonctions définies (UDF) dans plusieurs bases de données relationnelles.

SQL PL (utilisé par Db2) était la première implémentation commerciale de SQL/PSM. Aussi MySQL et MariaDB utilisent SQL/PSM pour leurs procédures stockées, triggers et UDF; et en PostgreSQL ont peut utiliser le module PL/pgPSM.

Malheureusement, Oracle utilise un autre langage procédural: PL/SQL (voir Développement d'applications avec PL/SQL), qui n'est pas traité dans ce cours-ci. Aussi PostgreSQL utilise PL/SQL par défaut. Un troisième langage existe : Transact-SQL (t-SQL), aussi non compatible avec SQL/PSM, et utilisé par SQL Server et d'autres produits Microsoft.

SQL/PSM est particulièrement utile pour créer des procédures stockées, qui ont de plus en plus remplacé les applications qui étaient principalement écrites en (pour Unix, Linux, macOS) Java, C, C++, (pour MS-Windows) Java, C#, (pour z/OS) COBOL, PL/I REXX. SQL/PSM est ainsi devenu le langage de programmation par excellence pour intégrer la logique applicative avec "embedded" SQL. Dans Db2, cela implique en outre que la procédure sera de l'SQL statique: interprété/compilé une seule fois, exécuté plusieurs fois, ce qui est important pour la performance.

Ce cours traite donc d'abord la langage de programmation SQL/PSM; tous les détails et possibilités syntaxiques seront traités en grand détail. Nous examinons bien entendu l'interaction entre les éléments de l'environnement de programmation (comme les variables, le "program flow", la gestion des exceptions) et le DML tels que les instructions SELECT ou les curseurs. Pendant le cours, les participants auront l'opportunité de développer des procédures stockées en SQL/PSM, soit en Db2, soit en soit en MySQL, soit en MariaDB, afin de se trouver à l'aise avec ce matériel.

Lors de ce cours,

  • les participants connaîtront la syntaxe de base de SQL/PSM, alias SQL PL;
  • on pourra développer, corriger, et exécuter de nouveaux programmes;
  • on saura ce qui est important quand on récrira un programme existant dans une différente langue de programmation;
  • les participants sauront utiliser des curseurs at des "exception handlers" d'une manière intelligente.

Planifier une session?

Formation interactive en temps réel – disponible en personne ou en ligne ou dans un format hybride. La formation peut être effectuée en français, en anglais ou en néerlandais.

DEMANDER FORMATION EN ENTREPRISE

 

Calendrier publique des formations
dateduréelang.lieuprix 
13 oct2Leuven 1310 EUR (excl. TVA)
13 oct2web based 1310 EUR (excl. TVA)
INFO SESSION ET INSCRIPTION

Participants

Ce cours s'adresse en premier lieu aux développeurs des programmes se servant de Db2, MySQL ou MariaDB, et qui veulent apprendre comment écrire ce genre de programmes en SQL/PSM.

Également, les DBA peuvent agrandir pendant ce cours leur expérience pour écrire ou installer des procédures stockées, des triggers ou des fonctions scalaires et tabulaires, ou pour automatiser les tâches de DBA d'une façon assez simple.

Connaissances préalables

De l'expérience avec SQL et avec Db2 (cf. Db2 for z/OS: cours de base ou Db2 for LUW: cours de base), MySQL ou MariaDB (cf MySQL & MariaDB: cours de base) est conseillé. La connaissance d'un langage de programmation peut être un avantage mais n'est pas obligatoire.

Contenu

  • Introduction SQL/PSM
  • Variables
    • les déclarer, initialiser, utiliser; blocs BEGIN ... END
  • Contrôle du déroulement de programmes
    • structures conditionnelles IF...THEN...ELSE; CASE;
    • itérations: WHILE..DO loop • FOR...DO loop • ITERATE • REPEAT...UNTIL • LOOP • cursor-based FOR-loop
  • Travailler avec des données de la base de données; curseurs
    • SELECT INTO • déclaration et utilisation des curseurs • parametrisation • insert, delete, update 'where current of'
  • Traitement des erreurs
    • exceptions prédéfinis • déroulement du programme à l'aide d'exceptions • SIGNAL • GET DIAGNOSTICS
  • Objets procédurales
    • fonctions scalaires • procédures SQL • triggers; l'instruction SQL CALL;
    • possibilités pour la déclaration des paramètres et des 'locators'; options comme 'commit on return'
  • L'SQL dynamique:
    • PREPARE et EXECUTE d'une requête construite dynamiquement

Pédagogie

Répartition d'exposés théoriques et de travaux pratiques.

Certificat

À la fin du cours, le participant reçoit un «Certificat de réussite».

Durée

2 jours.

Formateur

Aussi intéressant

Participants de ce cours ont aussi suivi les formations suivantes:


INFO SESSION ET INSCRIPTION