Les Variables En PostgreSQL
En PostgreSQL, les variables sont principalement utilisées dans les fonctions
stockées et les blocs anonymes (DO blocks). Voici les aspects essentiels des
variables en PostgreSQL :
1. Déclaration des Variables
Les variables en PostgreSQL sont déclarées à l’intérieur d’un bloc PL/pgSQL
(DECLARE dans les fonctions ou blocs DO).
Syntaxe :
DECLARE nom_variable TYPE [DEFAULT valeur_initiale];
Exemple :
DECLARE age INTEGER DEFAULT 25;
2. Types de Données des Variables
Les variables en PostgreSQL peuvent avoir les types de données suivants :
• Numériques : INTEGER, BIGINT, DECIMAL, NUMERIC, REAL,
DOUBLE PRECISION
• Caractères : CHAR, VARCHAR, TEXT
• Booléens : BOOLEAN
• Date & Heure : DATE, TIMESTAMP, TIME, INTERVAL
• Tableaux : INTEGER[], TEXT[]
• Autres types : UUID, JSON, JSONB, RECORD, CURSOR
Exemple :
DECLARE nom TEXT;
DECLARE salaire DECIMAL(10,2);
DECLARE date_embauche DATE;
DECLARE est_actif BOOLEAN DEFAULT TRUE;
DECLARE tableau_nombres INTEGER[];
3. Affectation des Variables
Il existe plusieurs façons d'affecter une valeur à une variable :
1. Utilisation de :=
Dans PL/pgSQL, on utilise := pour affecter une valeur :
nom_variable := valeur;
Exemple :
DECLARE age INTEGER;
BEGIN
age := 30;
END;
2. Utilisation de SELECT INTO
Permet d'affecter une valeur issue d’une requête SQL.
SELECT colonne INTO nom_variable FROM table WHERE condition;
Exemple :
DECLARE salaire DECIMAL;
BEGIN
SELECT montant INTO salaire FROM employes WHERE id = 1;
END;
3. Utilisation de DEFAULT lors de la déclaration
DECLARE nom TEXT DEFAULT 'Jean';
4. Utilisation des Variables dans un Bloc PL/pgSQL
Exemple complet :
DO $$
DECLARE
nom TEXT := 'Alice';
age INTEGER := 28;
salaire DECIMAL(10,2);
BEGIN
-- Affectation avec SELECT INTO
SELECT montant INTO salaire FROM employes WHERE id = 1;
-- Affichage des valeurs
RAISE NOTICE 'Nom: %, Age: %, Salaire: %', nom, age, salaire;
END $$;
5. Variables et Boucles
Les variables sont souvent utilisées dans des boucles :
DO $$
DECLARE
compteur INTEGER := 1;
BEGIN
WHILE compteur <= 5 LOOP
RAISE NOTICE 'Compteur: %', compteur;
compteur := compteur + 1;
END LOOP;
END $$;
Conclusion
• En SQL simple, on n’a pas de variables, sauf via WITH et des alias.
• En PL/pgSQL, les variables sont déclarées avec DECLARE, affectées
avec := ou SELECT INTO, et utilisées dans des blocs DO ou des
fonctions stockées.