Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivos:
Introducción
Cuando se tiene bases de datos muy grandes con muchas tablas y relaciones es difícil
elaborar consultas que cumplan con las necesidades de información de una empresa, por
esta razón es importante el usar los recursos del manejo de subconsultas y la creación de
vistas.
SUBCONSULTAS
Una subconsulta es una consulta anidada en una instrucción SELECT, INSERT, UPDATE o
DELETE, o bien en otra subconsulta. Las subconsultas se pueden utilizar en cualquier parte
en la que se permita una expresión. Se llama también subconsulta a una consulta o selección
interna, mientras que la instrucción que contiene una subconsulta también es conocida
como consulta o selección externa.
Una consulta SELECT normal, que incluye los componentes normales de la lista de selección.
Una cláusula normal FROM que incluye uno o varios nombres de tablas o vistas.
Una cláusula opcional WHERE.
Una cláusula opcional GROUP BY.
Una cláusula opcional HAVING.
Las subconsultas se pueden presentar con uno de los operadores de comparación (=, < >, >,
> =, <, ! >, ! <, or < =).
SUBCONSULTAS USADAS EN LUGAR DE UNA EXPRESION.
En Transact-SQL, una subconsulta se puede usar allí donde se pueda usar una expresión en
las instrucciones SELECT, UPDATE, INSERT y DELETE, excepto en una lista ORDER BY.
Cuando una subconsulta se especifica con la palabra clave EXISTS, funciona como una
prueba de existencia. La cláusula WHERE de la consulta externa comprueba si existen las
filas devueltas por la subconsulta. En realidad, la subconsulta no produce ningún dato,
devuelve el valor TRUE o FALSE.
VIEW - Vistas
Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla
virtual que almacena una consulta. Los datos accesibles a través de la vista no están
almacenados en la base de datos como un objeto.
Entonces, una vista almacena una consulta como un objeto para utilizarse posteriormente.
Las tablas consultadas en una vista se llaman tablas base. En general, se puede dar un
nombre a cualquier consulta y almacenarla como una vista.
Una vista suele llamarse también tabla virtual porque los resultados que retorna y la manera
de referenciarlas es la misma que para una tabla.
Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una unión
de varias tablas; una combinación de varias tablas; un resumen estadístico de una tabla; un
subconjunto de otra vista, combinación de vistas y tablas.
USE SCRUM
GO
Se creó una nueva tabla de nombre lista1_scrum, ha esta se le podrán hacer consultas al
igual que una tabla normal.
Otra opción es también unir o calcular campos, en el siguiente ejemplo, creamos una vista
donde unimos el nombre y el apellido, para crear un solo campo.
USE SCRUM
GO
Los nombres para vistas deben seguir las mismas reglas que cualquier identificador. Para
distinguir una tabla de una vista podemos fijar una convención para darle nombres, por
ejemplo, colocar el sufijo “vista” y luego el nombre de las tablas consultadas en ellas.
Los campos y expresiones de la consulta que define una vista deben tener un nombre. Se
debe colocar nombre de campo cuando es un campo calculado o si hay 2 campos con el
mismo nombre.
Al crear una vista, SQL Server verifica que existan las tablas a las que se hacen referencia en
ella. Se aconseja probar la sentencia "select" con la cual definiremos la vista antes de crearla
para asegurarnos que el resultado que retorna es el imaginado.
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.
no puede combinarse con otras instrucciones en un mismo lote.
Se pueden construir vistas sobre otras vistas.
Al seleccionarla me mostrar un cuadro con todas las bases de datos disponibles, puedo
utilizar “Refresh” para actualizar la lista de tablas, para nuestro ejemplo seleccionaremos
las tablas personas y roles
Al seleccionar estas tablas nos aparecerá un diagrama entidad relación, y si ya existen
relaciones las mostrara.
El siguiente paso será seleccionar los campos a ocupar en nuestra nueva vista.
Una vez que hemos seleccionado nuestros campos a ocupar, vemos que en la parte de en
medio están listadas todas las columnas donde puedo activar o desactivarlas además de
arriba.
También en la parte de abajo podemos ver la consulta creada por el diseñador, si todo está
bien procedemos a guardar nuestra nueva vista, daremos click derecho sobre la pestaña del
diseñador.
La ventana de guardado me dará la oportunidad de guardar la nueva vista, con un nombre
personalizado, para nuestro ejemplo usamos reporte_roles.
Una vez guardada la consulta nos apararecera en la pestaña “views” y voy a poder ver las
columnas que contiene la vista, pero debemos recordar que no podremos editar las
columnas, solamente los datos.
Ahora ya podremos utilizar la vista en la forma que nos convenga.
Procedimiento:
En el ejemplo siguiente se muestra cómo se puede usar esta mejora. Esta consulta
busca los precios de todas las bicicletas de montaña, el precio medio y la diferencia
entre el precio de cada bicicleta y el precio medio.
El resultado es:
Si quiero utilizar una expresión DELETE en una vista lo más probable es que no me lo
permita por la combinación de tablas que realizo y esta pueden evitar que borre los
registros, pero si la vista es de una tabla que tiene registros dependientes, realizara el
borrado de registro y también realizara el borrado de la tabla original.
Crear subconsultas con las opciones INSERT, DELETE, UPDATE del ejemplo anterior.
Crear la base de datos "MiServicio"
Crear las tablas que aparecen en el esquema y las relaciones: