Logo Studenta

6-Vistas - Yuliana Ruiz Borrayo

¡Este material tiene más páginas!

Vista previa del material en texto

Programación y administración 
de la información.
Vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 1
Resumen de la clase pasada
SQL:
•Dudas Clase Pasada
•Dudas Tarea 2
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 2
La clase de hoy:
Manipulación de datos en SQL (Continuación)
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 3
Poniendo condiciones en las agregaciones
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 4
SELECT atributos
FROM relaciones
WHERE SUM(condiciones)
Poniendo condiciones en las agregaciones
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 5
SELECT producto, SUM(precio*cantidad) AS venta_total
FROM productos
GROUP BY producto
WHERE SUM(cantidad) > 100
Poniendo condiciones en las agregaciones
En este caso SQL nos va a dar un error ya que el operador 
WHERE no puede condicionar agregaciones.
Que se hace entonces?
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 6
HAVING
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 7
SELECT producto, SUM(precio*cantidad) AS venta_total
FROM productos
GROUP BY producto
HAVING SUM(cantidad) > 100
Forma general de consultas con agregación
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 8
 
Forma general de consultas con agregación
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 9
 
• 
Forma general de consultas con agregación
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 10
 • 
Ejemplo Avanzado
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 11
Autor(login,nombre)
Documento(url,titulo)
Escribe(login,url)
Menciona(url,palabra)
Ejemplo Avanzado
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 12
Encuentre todos los autores que escribieron al menos 10 
elementos.
Ejemplo Avanzado
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 13
SELECT DISTINCT Autor.nombre
FROM Autor
WHERE COUNT(SELECT Escribe.url
FROM Escribe
WHERE Autor.login = Escribe.login) >=10
Cual es el problema de esta Query?
Ejemplo Avanzado – Versión SQL Uandes
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 14
SELECT Autor.nombre
FROM Autor, Escribe
WHERE Autor.login=Escribe.login
GROUP BY Autor.nombre
HAVING COUNT (Escribe.url) >= 10
Nótese que el DISTINCT lo da el GROUP BY.
Ejemplo Avanzado – Versión SQL Uandes
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 15
SELECT Autor.nombre
FROM Autor, Escribe, Menciona
WHERE Autor.login=Escribe.login
AND Escribe.url=Menciona.url
GROUP BY Autor.nombre
HAVING COUNT (DISTINCT Menciona.palabra) >= 10000
Encuentre todos los autores con un vocabulario de más de 
10.000 palabras.
Modificando datos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 16
Ya sabemos como insertar, pero ahora podemos hacer con 
información de consultas.
Modificando datos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 17
INSERT INTO R
VALUES [valores]
Los valores pueden salir de una consulta.
Modificando datos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 18
INSERT INTO peliculas (titulo)
VALUES (SELECT DISTINCT pelicula
FROM programacion
WHERE programación.pelicula NOT IN 
(SELECT titulo
FROM pelicula))
Notar que solo estamos insertando un atributo en la relación. ¿Qué 
pasa con el resto de los atributos?
Este es uno de los problemas más antiguos en las bases de datos.
Actualizando datos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 19
UPDATE viajes
SET aerolinea = ‘LaTam’
WHERE aerolinea LIKE ‘%Lan%’
OR aerolinea LIKE ‘%Tam%’
Actualizando datos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 20
UPDATE R
SET [nuevos valores]
WHERE [condición sobre R]
[nuevos valores]: (atributo-1= nuevo-valor1,…)
Borrando datos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 21
DELETE FROM R
WHERE [condición sobre R]
Obviamente queremos borrar tuplas enteras
Vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 22
Son relaciones que no se almacenan físicamente.
Vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 23
Ventajas de una vista:
•Se puede representar la unión de múltiples tablas de 
forma simple
•Pueden funcionar como tablas de agregación
•Puede ser un subconjunto de una tabla (por ejemplo para 
mostrar solo una porción de los datos al usuario)
Vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 24
CREATE VIEW <Nombre de la vista>
AS <Consulta SQL>
Ejemplo
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 25
Peliculas(titulo, año, largo, estudio, productor)
Vista para mostrar solo las películas de Universal. Solo nos 
interesa el titulo y el año.
Ejemplo
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 26
Peliculas(titulo, año, largo, estudio, productor)
Vista para mostrar solo las películas de Universal. Solo nos 
interesa el titulo y el año.
CREATE VIEW Peliculas_universal
AS 
SELECT titulo, año
FROM películas
WHERE estudio= ‘Universal’
Consultas a una vista
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 27
Las vistas se pueden consultar como si fueran una tabla
SELECT titulo
FROM peliculas_universal
WHERE año= 2013
Consultas a una vista
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 28
Que pasa acá?
SELECT titulo
FROM peliculas_universal
WHERE año= 2013
Consultas a una vista
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 29
SELECT titulo, año
FROM peliculas_universal, programacion
WHERE peliculas_universal.titulo= programacion.pelicula
Consultas a una vista
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 30
El palabras simples, cuando consultamos vistas es como si 
reemplazaramos su definición en SQL.
SELECT titulo
FROM (SELECT titulo, año
FROM peliculas
WHERE estudio=‘Universal’)
WHERE año= 2013
Renombrando atributos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicasy Empresariales 31
CREATE VIEW Peliculas_universal(title, year)
AS 
SELECT titulo, año
FROM películas
WHERE estudio= ‘Universal’
Vistas: modificaciones
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 32
DROP VIEW Peliculas_universal
Como eliminar una vista:
Vistas: modificaciones
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 33
DROP TABLE Peliculas
La otra opción es eliminar el origen y se eliminan todas las 
vistas de esta tabla por cascada:
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 34
Modificando tablas a través de vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 35
INSERT INTO Peliculas_universal
VALUES (‘The Grinch’, 2018)
Me inserta la tupla
Peliculas(‘The Grinch’,2018,NULL,NULL,NULL)
Modificando tablas a través de vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 36
CREATE VIEW universal_en_hoyts
AS 
SELECT titulo, año
FROM peliculas, programacion
WHERE estudio= ‘Universal’
AND peliculas.titulo = programacion.pelicula
AND programacion.cine=hoyts
Modificando tablas a través de vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 37
INSERT INTO universal_en_hoyts
VALUES (‘The Grinch’, 2018)
SQL no deja insertar estos casos
Vistas
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 38
SQL tiene reglas estrictas sobre modificar vistas:
•La vista está definida sobre solo una tabla
•La vista no contiene funciones de agregación
•La vista debe incluir la llave primaria de la tabla
•La vista no puede tener subqueries, group by o distincts

Continuar navegando

Materiales relacionados

48 pag.
1-Intro - Yuliana Ruiz Borrayo

User badge image

Desafio PASSEI DIRETO

38 pag.
6-SQL4 - Yuliana Ruiz Borrayo

User badge image

Desafio PASSEI DIRETO

25 pag.
7-Python - Yuliana Ruiz Borrayo

User badge image

Desafio PASSEI DIRETO