0% encontró este documento útil (0 votos)
43 vistas70 páginas

Clase 4 - Sublenguajes SQL

Este documento presenta un resumen de la clase 04 de SQL. Se introducen los sublenguajes SQL como ordenamiento de datos y funciones de agregación. También se explican conceptos como limit, alias y ejemplos de funciones como count, min, max. El objetivo es reconocer e implementar sentencias complementarias de SQL e identificar funciones.

Cargado por

Valeria Sanchez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas70 páginas

Clase 4 - Sublenguajes SQL

Este documento presenta un resumen de la clase 04 de SQL. Se introducen los sublenguajes SQL como ordenamiento de datos y funciones de agregación. También se explican conceptos como limit, alias y ejemplos de funciones como count, min, max. El objetivo es reconocer e implementar sentencias complementarias de SQL e identificar funciones.

Cargado por

Valeria Sanchez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 70

Esta clase va a ser

grabada
Clase 04. SQL

Sublenguajes SQL
Temario

04
03 05

Consultas y
Lenguajes SQL Sublenguajes SQL
subconsultas SQL

✓ Sublenguajes ✓ Union
✓ Lenguaje SQL SQL
✓ Tipos de
✓ Operadores SQL ✓ Ordenamiento datos
de datos
✓ Sentencia Where ✓ Subconsultas
✓ Funciones de SQL
agregación
Objetivos de la clase

Reconocer e implementar las sentencias


complementarias de SQL

Identificar las funciones en SQL

Identificar los diferentes tipos de intersección en


tablas SQL
MAPA DE CONCEPTOS
Usabilidad

UX Interacción

Factores que
construye UX

Diseño Centrado
Analizar Diseñar Validar
en el Usuario

UI
Iterar
Repaso
Comenzamos en el poder, y a su vez la Veamos ahora de qué se tratan los
complejidad que el lenguaje SQL tiene para el sublenguajes SQL, y cuál es el objetivo de
procesamiento, así como la obtención de integrarlos en el uso cotidiano de éste.
información de una base de datos.
Sublenguajes
SQL
Operadores de comparación

Pre-calentemos con = igual a IS [NOT] no es nulo BETWEEN entre


NULL
algunos ejemplos,
combinando operadores < menor a NOT NOT lógico [NOT] no está
de comparación BETWEEN entre
mencionados la clase
> mayor a LIKE es como IN en (lista)
anterior, para ponernos
en línea con el resto de <= menor o [NOT] LIKE no es como [NOT] IN no está en
los temas que siguen. igual a (lista)

=> mayor o IS [NOT] no es IS [NOT] no es falso


igual a TRUE verdadero FALSE

!= ó distinto de AND AND lógico OR OR lógico


<>
Actividad colaborativa
Prácticas con operadores
Veamos cómo combinar diferentes operadores
sobre la tabla GAME y COMMENTARY, para
obtener diferentes resultados posibles.

Duración: 10 minutos
Prácticas con operadores
ACTIVIDAD COLABORATIVA

Acuerdos
Presencia Apertura al aprendizaje
✓ Participar y “estar” en la clase, que tu ✓ Siempre, pero siempre puedes seguir
alrededor no te distraiga aprendiendo. Compartir el
conocimiento es válido, la construcción
colaborativa es la propuesta.
Escucha activa
✓ Escuchar más allá de lo que la persona
está expresando directamente Todas las voces
✓ Escuchar a todos, todos podemos
reflexionar. Dejar el espacio para que
todos podamos participar.
ACTIVIDAD COLABORATIVA

Prácticas con operadores


Resolver las siguientes consultas: ✓ Aquellos juegos de nivel 1.
✓ Todos los comentarios sobre juegos ✓ Aquellos juegos sean de nivel 14 o
desde 2019 en adelante. superior.
✓ Todos los comentarios sobre juegos ✓ Aquellos juegos de nombre 'Riders
anteriores a 2011. Republic' o 'The Dark Pictures: House Of
✓ Los usuarios y texto de aquellos Ashes'.
comentarios sobre juegos cuyo código ✓ Aquellos juegos cuyo nombre empiece
de juego (id_game) sea 73 con 'Gran'.
✓ Los usuarios y texto de aquellos ✓ Aquellos juegos cuyo nombre contenga
comentarios sobre juegos cuyo id de 'field'.
juego no sea 73.

NOTA: usaremos los breakouts rooms. El tutor/a tendrá el rol de facilitador/a.


Para pensar
Si pensamos en un campo que debe almacenar
el DNI o Cédula de identidad de las personas,
¿qué tipo de dato debería ser el de este
campo?

¿Numérico o string?
Contesta la encuesta de Zoom
Para pensar
Y si pensamos en un campo contable, que
debe almacenar el año de ejercicio de los
asientos registrados, ¿qué tipo de dato
deberíamos darle a este campo?

