Sei sulla pagina 1di 32

Módulo 3 - Bases de datos & SQL

Clase 4

www.digitalhouse.com 1
CONTENIDOS DE LA CLASE

1 Sentencias DML (Insert, Update y Delete)

2 Operador JOIN

3 Operador UNION

4 Ejercitación SQL

www.digitalhouse.com 2
INSERT

www.digitalhouse.com
Inserción de registros

Se utiliza la sentencia INSERT INTO


Estructura:

INSERT INTO NombreDeLaTabla VALUES(


valor1, valor2, valor3
);

Los valores deben ir en el mismo orden que se encuentran las columnas.


Inserción de registros

Se utiliza la sentencia INSERT INTO


Estructura:

INSERT INTO NombreDeLaTabla (Columna2, Columna3) VALUES(


valorColumna2, valorColumna3
);

Los valores deben ir en el mismo orden en que proporcionamos las columnas.


Inserción de registros

Ejemplos:

INSERT INTO Clientes(DNI,Nombre,Apellido) VALUES (


‘3552222’, 'Mariano', 'Perez'
);

INSERT INTO Productos(SKU,Nombre) VALUES (


‘12’, 'Lentes Reef'
);

Los valores de tipo TEXT se expresan entre comillas simples.


UPDATE

www.digitalhouse.com
Modificación de registros
Para modificar registros de la tabla se utiliza la sentencia UPDATE

Estructura:

UPDATE NombreDeLaTabla
SET Columna1 = nuevoValor1, Columna2 = nuevoValor2
WHERE condition;

Las instrucciones detalladas en azul son optativas.


WHERE: permite especificar alguna condición para filtrar datos.
Modificación de registros

Ejemplo:

UPDATE Clientes ¿Qué hace este


SET nombre = 'Alberto' UPDATE?
WHERE DNI = ‘34522122’;
DELETE

www.digitalhouse.com
Borrado de registros
Para eliminar registros de la tabla se utiliza la sentencia DELETE

Estructura:

DELETE
FROM NombreDeLaTabla
WHERE condition;

Las instrucciones detalladas en azul son optativas.


WHERE: permite especificar alguna condición para filtrar datos.
Borrado de registros

Ejemplo

DELETE
FROM Cliente
WHERE DNI = ‘34522122’; ¿Qué hacen
estos DELETE?
DELETE
FROM Producto
WHERE SKU = ‘12’;
Borrado de registros

Ejemplo

DELETE
FROM Cliente
¿Qué hacen
estos DELETE?
DELETE
FROM Cliente
WHERE Apellido = 'Lee';
ALIASES

www.digitalhouse.com
Módulo 02: DB + SQL

Alias de tablas y columnas

Se puede utilizar un alias para abreviar el nombre de una tabla o una columna,
utilizando la instrucción AS

SELECT T1.Columna1, T2.Columna2 as C2


FROM NombreDeLaTabla1 AS T1, NombreDeLaTabla2 AS T2
Módulo 02: DB + SQL

Alias de tablas y columnas


Ejemplos:

SELECT C.SKU, C.DNI, Cli.Apellido


FROM Compras AS C, Clientes AS Cli
WHERE C.DNI == Cli.DNI

SELECT DNI, SUM(Precio) AS PrecioTotal


FROM Compras
WHERE Fecha > “02/01/2017”
GROUP BY DNI
HAVING PrecioTotal >= 70
JOIN

www.digitalhouse.com
Módulo 02: DB + SQL

Consultas en más de una tabla al mismo tiempo

JOIN

JOIN permite combinar registros de diferentes tablas. En la clausula ON debemos


establecer la condición por la cual queremos unir la tabla, que generalmente es algo
que tengan ambas en común.

SELECT Columna1, Columna2, ...


FROM NombreDeLaTabla1
JOIN NombreDeLaTabla2, ...
ON condicionDeJunta
Módulo 02: DB + SQL

Junta de tablas
Ejemplo

SELECT C.SKU, C.DNI, Cli.Apellido


FROM Compras AS C
JOIN Clientes AS Cli
ON C.DNI == Cli.DNI

Compras Clientes

SKU (PK) (FK) DNI (PK)


DNI (FK) Nombre
Fecha Apellido
Módulo 02: DB + SQL

¿Cómo funciona el JOIN?

Al unir dos tablas usando la clausula JOIN sin especificar


una condicion en la clausula ON, SQL lo que hace es
devolver una nueva tabla con todos los registros
combinados de una con todas las posibles combinaciones
de la otra (producto cartesiano)
Módulo 02: DB + SQL

¿Cómo funciona el JOIN?

SELECT C.SKU, C.DNI, Cli.Apellido


FROM Compras AS C
JOIN Clientes AS Cli;

SKU DNI Fecha Precio DNI Nombre Apellido

