Extension de PostgreSQL

Fonctions permettant de manipuler les données dans PostgreSQL

Brian Piccolo

Sr. Director, Digital Strategy

Types de données définis par l'utilisateur

Types de données énumérés

CREATE TYPE dayofweek AS ENUM (
      'Monday', 
      'Tuesday',
      'Wednesday', 
      'Thursday', 
      'Friday', 
      'Saturday', 
      'Sunday'
);
Fonctions permettant de manipuler les données dans PostgreSQL

Récupération d'informations sur les types de données définis par l'utilisateur

SELECT typname, typcategory
FROM pg_type
WHERE typname='dayofweek';

+-----------+-------------+ | typname | typcategory | |-----------|-------------| | dayofweek | E | +-----------+-------------+
Fonctions permettant de manipuler les données dans PostgreSQL

Récupération d'informations sur les types de données définis par l'utilisateur

SELECT column_name, data_type, udt_name
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name ='film';

+-----------------------------------------------+ | column_name | data_type | udt_name | |-------------|-------------------|-------------| | title | character varying | varchar | | rating | USER-DEFINED | mpaa_rating | +-----------------------------------------------+
Fonctions permettant de manipuler les données dans PostgreSQL

Fonctions définies par l’utilisateur

CREATE FUNCTION squared(i integer) RETURNS integer AS $$
    BEGIN
        RETURN i * i;
    END;
$$ LANGUAGE plpgsql;
SELECT squared(10);

+---------+ | squared | |---------| | 100 | +---------+
Fonctions permettant de manipuler les données dans PostgreSQL

Fonctions définies par l'utilisateur dans la base de données Sakila

  • get_customer_balance(customer_id, effective_data) : calcule le solde impayé actuel pour un client donné.

  • inventory_held_by_customer(inventory_id) : renvoie le customer id qui loue actuellement un article en stock ou null s'il est actuellement disponible.

  • inventory_in_stock(inventory_id) : renvoie une valeur booléenne indiquant si un article en stock est actuellement disponible.
Fonctions permettant de manipuler les données dans PostgreSQL

Passons à la pratique !

Fonctions permettant de manipuler les données dans PostgreSQL

Preparing Video For Download...