Vistas en MS SQL Server

Published on May 2016 | Categories: Documents | Downloads: 39 | Comments: 0 | Views: 370
of 26
Download PDF   Embed   Report

Comments

Content

Vistas en MS SQL Server
Bases de Datos I Universidad Católica II Cuatrimestre - 2012

Definición «Vistas»
• Una vista se puede considerar una tabla virtual o una consulta almacenada. • El conjunto de resultados de la instrucción SELECT forma la tabla virtual que devuelve la vista. El usuario puede utilizar dicha tabla virtual haciendo referencia al nombre de la vista en instrucciones Transact-SQL, de la misma forma en que se hace referencia a las tablas.

2

Definición «Vistas»
• Al igual que una tabla real, una vista consta de un conjunto de columnas y filas de datos con un nombre. • Sin embargo, a menos que esté indizada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. • Las filas y las columnas de datos proceden de tablas a las que se hace referencia en la consulta que define la vista y se producen de forma dinámica cuando se hace referencia a la vista.

3

Definición «Vistas»
• Una vista actúa como filtro de las tablas subyacentes a las que se hace referencia en ella. La consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos. • Asimismo, es posible utilizar las consultas distribuidas para definir vistas que utilicen datos de orígenes heterogéneos. Esto puede resultar de utilidad, por ejemplo, si desea combinar datos de estructura similar que proceden de distintos servidores, cada uno de los cuales almacena los datos para una región distinta de la organización.

4

Definición «Vistas»

5

Tipos de vistas

6

Vistas estándar
• La combinación de datos de una o más tablas mediante una vista estándar permite satisfacer la mayor parte de las ventajas de utilizar vistas. • Éstas se utilizan para:
• • • • • • Para centrarse en datos específicos Para simplificar la manipulación de datos Para proporcionar compatibilidad con versiones anteriores Para personalizar datos Para exportar e importar datos Para combinar datos de particiones entre servidores
7

Vistas indizadas (analizadas más adelante)
• Una vista indizada es una vista que se ha materializado. • Esto significa que se ha calculado y almacenado. • Se puede indizar una vista creando un índice agrupado único en ella. • Las vistas indizadas mejoran de forma considerable el rendimiento de algunos tipos de consultas. • Las vistas indizadas funcionan mejor para consultas que agregan muchas filas. • No son adecuadas para conjuntos de datos subyacentes que se actualizan frecuentemente.
8

Vistas con particiones (analizadas más adelante)
• Una vista con particiones junta datos horizontales con particiones de un conjunto de tablas miembro en uno o más servidores. • Esto hace que los datos aparezcan como si fueran de una tabla. • Una vista que junta tablas miembro en la misma instancia de SQL Server es una vista con particiones local.

9

Crear una vista
• Sintaxis básica
CREATE VIEW NOMBREVISTA (NombresEncabezadosColumnas)AS SENTENCIAS SELECT FROM TABLA;

• El contenido se muestra consultado la vista de la misma forma que una tabla
select *from NOMBREVISTA;
10

Crear una vista
Por ejemplo, creamos otra vista de "empleados" denominada "vista_empleados_ingreso" que almacena la cantidad de empleados por año: create view vista_empleados_ingreso (fecha, cantidad) as select datepart(year, fechaingreso), count(*) from empleados group by datepart(year, fechaingreso)

11

Restricciones sobre Vistas
• Existen algunas restricciones para el uso de "create view", a saber:
• No puede incluir las cláusulas "compute" ni "compute by" ni la palabra clave "into" • No se pueden crear vistas temporales ni crear vistas sobre tablas temporales. • No se pueden asociar reglas ni valores por defecto a las vistas. • Se pueden construir vistas sobre otras vistas.

12

Evaluación CASE

Definición <CASE>
• Evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles. • La expresión CASE tiene dos formatos:
• La expresión CASE sencilla compara una expresión con un conjunto de expresiones sencillas para determinar el resultado

• La expresión CASE buscada evalúa un conjunto de expresiones booleanas para determinar el resultado
14

Definición <CASE>
• Ambos formatos admiten un argumento ELSE opcional. • Se puede utilizar en cualquier instrucción o cláusula que permite una expresión válida. • Por ejemplo, puede utilizar CASE en instrucciones como SELECT, UPDATE, DELETE y SET, y en cláusulas como: IN, WHERE, ORDER BY, entre otros

15

Ejemplo <CASE>
• Usar una instrucción SELECT con una expresión CASE sencilla
• En una instrucción SELECT, una expresión CASE sencilla solo permite una comprobación de igualdad; no se pueden hacer otras comparaciones. • En este ejemplo se utiliza la expresión CASE para cambiar la presentación de categorías de línea de productos con el fin de hacerla más comprensible.