¿Numérico o string?
Contesta la encuesta de Zoom
Ordenamiento
de datos
Order by
La sentencia “order by”
Así como podemos consultar, seleccionar qué Para el ordenamiento de la misma, debemos
mostrar y cuáles datos filtrar, SQL nos brinda recurrir a la sentencia ORDER BY.
también la posibilidad de ordenar la
información.
¿Cómo se implementa?
Podemos especificar una o más columnas,
1. SELECT (campos)
separando las mismas por una coma, para
2. FROM (tabla)
que el resultado SQL muestre los datos
3. WHERE (condición/es)
ordenados de acuerdo a nuestro criterio o
4. ORDER BY (columna)
necesidad.
¿Cómo se implementa?
Existen dos tipos de ordenamiento (de uso
1. SELECT (campos)
opcional):
2. FROM (tabla)
✓ ASC
3. WHERE (condición/es)
✓ DESC
4. ORDER BY (columna)
5. ASC
Si no especificamos ninguno, SQL ordena de
forma ASC.
Ejemplo en vivo

Seleccionemos todos los registros de la tabla


GAME, ordenados por name de forma
ascendente (ASC).
Prácticas con ordenamiento
Ejemplo en vivo
Ahora seleccionemos todos los registros de la
tabla GAME, ordenados por id_level de forma
descendente (DESC) y apliquemos el filtro
donde el nombre (name) contenga el texto “of”
Prácticas con ordenamiento
Limit
La sentencia “limit”
La utilizamos al final de toda la sentencia LIMIT espera uno o dos parámetros:
SELECT, para restringir el número de filas en el ✓ desde qué registro comenzar a mostrar.
resultado de la consulta. ✓ el total de registros próximos a mostrar.
La sentencia “limit”

Si especificamos un solo
parámetro numérico, nos
devolverá sólo los
primeros N registros del
resultado de la consulta.

SELECT *
FROM game
ORDER BY id_class
LIMIT 5;
La sentencia “limit”

Si especificamos dos
parámetros numéricos,
se listarán los N registros
del resultado de la
consulta, partiendo de la
posición indicada por el
primer parámetro.

SELECT *
FROM game
ORDER BY id_class
LIMIT 3, 5;
Uso de limit top

Si alguna vez debes SELECT TOP 10 *


trabajar con SQL Server,
ten presente que este FROM game
motor de BD no incluye
la sentencia LIMIT. ORDER BY id_class DESC;
En su lugar, utiliza la
sentencia TOP para
devolverte los primeros
N registros de la
consulta solicitada.
Ejemplo en codigo SQL
Server:

Break
¡10 minutos y volvemos!
Alias
Uso de alias
SQL Alias es una forma de acotar el nombre Se debe usar la palabra reservada AS,
de una tabla o columna, simplificando así su seguida del alias que se desea dar a dicho
uso en sentencias SQL. Se logra reducir las campo o tabla.
sentencias SQL cuando incluyen dos o más
tablas y/o varios campos.
Uso de alias

La integración de Alias
es ideal para acortar el
nombre de campos y/o SELECT
tablas. su.id_system_user AS id,
su.last_name AS l_n,
su.password AS pass
FROM system_user su
ORDER BY su.id_system_user;
Funciones de
agregación
Funciones de agregación
Así como SQL nos permite obtener datos de Podemos combinar funciones de totalización,
una o más tablas, también nos permite conteo, promedios, valores mínimos y/o
obtener valores simplificados o resumidos, máximos, entre otras, al momento de realizar
sobre datos específicos que necesitemos. la consulta.
Esto se conoce como Funciones de Las funciones de agregación se combinan
Agregación o Agrupación. con la cláusula GROUP BY y el uso de AS.
Repaso por las
funciones
COUNT ()
Devuelve el número total de filas SELECT COUNT(*)
seleccionadas en una consulta. AS total_level
FROM level_game;
MIN ()

Devuelve el valor mínimo


de un campo que
especifiquemos. SELECT MIN(id_level)
AS min_level
FROM level_game;
MAX ()

Devuelve el valor
máximo de un campo
que especifiquemos. SELECT MAX(id_level)
AS max_level
FROM level_game;
SUM ()

Devuelve la suma de los


valores de un campo
que especifiquemos SELECT SUM(value)
FROM vote
WHERE id_game = 1;
AVG ()

Devuelve el valor
promedio de un campo
que especifiquemos. SELECT AVG(value)
FROM vote
WHERE id_game = 1;
Ejemplo en vivo

¡Veamos las funciones de agrupación en


acción!
GROUP BY
Ejemplo en vivo
Como ya mencionamos, la cláusula GROUP BY
es fundamental para usarse junto a las
funciones de agregación, la debemos utilizar
cuando debemos obtener información que
nace de la agrupación de registros.
Por lo tanto, será el aliado ideal para usarse
junto a COUNT(), SUM() y AVG().
GROUP BY

SELECT
id_system_user AS user,
COUNT(*) AS
games_by_user
FROM play
GROUP BY id_system_user;
HAVING
Having
HAVING, al igual WHERE, permite establecer Por lo tanto, debemos tener presente que
condiciones para filtrar los resultados. Para esta sentencia solo funciona con campos
generados a partir de una función.
ello, necesitamos generar campos con
resultados filtrados, para luego sumar a
HAVING.
HAVING

