Introducción a las vistas de SQL de la base de datos MySQL/mariadb

Introducción a las vistas de SQL de la base de datos MySQL/mariadb

Una vista de la base de datos no es más que una tabla virtual, que no contiene datos en sí, pero hace referencia datos contenidos en otras tablas. Las vistas son básicamente el resultado de consultas almacenadas que pueden variar en la complejidad y pueden usarse, por ejemplo, para ocultar datos de los usuarios, permitiendo el acceso solo en columnas seleccionadas de una tabla, o simplemente para proporcionar un punto de vista diferente sobre los datos existentes. En este tutorial veremos cómo crear, actualizar, alterar y dejar una vista sobre una base de datos MySQL, MariaDB.

En este tutorial aprenderás:

  • Que es una vista
  • Cómo crear una vista
  • Cómo actualizar una vista
  • Cómo alterar una vista
  • Cómo dejar una vista


Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema INDEPENDO DEL OS
Software Una base de datos MySQL/Mariadb
Otro Knwoledge básico de MySQL/MariadB y conceptos de bases de datos relacionales
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Creación de una base de datos de prueba

En aras de este tutorial, crearemos una base de datos de prueba llamada "Películas". Contendrá dos tablas: la primera tendrá datos sobre los directores, el segundo contendrá información sobre títulos y se vinculará al primero a través de un clave externa. Para crear nuestra base de datos, podemos emitir los siguientes comandos desde el shell mysql/mariadb:



Mariadb [(ninguno)]> Crear películas de base de datos; Mariadb [(ninguno)]> usar películas; Base de datos cambió mariadb [películas]> Crear director de tabla ( -> id smallint unsigned no null auto_incement, -> first_name varchar (20) no nulo, -> last_name varchar (20) no nulo, -> fecha de nacimiento no nula, -> primaria Clave (id) ->); 
Copiar

El siguiente paso es insertar algunas entradas en la tabla:

Mariadb [Películas]> Insertar en Director (First_Name, Last_Name, Birth) Valores-> ('Stanley', 'Kubrik', '1928-07-26'),-> ('Jeffrey', 'Adams', '1966- 06-27 '),-> (' Alfred ',' Hitchcock ',' 1899-08-13 ');
Copiar

Ahora podemos crear la tabla "Título" e insertar algunas entradas en ella:

Mariadb [Películas]> Crear Título de la tabla ( -> ID SmallInt Unsigned No Null Auto_incement, -> Nombre Varchar (30) No NULL, -> Género Varchar (30) No NULL, -> Fecha de lanzamiento no nulo, -> Director_ID Smallint Unsigned No nulo, -> clave primaria (id), -> clave extranjera (director_id) Director de referencias (id) ->); Mariadb [películas]> insertar en el título (nombre, género, ralle_date, direction_id) valores -> ('2001: un espacio odyssey', 'Science fiction', '1968-04-02', 1), -> ('The the the the Force Awakens ',' Fantasy ',' 2015-12-14 ', 2),-> (' Psyco ',' Horror ',' 1960-06-16 ', 3); 
Copiar

Ahora que tenemos algunas tablas para trabajar, podemos crear un vista.

Creando una vista

Una vista es simplemente una tabla virtual que nos permite obtener una "prospectiva" alternativa en los datos contenidos en tablas reales. Podemos crear fácilmente una vista seleccionando las columnas que queremos incluir en las tablas existentes. Digamos, por ejemplo, queremos nuestro vista Para incluir las columnas "Nombre" y "Género" de la tabla "Título" que creamos en nuestra base de datos de prueba. Así es como lo creamos:

Mariadb [películas]> Crear ejemplo de vista como nombre seleccionado, género desde el título;
Copiar

Con el comando Crear vista, Creamos un vista y llámalo "ejemplo". La vista se crea utilizando la declaración AS seguida de la consulta necesaria para obtener los datos que queremos incluir. El contenido de la vista será el resultado de la consulta:

Mariadb [películas]> seleccionar * del ejemplo; +-----------------------+-----------------+| nombre | género | +-----------------------+-----------------+| 2001: Una odisea espacial | ciencia ficción | | La fuerza despierta | fantasía | | Psyco | Horror | +-----------------------+-----------------+
Copiar

Podemos restringir los datos recuperados en la vista al igual que lo haríamos en una tabla estándar, por ejemplo:

Mariadb [películas]> seleccionar * del ejemplo donde género = "ciencia ficción"; +-----------------------+-----------------+| nombre | género | +-----------------------+-----------------+| 2001: Una odisea espacial | ciencia ficción | +-----------------------+-----------------+ 
Copiar

Proporcionar nombres específicos para las columnas de la vista

Por defecto, el nombre de las columnas de la creada vista corresponderá al nombre de las columnas incluidas en el SELECCIONAR declaración utilizada para crearla. En caso de que queramos especificar nombres alternativos, debemos proporcionarlos entre paréntesis. El número de nombres debe coincidir con el número de columnas seleccionadas. Aquí hay un ejemplo:

Mariadb [películas]> Crear ejemplo de vista (Movie_Name, Movie_Genre) como nombre de nombre, género desde el título; Mariadb [películas]> seleccionar * del ejemplo; +-----------------------+-----------------+| Movie_Name | Movie_Genre | +-----------------------+-----------------+| 2001: Una odisea espacial | ciencia ficción | | La fuerza despierta | fantasía | | Psyco | Horror | +-----------------------+-----------------+ 
Copiar

