PostgreSQL - VUES
Les vues sont des pseudo-tables. Autrement dit, ce ne sont pas de vraies tables; apparaissent néanmoins comme des tableaux ordinaires à SELECT. Une vue peut représenter un sous-ensemble d'une table réelle, sélectionnant certaines colonnes ou certaines lignes d'une table ordinaire. Une vue peut même représenter des tables jointes. Étant donné que les vues se voient attribuer des autorisations distinctes, vous pouvez les utiliser pour restreindre l'accès aux tables afin que les utilisateurs ne voient que des lignes ou des colonnes spécifiques d'une table.
Une vue peut contenir toutes les lignes d'une table ou des lignes sélectionnées d'une ou plusieurs tables. Une vue peut être créée à partir d'une ou de plusieurs tables, ce qui dépend de la requête PostgreSQL écrite pour créer une vue.
Les vues, qui sont des sortes de tables virtuelles, permettent aux utilisateurs d'effectuer les opérations suivantes:
Structurez les données d'une manière que les utilisateurs ou les classes d'utilisateurs trouvent naturelle ou intuitive.
Restreignez l'accès aux données de sorte qu'un utilisateur ne puisse voir que des données limitées au lieu d'un tableau complet.
Résumez les données de diverses tables, qui peuvent être utilisées pour générer des rapports.
Étant donné que les vues ne sont pas des tables ordinaires, vous ne pourrez peut-être pas exécuter une instruction DELETE, INSERT ou UPDATE sur une vue. Toutefois, vous pouvez créer une règle pour corriger ce problème d'utilisation de DELETE, INSERT ou UPDATE sur une vue.
Créer des vues
Les vues PostgreSQL sont créées à l'aide du CREATE VIEWdéclaration. Les vues PostgreSQL peuvent être créées à partir d'une seule table, de plusieurs tables ou d'une autre vue.
La syntaxe de base de CREATE VIEW est la suivante -
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
Vous pouvez inclure plusieurs tables dans votre instruction SELECT de la même manière que vous les utilisez dans une requête SELECT PostgreSQL normale. Si le mot clé facultatif TEMP ou TEMPORARY est présent, la vue sera créée dans l'espace temporaire. Les vues temporaires sont automatiquement supprimées à la fin de la session en cours.
Exemple
Considérez que la table COMPANY contient les enregistrements suivants -
id | name | age | address | salary
----+-------+-----+------------+--------
1 | Paul | 32 | California | 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall | 45000
7 | James | 24 | Houston | 10000
Voici maintenant un exemple pour créer une vue à partir de la table COMPANY. Cette vue serait utilisée pour n'avoir que quelques colonnes de la table COMPANY -
testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM COMPANY;
Vous pouvez désormais interroger COMPANY_VIEW de la même manière que vous interrogez une table réelle. Voici l'exemple -
testdb=# SELECT * FROM COMPANY_VIEW;
Cela produirait le résultat suivant -
id | name | age
----+-------+-----
1 | Paul | 32
2 | Allen | 25
3 | Teddy | 23
4 | Mark | 25
5 | David | 27
6 | Kim | 22
7 | James | 24
(7 rows)
Suppression de vues
Pour supprimer une vue, utilisez simplement l'instruction DROP VIEW avec le view_name. La syntaxe de base de DROP VIEW est la suivante -
testdb=# DROP VIEW view_name;
La commande suivante supprimera la vue COMPANY_VIEW, que nous avons créée dans la dernière section -
testdb=# DROP VIEW COMPANY_VIEW;