cc3201-1 b datos o 2017 clase 5: sql...
TRANSCRIPT
![Page 2: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/2.jpg)
El Cálculo Relacional (de tuplas)
• Fórmulas atómicas:
• Una fórmula puede ser
– Una fórmula atómica o
– Sean (recursivamente) p y q formulas:
![Page 3: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/3.jpg)
Forma básica de una consulta de SQL
![Page 4: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/4.jpg)
Los planetas
![Page 5: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/5.jpg)
EL TEMA DE HOY …… MÁS SQL!
Capítulo 5.4-5.6 | Ramakrishnan / Gehrke
![Page 6: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/6.jpg)
El Álgebra Relacional en SQL
¿Hemos visto todo el álgebra en SQL? ¡Sí! (Y un poco más)
![Page 7: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/7.jpg)
• SELECT, FROM, WHERE
• ORDER BY• JOIN (simple)• UNION, INTERSECT, EXCEPT
• LIKE
• IN, BETWEEN
SQL • Más tipos de JOIN
• Nulos• Consultas anidadas• Agregación
![Page 8: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/8.jpg)
PRODUCTO CRUZ
![Page 9: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/9.jpg)
Cruz: CROSS JOIN
![Page 10: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/10.jpg)
JOINS INTERNOS
![Page 11: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/11.jpg)
Cruzar tablas: JOIN
![Page 12: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/12.jpg)
Cruzar tablas: EQUI JOIN
EQUI JOINS usan sólo ‘=‘ en el JOIN
![Page 13: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/13.jpg)
Cruzar tablas: JOIN
¿Esta consulta es un EQUI JOIN?
¡Sí! Sólo la condición del join cuenta.
![Page 14: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/14.jpg)
Cruzar tablas: JOIN USING
Se puede usar JOIN USING cuando todos los atributos del JOIN tengan el mismo nombre
![Page 15: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/15.jpg)
Cruzar tablas: NATURAL JOIN
Un EQUI-JOIN sobre los atributos que las tablas compartan (por pareja con AND).
![Page 16: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/16.jpg)
Cruzar tablas: SELF JOIN
Un JOIN sobre la tabla misma
![Page 17: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/17.jpg)
Cruzar tablas: INNER JOIN
INNER JOIN por defecto …
![Page 18: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/18.jpg)
JOINS EXTERNOS
![Page 19: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/19.jpg)
Joins Externos
¿Todos los planetas (y sus aterrizajes sí hay datos disponibles)?
![Page 20: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/20.jpg)
Joins Externos: LEFT [OUTER] JOIN
Se mantienen las tuplas de la izquierda si no hay datos desde la derecha
![Page 21: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/21.jpg)
Joins Externos: RIGHT [OUTER] JOIN
Se mantienen las tuplas de la derecha si no hay datos desde la izquierda
![Page 22: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/22.jpg)
Joins Externos: FULL OUTER JOIN
Se mantienen las tuplas de la derecha y la izquierda
![Page 23: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/23.jpg)
Join Interno versus Joins Externos
![Page 24: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/24.jpg)
VALORES NULOShttps://es.wikipedia.org/wiki/Null_(SQL)
Capítulo 5.6 | Ramakrishnan / Gehrke
![Page 25: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/25.jpg)
Nulos
DESCONOCIDO o INAPLICABLE
(No significa FALSO)
![Page 26: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/26.jpg)
Nulos: IS NULL
![Page 27: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/27.jpg)
Nulos: IS NOT NULL
![Page 28: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/28.jpg)
Comparación con nulos
![Page 29: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/29.jpg)
Comparación con nulos
¡El nulo en la consulta y el nulo en los datos son distintos!
![Page 30: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/30.jpg)
Comparación con nulos
???
Cuando no importa el valor del desconocido, el resultado se mantiene. Cuando importa el valor del desconocido, el resultado es desconocido.
![Page 31: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/31.jpg)
Comparación con nulos
Cuando no importa el valor del desconocido, el resultado se mantiene. Cuando importa el valor del desconocido, el resultado es desconocido.
![Page 32: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/32.jpg)
Nulos: COALESCE
Elegir el primer valor que no sea NULL
![Page 33: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/33.jpg)
CONSULTAS ANIDADAS
Capítulo 5.4 | Ramakrishnan / Gehrke
![Page 34: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/34.jpg)
Consultas Anidadas: WHERE/IN
Subconsulta
![Page 35: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/35.jpg)
Consultas Anidadas: WHERE/NOT IN
![Page 36: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/36.jpg)
Consultas AnidAnidadasadas: WHERE/NOT IN
![Page 37: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/37.jpg)
Consultas Anidadas: WHERE/EXISTS
Correlación:La subconsulta depende de la
consulta exterior
![Page 38: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/38.jpg)
Consultas Anidadas: WHERE/NOT EXISTS
![Page 39: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/39.jpg)
Consultas Anidadas: WHERE/(NOT) UNIQUE
UNIQUE (no suportado por Postgres):
0 o 1 resultados
![Page 40: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/40.jpg)
Consultas Anidadas: WHERE/ANY (o SOME)
ANY y SOME son sinónimos
![Page 41: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/41.jpg)
Consultas Anidadas: WHERE/ALL
![Page 42: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/42.jpg)
MÁS CONSULTAS ANIDADAS
![Page 43: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/43.jpg)
Consultas Anidadas: Valor
La subconsulta tiene que devolver un valor y una columna –si no…
![Page 44: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/44.jpg)
Consultas Anidadas: Valor
![Page 45: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/45.jpg)
Consultas Anidadas: Valor
![Page 46: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/46.jpg)
Consultas Anidadas: Fila
![Page 47: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/47.jpg)
Consultas Anidadas: Fila
![Page 48: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/48.jpg)
Consultas Anidadas: Fila
![Page 49: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/49.jpg)
Consultas Anidadas: Fila
![Page 50: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/50.jpg)
Consultas Anidadas: FROM
El alias Multi es
obligatorio
![Page 51: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/51.jpg)
REGRESAREMOS A LAB 1
![Page 52: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/52.jpg)
Lab 1
¿Con lo que hemos visto hasta ahora, cuáles preguntas podemos representar con SQL?
![Page 53: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/53.jpg)
AGREGACIÓN
Capítulo 5.5| Ramakrishnan / Gehrke
![Page 54: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/54.jpg)
Operadores de agregación
![Page 55: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/55.jpg)
Agregación: COUNT
![Page 56: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/56.jpg)
Agregación: COUNT DISTINCT
![Page 57: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/57.jpg)
Agregación: COUNT (DISTINCT afuera)
![Page 58: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/58.jpg)
Agregación: COUNT(*)
![Page 59: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/59.jpg)
Agregación: AVG
Depende del sistema
Postgres
![Page 60: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/60.jpg)
Agregación: AVG DISTINCT
Depende del sistema
Postgres
![Page 61: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/61.jpg)
Agregación: AVG (con casting)
![Page 62: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/62.jpg)
Agregación: MIN
![Page 63: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/63.jpg)
Agregación: MIN
![Page 64: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/64.jpg)
Agregación: MIN
![Page 65: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/65.jpg)
Agregación por planeta: explícitamente
![Page 66: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/66.jpg)
Agregación por planeta: GROUP BY
![Page 67: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/67.jpg)
Agregación por planeta: GROUP BY/HAVING
![Page 68: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/68.jpg)
Agregación por planeta: HAVING/EVERY
![Page 69: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/69.jpg)
Agregación por planeta: HAVING/ANY
Postgres
![Page 70: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/70.jpg)
LIMITAR RESULTADOS
Más detalles: https://en.wikipedia.org/wiki/Select_(SQL)#Limiting_result_rows
![Page 71: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/71.jpg)
Sistemas de bases de datos (con SQL)
http://db-engines.com/en/ranking/relational+dbms
¡Varios sistemas pueden tener varias interpretaciones del estándar de SQL!
Pero normalmente el “core” de SQL es compatible en los sistemas más populares.
![Page 72: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/72.jpg)
Ordenar resultados: ORDER BY [DESC|ASC]
![Page 73: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/73.jpg)
Devolver n resultados: FETCH FIRST
Una versión estándar (desde SQL:2008) que se usa en Postgres y DB2.
![Page 74: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/74.jpg)
Devolver n resultados: LIMIT
Una versión no estándar que se usa en Postgres, SQLite y MySQL.
![Page 75: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/75.jpg)
Devolver n resultados: TOP
Una versión no estándar que se usa en SQL Server y MS Access.
![Page 76: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/76.jpg)
Devolver n resultados: ROW_NUMBER()
Una versión estándar (desde SQL:2003) que se usa en Postgres, DB2, MS Access, Oracle
![Page 77: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/77.jpg)
Devolver empates: RANK()
Una versión estándar (desde SQL:2003) que devuelva empates en el orden.
![Page 78: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/78.jpg)
Saltar n resultados: LIMIT + OFFSET
Una versión no estándar que se usa en Postgres, SQLite y MySQL.
![Page 79: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/79.jpg)
MÁS FUNCIONES
¡Dependen mucho del sistema particular!
![Page 80: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/80.jpg)
Aritmético
![Page 81: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/81.jpg)
Aritmético
![Page 82: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/82.jpg)
Strings
![Page 83: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/83.jpg)
Condicionales
![Page 84: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/84.jpg)
CONSULTAS DIRECTAS VS. CONSULTAS ANIDADAS
![Page 85: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/85.jpg)
SQL tiene mucha redundancia
![Page 86: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/86.jpg)
Consultas directas vs. consultas anidadas
Nombres y géneros de los co-actores de Liv Tyler.
¿Son equivalentes pero cuál es más eficiente?
![Page 87: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/87.jpg)
Consultas directas vs. consultas anidadas
Nombres y géneros de los co-actores de Liv Tyler.
¿Son equivalentes pero cuál es más eficiente?¡Hay poca diferencia!
![Page 88: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/88.jpg)
Consultas directas vs. consultas anidadas
Nombres y géneros de co-actores de personas con una apellida “L%”.
¡Hay una diferencia (pero es poco predecible)!
![Page 89: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/89.jpg)
SQL es un lenguaje declarativo
Uno dice lo que quiere, no como se debería computar
![Page 90: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/90.jpg)
SQL es un lenguaje declarativo
Uno dice lo que quiere, no como se debería computar
– Idealmente, el motor puede elegir el mejor plan de ejecución independientemente de su expresión particular
• Pero, esto es caro, entonces en la práctica, hay diferencias
– Regresaremos al tema de rendimiento y optimización más adelante en el curso
– Pero en general, se puede expresar una consulta en la forma “más natural” y dejar la ejecución al motor
![Page 91: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/91.jpg)
• SELECT, FROM, WHERE
• ORDER BY• JOIN (simple)• UNION, INTERSECT, EXCEPT
• LIKE
• IN, BETWEEN
SQL • Más tipos de JOIN
• Nulos• Consultas anidadas• Agregación
![Page 92: CC3201-1 B DATOS O 2017 Clase 5: SQL (II)aidanhogan.com/teaching/cc3201-1-2017/lectures/BdD2017-05.pdf · INNER JOIN por defecto ... Consultas directas vs. consultas anidadas Nombres](https://reader031.vdocuments.pub/reader031/viewer/2022021504/5aa411657f8b9a517d8b5a87/html5/thumbnails/92.jpg)
Preguntas?