Se puede crear una vista utilizando consultas complejas y puede incluir valores resultantes de funciones. Aquí hay un ejemplo de una vista creada al unirse a las tablas "Título" y "Director" y utilizando el Concatismo función:

Mariadb [películas]> Crear ejemplo de vista (Movie_name, Movie_Genre, Movie_Director) AS -> Seleccionar -> Título.Nombre ->, Título.Género ->, Concat (director.First_Name, "", director.last_name) -> desde -> título -> Únete al director por el título.director_id = director.identificación; 
Copiar

Aquí está el contenido completo de la vista resultante:

Mariadb [películas]> seleccionar * del ejemplo; +-----------------------+-----------------+------- -----------+ | Movie_Name | Movie_Genre | Movie_Director | +-----------------------+-----------------+------- -----------+ | 2001: Una odisea espacial | ciencia ficción | Stanley Kubrik | | La fuerza despierta | fantasía | Jeffrey Adams | | Psyco | Horror | Alfred Hitchcock | +-----------------------+-----------------+------------------+
Copiar

Actualizar una vista

Si se cumplen algunas condiciones específicas, es posible actualizar una vista: los cambios se reflejarán en las tablas subyacentes. Para poder actualizar una vista:



  • La vista debe crearse consultando una sola tabla y debe mapear directamente a ella;
  • La vista no puede contener valores agregados resultantes de funciones como Sum ();
  • Una operación en la vista debe corresponder a una operación en una sola fila de la tabla original;

Veamos un ejemplo. Supongamos que estamos trabajando en la vista que creamos antes:

+-----------------------+-----------------+ | Movie_Name | Movie_Genre | +-----------------------+-----------------+| 2001: Una odisea espacial | ciencia ficción | | La fuerza despierta | fantasía | | Psyco | Horror | +-----------------------+-----------------+
Copiar

Dado que la opinión respeta el requisito que mencionamos anteriormente, si ahora actualizamos el género de la película "Psyco", cambiándola de "horror" a "thriller", el cambio se reflejará en la tabla "título". Verifiquemos:

Mariadb [películas]> Ejemplo de actualización Establecer película_genre = "Thriller" Where Movie_Name = "Psyco";
Copiar

Si ahora consultamos la tabla de "título" subyacente, podemos verificar que se haya aplicado el cambio:

Mariadb [películas]> seleccionar * de title Where Name = "Psyco"; +----+-------+----------+--------------+---------- ---+ | ID | nombre | género | Release_date | director_id | +----+-------+----------+--------------+---------- ---+ | 3 | Psyco | thriller | 1960-06-16 | 3 | +----+-------+----------+--------------+-------------+
Copiar

Alterar una vista

Para cambiar la definición de una vista, usamos el Alterar la vista dominio. Cada vez que queremos cambiar la estructura de una vista, tenemos que reescribir el SELECCIONAR declaración utilizada para crearla. Solo como ejemplo, supongamos que queremos agregar la columna "Release_date" desde la tabla "Título" a nuestra vista: no podemos usar un comando como AÑADIR COLUMNA, Debemos proporcionar una nueva consulta que comprenda la columna que queremos agregar:

Mariadb [películas]> alter ver ejemplo (película_name, película_genre, película_release_date) como selección de nombre, género, liberación_date desde el título; Seleccionar * del ejemplo; +-----------------------+-----------------+------- -------------+ | Movie_Name | Movie_Genre | película_release_date | +-----------------------+-----------------+------- -------------+ | 2001: Una odisea espacial | ciencia ficción | 1968-04-02 | | La fuerza despierta | fantasía | 2015-12-14 | | Psyco | thriller | 1960-06-16 | +-----------------------+-----------------+--------------------+ 
Copiar

Dejando una vista

Dejar una vista es una operación muy fácil. El comando utilizado para lograr la tarea es Vista de caída. En este caso, para eliminar nuestra vista de "ejemplo", ejecutaríamos:

Ejemplo de vista de caída;
Copiar

Pensamientos de cierre

En este artículo vimos cómo podemos usar las vistas de MySQL/Mariadb para recopilar un punto de vista diferente sobre los datos contenidos en una tabla de base de datos. Vimos cómo crear una vista, cómo alterar su estructura, cómo podemos actualizarla si se cumplen algunos requisitos y cómo dejarlo. Si está interesado en otros temas de MySQL/MariadB, puede echar un vistazo a nuestros artículos sobre el tema, por ejemplo, aquellos sobre el sindicato o unir declaraciones.

Tutoriales de Linux relacionados:

  • Introducción a los motores de almacenamiento MySQL
  • Cómo cambiar la contraseña de usuario de mariadb
  • Cosas para instalar en Ubuntu 20.04
  • Instale MySQL en Ubuntu 20.04 LTS Linux
  • Cómo instalar MySQL en Almalinux
  • Cómo crear una pila de lámparas basada en Docker usando Docker en ..
  • Ubuntu 20.04 WordPress con instalación de Apache
  • Cómo Grep Correntemente para el texto en scripts bash
  • Instalación de ampache Raspberry Pi
  • Ubuntu 20.04: WordPress con instalación de Nginx