16

Ejemplo <CASE>
• Usar una instrucción SELECT con una expresión CASE de búsqueda
• En una instrucción SELECT, la expresión CASE de búsqueda permite sustituir valores en el conjunto de resultados basándose en los valores de comparación. • En el ejemplo siguiente se presenta el precio de venta como un comentario basado en el intervalo de precios de un producto.

17

Ejemplo <CASE>
• Usar CASE en una cláusula ORDER BY
• En los ejemplos siguientes se utiliza la expresión CASE en una cláusula ORDER BY para determinar el criterio de ordenación de las filas según el valor de una columna dada. • En este ejemplo se evalúa el valor de la columna SalariedFlag de la tabla HumanResources.Employee:
• Los empleados que tienen la columna SalariedFlag establecida en 1 se devuelven en orden descendente según el EmployeeID. • Los empleados que tienen la columna SalariedFlag establecida en 0 se devuelven en orden ascendente según el EmployeeID.

18

Ejemplo <CASE>
• Usar CASE en una cláusula ORDER BY
• En este otro ejemplo, el conjunto de resultados se ordena según la columna TerritoryName:
• Cuando la columna CountryRegionName es igual a 'United States‘. SI NO, ordene con la columna CountryRegionName en las demás filas.

19

Ejemplo <CASE>
• Usar CASE en una instrucción UPDATE
• En el ejemplo siguiente se utiliza la expresión CASE en una instrucción UPDATE para determinar el valor que está establecido en la columna VacationHours para los empleados con el valor de SalariedFlag establecido en 0. • Si al restar 10 horas de VacationHours da un valor negativo, VacationHours se incrementa en 40 horas; de lo contrario, VacationHours se incrementa en 20 horas. • La cláusula OUTPUT se utiliza para mostrar los valores de las vacaciones antes y después.

20

Taller
• Primeramente, implementaremos las tablas a partir de la siguiente información tomando en cuenta la implementación de las distintas restricciones (constraints) vistas en la clase anterior.
Información de personas Dato Identificación de la persona Nombre de la persona Sexo Estado civil Fecha de nacimiento Descripción Tipo y número de identificación Nombre y apellidos M: masculino, F: Femenino 0: Soltero, 1: Casado Mayor a 1900 21

Taller
Información de empleados

Dato
Identificación de empleado

Descripción
Número de empleado

Fecha de ingreso

Si no se suministra, debe corresponder a la fecha actual Mayor a 150000
0: Inactivo, 1: Activo Departamento al que pertenece el empleado 22

Salario
Activo Departamento

Taller
Departamentos

Dato
Número de Departamento

Descripción
Identificador del departamento

Departamento

Nombre o descripción del departamento

23

Taller
• Ahora, a partir de estas tablas, implementaremos una vista que nos permita visualizar la información de las personas tomando en cuenta los datos de empleado. De manera específica la vista debe retornar los siguientes datos:
• • • • • • • • • Identificación Nombre y Apellidos Sexo, indicado mediante: «Femenino», «Masculino» Estado civil, indicado mediante: «Soltero» o «Casado» Fecha de nacimiento Departamento Fecha de ingreso a la compañía Salario Nivel de salario, de acuerdo a la siguiente escala: «Bajo» (150000 a 349000), «Medio» (350000 a 549000) o «Medio-Alto» (550000 a 749000) y «Alto» (750000 en adelante) • Activo, indicado mediante: «Si» o «No»

24

Tarea
• Implementar las tablas de Teléfonos y Direcciones de referencia, además de una vista para cada uno de estos rubros (Teléfonos y Direcciones de empleados):
Teléfonos
Dato Tipo de teléfono Descripción Indica el tipo de teléfono suministrado por el usuario, por ejemplo: 1 – Habitación 2 – Celular Detalle del número telefónico 25

Número de teléfono

Detalle

Alguna anotación sobre el número suministrado, por ejemplo: «El número pertenece a mi esposa…»

Tarea
Direcciones Dato Tipo de dirección Descripción Tipo de dirección: 1 – Primaria (residencia por ejemplo) 2 – Secundaria (dirección alternativa) Provincia: 1- San José 2- Alajuela 3- Cartago 4- Heredia Detalle 5- Guanacaste 6- Puntarenas 7- Limón 26

Provincia

Para efectos de minimizar nuestro ejercicio, ignoramos los cantones y distritos por separado, ya que los incluiremos dentro de un detalle.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close