Explicación de la vista SQL: cómo crear una vista en SQL y MySQL

¿Qué es una vista en SQL?

Una vista es un objeto de base de datos que presenta datos existentes en una o más tablas. Las vistas se utilizan de forma similar a las tablas, pero no contienen ningún dato. Simplemente "apuntan" a los datos que existen en otros lugares (tablas o vistas, por ejemplo).

¿Por qué nos gustan?

  • Las vistas son una forma de limitar los datos presentados. Por ejemplo, los datos del departamento de recursos humanos se filtraron para presentar solo información confidencial. La información confidencial en este caso podría ser el número de seguro social, el sexo del empleado, la tasa de pago, la dirección de la casa, etc.
  • Los datos complejos de más de una tabla se pueden combinar en una sola "vista". Esto puede facilitarles la vida a sus analistas y programadores comerciales.

Consejos importantes de seguridad

  • Las vistas son gestionadas por el sistema. Cuando los datos de las tablas relacionadas se modifican, agregan o actualizan, el sistema actualiza la Vista. Queremos usarlos solo cuando sea necesario para administrar el uso de los recursos del sistema.
  • En MySQL, los cambios en el diseño de la tabla (es decir, columnas nuevas o eliminadas) realizados DESPUÉS de que se crea una vista no se actualizan en la vista misma. La vista tendría que actualizarse o recrearse.
  • Las vistas son uno de los cuatro tipos de objetos de base de datos estándar. Los otros son tablas, procedimientos almacenados y funciones.
  • Las vistas generalmente se pueden tratar como lo haría con una tabla, pero las actualizaciones son limitadas o no están disponibles cuando la vista contiene más de una tabla.
  • Hay muchos otros detalles sobre las vistas que están más allá del alcance de esta guía introductoria. Pase tiempo con el manual de su administrador de bases de datos y diviértase con este poderoso objeto SQL.

Sintaxis de la instrucción Create View (MySQL)

CREATE [OR REPLACE] [ALGORITHM =  TEMPTABLE] [DEFINER =  CURRENT_USER ] [SQL SECURITY  DEFINER ] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 

Esta guía cubrirá esta parte de la declaración ...

CREATE VIEW view_name [(column_list)] AS select_statement 

Creación de vista de muestra a partir de las tablas de estudiantes

Notas:

  • El nombre de la vista tiene una "v" al final. Se recomienda que el nombre de la vista indique que es una vista de alguna manera para facilitar la vida de los programadores y administradores de bases de datos. Su departamento de TI debe tener sus propias reglas para nombrar objetos.
  • Las columnas de la vista están limitadas por SELECT y las filas de datos por la cláusula WHERE.
  • el carácter ”“ ”alrededor de los nombres de las vistas es obligatorio debido al” - ”en los nombres. MySQL informa un error sin ellos.
create view `programming-students-v` as select FullName, programOfStudy from student where programOfStudy = 'Programming'; select * from `programming-students-v`; 

Ejemplo de uso de una vista para combinar datos de más de una tabla

Se agregó una tabla demográfica de los estudiantes a la base de datos para demostrar este uso. Esta vista combinará estas tablas.

Notas:

  • Para "unir" tablas, las tablas deben tener campos en común (generalmente claves primarias) que identifiquen de manera única cada fila. En este caso es la identificación del estudiante. (Más sobre esto en la guía SQL Joins).
  • Observe el "alias" dado a cada tabla ("s" para estudiante y "sc" para contacto con el estudiante). Esta es una herramienta para acortar los nombres de las tablas y facilitar la identificación de la tabla que se está utilizando. Es más fácil que escribir nombres de tablas largas repetidamente. En este ejemplo, era necesario porque studentID es el mismo nombre de columna en ambas tablas y el sistema presentaría un "error de nombre de columna ambiguo" sin especificar qué tabla usar.