CREAR VISTA
Utilice el comando CREATE VIEW para crear una vista. Una vista no se materializa físicamente. En lugar de ello, el sistema genera automáticamente una regla de recuperación de consulta-reescritura (query-rewrites) para el soporte de operaciones de recuperación en la vista. Las vistas son de solo lectura. El sistema no permite inguna inserción, actualización o supresión en una vista.
Sintaxis
CREATE [OR REPLACE] VIEW <viewname> AS SELECT <query>Entradas
| Entrada | Descripción |
|---|---|
| OR REPLACE | Si aún no existe una vista con el nombre especificado,
se crea una nueva vista independientemente de si se ha especificado la
frase OR REPLACE. Sin embargo, si ya existe una vista con el nombre
especificado y la frase OR REPLACE:
|
| <viewname> | Nombre de la vista que se quiere crear. |
| <query> | La consulta SQL que determina las columnas y las filas de la vista. Para más información, véase SELECT (para recuperar filas). |
Resultados
| Resultado | Descripción |
|---|---|
| CREATE VIEW | La vista se ha creado correctamente. |
| ERROR: Relation 'view' already exists | En la base de datos ya existe una vista con el nombre especificado: |
Privilegios
Es necesario ser el usuario administrativo o el propietario de la base de datos o esquema, o la cuenta debe tener el privilegio Create View. Es necesario tener privilegios Select para la tabla base de la vista. Para sustituir una vista, también hay que tener el privilegio Alter para la vista o la clase de objeto View.
Uso
- Crear una vista que contenga todas las películas de comedia:
MYDB.SCH1(USER)=> CREATE VIEW kinds AS SELECT * FROM films WHERE kind = 'Comedy'; - Mostrar la vista:
MYDB.SCH1(USER)=> SELECT * FROM kinds; code | title | did | date_prod | kind | len ------+---------------------------+-----+------------+---------+-- C_701 | There's a Girl in my Soup | 107 | 1970-06-11 | Comedy | 01:36:00 UA502 | Bananas | 105 | 1971-07-13 | Comedy | 01:22:00 - Sustituir la vista pero retener los privilegios que se otorgaran
para la vista original:
MYDB.SCH1(USER)=> CREATE OR REPLACE VIEW kinds AS SELECT * FROM films WHERE kind = 'Action';