Vista en sql
Una vista en SQL es el resultado de una consulta de varias tablas que te aparece como una sola tabla.
Me explico, por ejemplo tu necesitas saber datos de dos tablas pero necesitas que te aparezcan a la vez y siempre que ejecutes una sentencia determinada que viene dada por un nombre que le has dado tu mismo.
Formato:
CREATE [OR REPLACE] VIEW NOMBREVISTA
[(COLUMNA [,COLUMNA])]AS CONSULTA;
AS CONSULTA= Determina las columnas y las tablas que aparecerán en la vista.
[OR REPLACE]= Crea de nuevo la vista si ya existía.
Para consultar la vista creada, USER_VIEWS:
SELECT VIEW_NAME FROM…
Definición y objetivo de las vistas
Una vista en SQL es el resultado de una consulta de varias tablas que te aparece como una sola tabla.
Las vistas tienen la misma estructura queuna tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no los datos.
Los datos que se recuperan mediante una consulta a una vista se presentarán igual que los de una tabla. De hecho, si no se sabe que se está trabajando con una vista, nada hace suponer que es así. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionardatos en una vista. Aunque siempre es posible seleccionar datos de una vista, en algunas condiciones existen restricciones para realizar el resto de las operaciones sobre vistas.
Las vistas son importantes porque proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base de datos a ciertos usuarios.
Para crear foráneas con phpmyadmin tienes que dar a vista de relaciones. Allíya haces la relación que requieres, con los eventos asociados a borrado o actualización de la clave foránea.0
De todas formas es bastante rupestre el sistema de phpmyadmin, te paso la instrucción manual para que te resulte más sencillo:
ALTER TABLE `tabla`
ADD CONSTRAINT `NombreFK` FOREIGN KEY (`Campo_tabla`) REFERENCES `matriz` (`Campo_tabla_referenciada`) ON DELETE CASCADE ON UPDATECASCADE;
INSTRUCCIONES PARA LA ADMINISTRACION DE VISTAS
Creación o modificación de vistas con CREATE VIEW o ALTER VIEW.
Eliminación de vistas con DROP VIEW.
Obtención de información de definición de una vista (metadatos) con SHOW CREATE VIEW .
Sintaxis de CREATE VIEW
Toda vista pertenece a una base de datos. Por defecto, las vistas se crean en la base de datos actual.
Para crear una vistaen una base de datos específica: base_de_datos.nombre_vista al momento de crearla.
mysql> CREATE VIEW test.v AS SELECT * FROM t;
Las tablas y las vistas comparten el mismo espacio de nombres en la base de datos, por eso, una base de datos no puede contener una tabla y una vista con el mismo nombre.
Las vistas no pueden tener nombres de columnas duplicados.
Para dar explícitamente unnombre a las columnas de la vista se utiliza la cláusula columnas para indicar una lista de nombres separados con comas.
Las columnas devueltas por la sentencia SELECT pueden ser simples referencias a columnas de la tabla, pero también pueden ser expresiones conteniendo funciones, constantes, operadores, etc.
Pueden usar combinaciones, UNION, y sub consultas.
CREATE [OR REPLACE] [ALGORITHM= {UNDEFINED | MERGE | TEMPTABLE}]
VIEW nombre_vista [(columnas)] AS sentencia_select [WITH [CASCADED | LOCAL] CHECK OPTION]
En el siguiente ejemplo se define una vista que selecciona dos columnas de otra tabla, así como una expresión calculada a partir de ellas:
mysql> CREATE TABLE t (qty INT, price INT);
mysql> INSERT INTO t VALUES(3, 50);
mysql> CREATE VIEW v AS SELECT qty,price, qty*price AS value FROM t;
mysql> SELECT * FROM v;
+------+------- +-------+
| qty | price | value |
+------+-------+--------+
| 3 | 50 | 150 |...
Regístrate para leer el documento completo.