Vues PostgreSQL
Une vue est une table virtuelle, essentiellement une instruction PostgreSQL stockée dans la base de données sous un nom associé.
Une vue est en fait une combinaison de tables sous la forme d'une requête PostgreSQL prédéfinie.
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 plusieurs tables, selon la requête PostgreSQL utilisée pour créer la vue.
Une vue est une table virtuelle qui permet aux utilisateurs d'obtenir ce qui suit :
- Un moyen pour les utilisateurs ou les groupes d'utilisateurs de trouver des données structurées d'une manière plus naturelle ou intuitive.
- Restreindre l'accès aux données, afin que les utilisateurs ne puissent voir que des données limitées plutôt que la table complète.
- Résumer les données de différentes tables pour générer des rapports.
Les vues PostgreSQL sont en lecture seule, de sorte que les instructions DELETE, INSERT ou UPDATE ne peuvent pas être exécutées sur une vue. Cependant, vous pouvez créer un déclencheur sur une vue qui se déclenche lorsqu'une opération DELETE, INSERT ou UPDATE sur la vue est tentée, et les actions à effectuer sont définies dans le contenu du déclencheur.
CREATE VIEW (Créer une vue)
Dans PostgreSQL, utilisez l'instruction CREATE VIEW pour créer une vue. Une vue peut être créée à partir d'une table, de plusieurs tables ou d'autres vues.
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 l'instruction SELECT, tout comme dans une requête SELECT SQL normale. Si le mot-clé facultatif TEMP ou TEMPORARY est utilisé, la vue sera créée dans une base de données temporaire.
Exemple
Créer la table COMPANY (Télécharger le fichier SQL COMPANY), le contenu des données est le suivant :
exampledb# select * from COMPANY; 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 (7 rows)
Maintenant, voici un exemple de création d'une vue à partir de la table COMPANY. La vue ne sélectionne que quelques colonnes de la table COMPANY :
exampledb=# CREATE VIEW COMPANY_VIEW AS SELECT ID, NAME, AGE FROM COMPANY;
Maintenant, vous pouvez interroger COMPANY_VIEW d'une manière similaire à l'interrogation d'une table réelle. Voici un exemple :
exampledb# SELECT * FROM COMPANY_VIEW;
Le résultat obtenu est le 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)
DROP VIEW (Supprimer une vue)
Pour supprimer une vue, utilisez simplement l'instruction DROP VIEW avec view_name. La syntaxe de base de DROP VIEW est la suivante :
exampledb=# DROP VIEW view_name;
La commande suivante supprimera la vue COMPANY_VIEW que nous avons créée précédemment :
exampledb=# DROP VIEW COMPANY_VIEW;