Présentation

Dans la plupart des SGBD-R, il existe un langage de programmation impératif classique qui permet d’écrire des successions d’opérations relationnelles en utilisant les possibilités habituelles de la programmation impérative type Pascal, C ou C++ (variable, affectation, tests,boucle, exception, procédure et fonction…).

PL-SQL est le nom générique de ce langage pour tous les SGBD. La syntaxe du PL-SQL est en partie standardisée.

Ce type de programme est très interessant pour :

Développer un Bloc simple PL/SQL

[ DECLARE ]
- Variables, constantes, curseurs,
exceptions utilisateurs
BEGIN
- Ordres SQL
- Instructions de Contrôle PL/SQL
[ EXCEPTION ]
- Traitements à effectuer lors d'erreurs
END ;

CM4 toulouse guillaume Cabanac : introduction PL/SQL

CM5 toulouse guillaume Cabanac : PL/SQL Exceptions et curseurs

Rappel 1: Variables et Affichage

Créez une variable nommée nom_utilisateur et initialisez-la avec votre nom. Affichez le contenu de la variable nom_utilisateur à l’aide d’une instruction SELECT.

-- Création de la variable
SET @nom_utilisateur = 'VotreNom';

-- Affichage de la variable
SELECT @nom_utilisateur AS NomUtilisateur;

Exercice 1: Procédures Stockées

Créez une procédure stockée nommée ajouter_utilisateur qui prend en paramètres le nom et l’âge d’un utilisateur, et insère ces informations dans une table utilisateurs. Appelez la procédure avec quelques exemples.

-- Création de la table utilisateurs
DROP TABLE IF EXISTS utilisateurs;
CREATE TABLE utilisateurs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(50),
    prenom VARCHAR(50),
    age INT,
    majeur INT
);

DROP PROCEDURE IF EXISTS AjouterUtilisateur;  
-- Création de la procédure stockée
DELIMITER //
CREATE PROCEDURE AjouterUtilisateur(IN nom_utilisateur VARCHAR(50), IN age_utilisateur INT)
BEGIN
    INSERT INTO utilisateurs (nom, age) VALUES (nom_utilisateur, age_utilisateur);
END //
DELIMITER ;

-- Appel de la procédure
CALL AjouterUtilisateur('John Doe', 25);
CALL AjouterUtilisateur('Jane Doe', 30);

-- Affichage du contenu de la table utilisateurs
SELECT * FROM utilisateurs;

Modifier la fonction AjouterUtilisateur pour mettre en majuscule le nom et en minuscule le prénom. (il faut modifier l’appel de la procédure et passer dans 2 paramètres distincts le nom et le prénom)

Exercice 2: Fonctions