Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Programación y administración de la información. SQL 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
Compartir