SELECT
id_system_user AS user,
COUNT(*) AS
games_by_user
FROM play
GROUP BY id_system_user
HAVING COUNT(*) > 1;
Prácticas de
agrupamiento
Implementemos las diferentes opciones de orden y
agrupamiento de datos

Duración: 10 minutos
ACTIVIDAD EN CLASE

Prácticas de agrupamiento
Partiendo de la tabla, debes determinar qué resultado obtendrás, implementando las consultas de
la diapositiva siguiente.
Comentaremos los resultados en la clase, a través del sistema de chat.

1. SELECT * FROM commentary ORDER BY id_system_user desc;


2. SELECT * FROM commentary ORDER BY id_system_user LIMIT 3;
3. SELECT COUNT(id_system_user ) AS comments, id_system_user
4. FROM commentary GROUP BY id_system_user ;
5. SELECT COUNT(id_system_user ) AS comments, id_system_user
6. FROM commentary
7. GROUP BY id_system_user
8. HAVING comments > 2;
JOIN
JOIN

Concepto

JOIN permite combinar


registros de diferentes
tablas, complementándose
con la cláusula ON, la cual
establece la condición por
la cual queremos unir las
tablas. Generalmente son
campos comunes entre
tablas. Los tipos de JOIN
importantes, son cuatro:
INNER JOIN
INNER JOIN

Concepto

INNER JOIN, o JOIN, retorna


todas las filas de las dos
SELECT nombres_columnas
tablas siempre que haya
coincidencia por el campo FROM tabla1
declarado en el ON. INNER JOIN tabla2
ON tabla1.columna_relacion =
El resultado es NULL tabla2.columna_relacion;
cuando no hay coincidencia
alguna.
Sintaxis: INNER JOIN

Armamos la consulta utilizando INNER


JOIN para llegar al resultado deseado.

SELECT id_system_user as user,


g.id_game as game, name,
id_level as level
FROM play p INNER JOIN game g
ON (p.id_game = g.id_game);
LEFT JOIN
LEFT JOIN

LEFT JOIN retorna todas las filas de la SELECT nombres_columnas


tabla izquierda que coincidan con las
filas de la tabla derecha FROM tabla1
LEFT JOIN tabla2
El resultado es NULL del lado derecho,
cuando no hay coincidencia. ON tabla1.columna_relacion
= tabla2.columna_relacion;
Sintaxis: LEFT JOIN

Armamos la consulta utilizando LEFT


JOIN para llegar al resultado deseado

SELECT id_system_user as user,


SELECT id_system_user as user,
g.id_game as game,
name, id_level as level
FROM game g LEFT JOIN play p
ON (p.id_game = g.id_game);
RIGHT JOIN
RIGHT JOIN

RIGHT JOIN retorna todas las filas de SELECT nombres_columnas


la tabla derecha que coincidan con
las filas de la tabla izquierda FROM tabla1
RIGHT JOIN tabla2
El resultado es NULL cuando no hay
coincidencia del lado izquierdo ON tabla1.columna_relacion
= tabla2.columna_relacion;
Sintaxis: LEFT JOIN

Armamos la consulta utilizando RIGHT


JOIN para llegar al resultado deseado

SELECT id_system_user as user,


g.id_game as game,
name, id_level as level
FROM play p RIGHT JOIN game g
ON (p.id_game = g.id_game);
FULL JOIN
FULL JOIN

FULL JOIN retorna todas las filas de la


tabla derecha y también las filas de la SELECT nombres_columnas
tabla izquierda.
FROM tabla1
Básicamente combina los resultados OUTER JOIN tabla2
de LEFT y RIGHT JOIN, pudiendo
tener valores nulo de ambos lados. ON tabla1.columna_relacion
= tabla2.columna_relacion;
Nota: MySQL no soporta FULL JOIN.
Sintaxis: FULL JOIN

Armamos la consulta utilizando FULL


JOIN para llegar al resultado deseado.

SELECT s.id_system_user as
user, g.id_game as game,
name, id_level as level
FROM system_user s FULL JOIN
play p
ON (s.id_system_user =
p.id_system_user)
FULL JOIN game g ON (p.id_game
= g.id_game);
Diagrama entidad-relación
Iniciaremos el diseño de la base de datos de nuestro
proyecto final.
DESAFÍO ENTREGABLE

Diagrama entidad-relación
Consigna Formato
✓ Diseñar el modelo entidad-relación de ✓ PPT o Slides nombrado como
al menos dos de las temáticas elegidas “Lista+Apellido”
para el proyecto final.
Sugerencias
Aspectos a incluir
✓ Definir al menos cinco tablas ✓ En caso de ser un archivo en línea,
✓ Crear el diagrama de entidad-relación activar permisos de acceso.
con todos sus componentes: ✓ Utilizar como guía la práctica y el
✓ Entidades desafío genérico de la clase.
✓ Acciones de relacionamiento
✓ Tipos de relación
✓ Campos clave
¿Preguntas?
Muchas gracias.
Resumen
de la clase hoy
✓ Prácticas con Operadores de comparación
✓ ORDER BY - LIMIT - HAVING
✓ GROUP BY - Funciones de agrupación
✓ JOIN entre dos tablas
Opina y valora
esta clase

También podría gustarte