3 33.241.677 03/01/2017 70
33.241.677 Cesar Carroza

4 35.186.928 04/01/2017 40

35.186.928 Mariano Firefox


5 33.241.677 03/01/2017 50
Módulo 02: DB + SQL

¿Cómo funciona el JOIN?

Para eliminar las combinaciones que no queremos, ponemos la


condición por la cual queremos que quede la unión.
Esta restricción va en el ON.
Módulo 02: DB + SQL

¿Cómo funciona el JOIN?

SELECT C.SKU, C.DNI, Cli.Apellido


FROM Compras C
JOIN Clientes Cli ON C.DNI = Cli.DNI

SKU DNI Fecha Precio DNI Nombre Apellido

3 33.241.677 03/01/2017 70
33.241.677 Cesar Carroza

4 35.186.928 04/01/2017 40

35.186.928 Mariano Firefox


5 33.241.677 03/01/2017 50
TIPOS DE JOIN

www.digitalhouse.com
COMBINANDO TABLAS

ㅡ Imaginemos que contamos con un dataset que contiene las siguientes tablas: Personas y
Logros

ㅡ Veamos el contenido de las tablas:

SELECT * FROM Personas;


SELECT * FROM Logros;
Personas

Logros
www.digitalhouse.com 25
DEMO: DISTINTOS TIPOS DE JOIN

ㅡ Hay varios tipos de operaciones de JOIN.

○ INNER JOIN: Retorna todos los registros donde haya al menos una coincidencia en ambas tablas
○ LEFT JOIN: Retorna todos los registros de la tabla izquierda, y los registros que coincidan de la tabla
derecha
○ RIGHT JOIN: Retorna todos los registros de la tabla derecha, y los registros que coincidan de la tabla
izquierda
○ FULL OUTER JOIN: Retorna todos los registros de ambas tablas aunque no tengan correspondencia

ㅡ Es mucho más fácil entender los JOIN como operaciones


de intersección de conjuntos.

ㅡ Existe una teoría matemáticamente sólida detrás de estas


operaciones llamada Álgebra Relacional.

www.digitalhouse.com 26
DEMO: DISTINTOS TIPOS DE JOIN

LEFT JOIN
El LEFT JOIN retorna todas las filas de la tabla izquierda (tabla1), con
las filas coincidentes en la tabla derecha (tabla2).
El resultado es NULL en el lado derecho cuando no hay coincidencia.

Sintaxis del Left Join:

SELECT nombres_columnas
FROM tabla1
LEFT JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;

Ejemplo para Personas y Logros:

SELECT Personas.Apellido, Logros.Logro


FROM Personas
LEFT JOIN Logros
ON Personas.PersonaID = Logros.PersonaID;

www.digitalhouse.com 27
DEMO: DISTINTOS TIPOS DE JOIN

RIGHT JOIN
De forma similar, el RIGHT JOIN devuelve todas las filas de la tabla
derecha (tabla2), con las filas coincidentes en la tabla de la izquierda
(tabla1).
El resultado es NULL del lado izquierdo cuando no hay coincidencia.

Sintaxis del Right Join:

SELECT nombres_columnas
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;

Ejemplo para Personas y Logros:

SELECT Personas.Apellido, Logros.Logro


FROM Personas
RIGHT JOIN Logros
ON Personas.PersonaID = Logros.PersonaID;

www.digitalhouse.com 28
DEMO: DISTINTOS TIPOS DE JOIN

FULL OUTER JOIN


El FULL OUTER JOIN retorna todas las filas de la tabla de la izquierda
(tabla1) y de la tabla de la derecha (tabla2).
El FULL OUTER JOIN combina el resultado de LEFT y RIGHT JOIN. En
este caso podemos tener valores NULL de ambos lados.

Sintaxis del FULL OUTER JOIN:

SELECT nombres_columnas
FROM tabla1
FULL OUTER JOIN tabla2
ON tabla1.columna_relacion=tabla2.columna_relacion;

Ejemplo para Personas y Logros:

SELECT Personas.Apellido, Logros.Logro


FROM Personas
FULL OUTER JOIN Logros
ON Personas.PersonaID = Logros.PersonaID;

www.digitalhouse.com 29
UNION

www.digitalhouse.com
Módulo 02: DB + SQL

Combinar resultados de consultas SELECT

UNION
UNION permite combinar el resultado de varias consultas SELECT al mismo tiempo.
Es decir, todas las consultas se ejecutaran por separado y luego se concatenaran
los resultados. A diferencia del JOIN no se aplica ningun tipo de logica relacional
para unir registros.

SELECT Columna1, Columna2, ...


FROM NombreDeLaTabla1
UNION
SELECT Columna1, Columna2, ...
FROM NombreDeLaTabla1
Ejercicio Individual

www.digitalhouse.com

Potrebbero piacerti anche