Aplicación práctica de introducción a SQL: vistas

Rodrigo Ricardo Publicado el 14 noviembre, 2020 4 minutos y 51 segundos de lectura

Descripción general de la lección y conocimientos necesarios

Para completar esta lección práctica, debe poder definir una vista de base de datos y proporcionar una explicación para su uso en la administración de la base de datos. Debería poder describir índices y disparadores y su propósito. Además, debería haber instalado MySQL y los modelos clásicos de base de datos de muestra para usar en este curso. Consulte la lección de estudyando.com: https://estudyando.com/academy/lesson/practical-application-for-introduction-to-sql-installing-sample-data-for-mysql.html.

Código de programa

Una vista es una forma práctica de crear una consulta que muestra un subconjunto de información. Por ejemplo, es posible que desee permitir que los usuarios consulten una base de datos de empleados, pero solo recuperen la identificación del empleado y su ubicación de trabajo; esto protege la otra información confidencial de la tabla.

En la base de datos de classmodels tenemos una tabla de clientes . Hay numerosos campos demográficos: dirección, nombre, número de teléfono, etc. Consideremos que queremos crear una lista solo del número de cliente, su ciudad, estado y límite de crédito. Para proporcionar esta información, podemos crear una vista en MySQL.

Recuerde que la sintaxis general para crear una vista es:

CREAR VISTA view_name AS 
SELECT column1, column2, ...
FROM table_name
WHERE condición;

A continuación, creemos una vista para la base de datos de modelos clásicos . Seleccionaremos los campos y los ordenaremos por límite de crédito, de mayor a menor.

CREAR VISTA CreditLimits COMO 
SELECCIONAR customerNumber, ciudad, estado, creditLimit
 DE los clientes
 ORDENAR POR creditLimit DESC;

Una vez creada la vista, debe hacer clic con el botón derecho en el esquema de modelos clásicos en el panel izquierdo y seleccionar Actualizar todo, como se muestra en la Figura 1.

Figura 1: Actualizar esquemas
Actualizar esquemas

Ahora hay una carpeta Vistas disponible en el panel izquierdo, como se muestra en la Figura 2.

Figura 2: Buscar mis vistas
Encontrar mis vistas

Haga clic con el botón derecho en la nueva vista que creó y seleccione ‘Seleccionar todo – Límite de 1000’ para obtener una instantánea de los datos.

Figura 3: Vista de ejecución
Ejecutar vista

¡El cliente con el límite más alto está en Madrid!

Aplicación de código

Ahora que ha creado una vista a partir de una sola tabla, su tarea es crear una vista a partir de dos tablas. Cree una vista que seleccione información tanto de los clientes como de las tablas de pedidos : seleccione el número de pedido, el nombre del cliente, la fecha de envío y los comentarios.

Preguntas de seguimiento

Con base en las lecciones de este capítulo, complete las siguientes preguntas.

  • Cree otra vista que refleje la que creó en la aplicación de código, pero extraiga los detalles del pedido de la tabla de detalles del pedido . Incluya el precio y la cantidad.
  • Cree una vista para mostrar el total de todos los aviones (de la tabla de líneas de productos) vendidos. Como beneficio adicional, incluya el MSRP de la tabla de productos multiplicado por la cantidad pedida.
  • ¿Qué diferencia a un disparador de una vista?
  • Cree un índice en la tabla de clientes que incluya el número y ambos campos de nombre. La sintaxis para crear índices es:

CREATE INDEX index_name ON table_name (column_list)

Clave de respuesta

A continuación se encuentran las respuestas a la aplicación del código y las preguntas de seguimiento.

Aplicación de código.

Se utilizó el siguiente SQL para crear la vista.

CREAR VISTA customerOrders COMO 
 SELECCIONAR orderNumber, customerName, ShippingDate, comentarios
  FROM orders
  INNER ÚNETE a los clientes de
  customers.customerNumber = orders.customerNumber
 ORDER BY orderNumber;

Preguntas de seguimiento

Aquí están las respuestas a las preguntas de seguimiento.

Agregar una tercera tabla

Esto requiere otra instrucción INNER JOIN, así como un calificador en el campo orderNumber ya que existe tanto en las tablas orders como orderdetails .

CREAR VISTA customerOrderDetails COMO 
 SELECCIONAR orders.orderNumber, customerName, ShippingDate, comments, priceEach, amountOrdered
 FROM orders
  INNER JOIN clientes EN
  customers.customerNumber = orders.customerNumber
  INNER JOIN orderDetails ON
 orderDetails.orderNumber = orders.orderNumber
ORDER BY orderNumber;

Crear una vista para aviones vendidos

CREAR VISTA planosVendido COMO 
SELECCIONAR productlines.productLine, productName, orders.orderNumber,
MSRP,
amountOrder FROM orderdetails
 INNER JOIN orders ON
 orders.orderNumber = orderdetails.orderNumber
  INNER JOIN productos ON
 orderdetails.productCode = products.productCode
 INNER JOIN productlines ON
 = products.productLine productlines.productLine
DONDE productlines.productLine = 'Aviones';

Ahora, si desea crear un campo especial para el total, agregue lo siguiente a su declaración SELECT:

MSRP * cantidad Pedido como 'Gran total'

¿Qué diferencia a un disparador de una vista?

Como ha visto, podemos ejecutar y volver a ejecutar nuestras vistas en cualquier momento. Un disparador, por otro lado, es un evento que se puede ejecutar en base a otro evento, como una operación de inserción o selección en una tabla. Incluso pueden ejecutarse según un horario. Los desencadenadores también se pueden configurar para actualizar datos, mientras que una vista es solo eso: un vistazo a los datos, proporcionando solo las columnas que nosotros, como diseñadores, proporcionamos.

Crear un índice

Para crear un índice usando SQL, usaremos el siguiente comando:

CREAR ÍNDICE c_list ON 
clientes
(customerNumber, contactLastName, contactFirstName);

Esto ayudará a acelerar las búsquedas futuras de esta tabla y contra estos datos. Un índice es una buena forma de reducir el tiempo que se tarda en acceder a los datos de una tabla de base de datos, especialmente a medida que la tabla crece.

Explora más sobre este tema

Selecciona un tema y sigue aprendiendo...

Rodrigo Ricardo
Rodrigo Ricardo Editor y fundador