BASES DE DATOS
7mo Programacion
SQL
INNER JOIN - LEFT JOIN - RIGHT JOIN
1
TIPOS DE JOINS EN SQL
INNER JOIN: Devuelve todas las filas cuando hay al menos una
coincidencia en ambas tablas.
LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas
coincidentes de la tabla de la derecha.
RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas
coincidentes de la tabla de la izquierda.
OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la
derecha. No soportado por MySQL.
2
INNER JOIN
INNER JOIN selecciona todas las filas de las dos tablas siempre y cuando haya una
coincidencia entre las columnas en ambas tablas. Es el tipo de JOIN más común.
3
INNER JOIN
EJEMPLO: mediante las tablas Clientes y Pedidos
CLIENTES PEDIDOS
Sentencia SQL que devolverá todos los clientes con pedidos
Sofie Mariona aparece dos veces ya que ha realizado dos pedidos. No aparece Marco Lambert, pues no ha
realizado ningún pedido.
4
LEFT JOIN
LEFT JOIN mantiene todas las filas de la tabla izquierda (la tabla1). Las filas de la tabla
derecha se mostrarán si hay una coincidencia con las de la izquierda. Si existen valores
en la tabla izquierda pero no en la tabla derecha, ésta mostrará null.
5
LEFT JOIN
EJEMPLO: Tomando de nuevo las tablas de Clientes y Pedidos, ahora queremos mostrar
todos los clientes, y cualquier pedido que pudieran haber encargado:
Se muestran todas las filas de la tabla Clientes, que es la tabla de la izquierda, tantas
veces como haya coincidencias con el lado derecho. Marco Lambert no ha realizado
ningún pedido, por lo que se muestra null.
6
RIGHT JOIN
RIGHT JOIN Es igual que LEFT JOIN pero al revés. Ahora se mantienen todas las filas de
la tabla derecha (tabla2). Las filas de la tabla izquierda se mostrarán si hay una
coincidencia con las de la derecha. Si existen valores en la tabla derecha pero no en la
tabla izquierda, ésta se mostrará null.
7
RIGHT JOIN
EJEMPLO: tomamos el ejemplo de Clientes y Pedidos, y vamos a hacer el mismo
ejemplo anterior, pero cambiado LEFT por RIGHT
Ahora aparecen todos los pedidos, y los nombres de los clientes que han realizado un
pedido. Nótese que también se ha cambiado el orden, y se han ordenado los datos por
PedidoID.
8
OUTER JOIN
OUTER JOIN devuelve todas las filas de la tabla izquierda (tabla1) y de la tabla derecha
(tabla2). Combina el resultado de los joins LEFT y RIGHT. Aparecerá null en cada una de
las tablas alternativamente cuando no haya una coincidencia. NO EXISTE EN MYSQL
9
PRINCIPALES FUNCIONES EN SQL
Funciones agregadas SQL, devuelven un sólo valor, calculado con los valores de una columna.
AVG() - La media de los valores
COUNT() - El número de filas
MAX() - El valor más grande
MIN() - El valor más pequeño
SUM() - La suma de los valores
GROUP BY - Es una sentencia que va muy ligada a las funciones agregadas
10
PRINCIPALES FUNCIONES EN SQL
Funciones escalares SQL, devuelven un sólo valor basándose en el valor de entrada.
UCASE() - Convierte un campo a mayúsculas
LCASE() - Convierte un campo a minúsculas
MID() - Extrae caracteres de un campo de texto
LEN() - Devuelve la longitud de un campo de texto
NOW() - Devuelve la hora y fecha actuales del sistema
FORMAT() - Da formato a un formato para mostrarlo
11
PRINCIPALES FUNCIONES EN SQL
TABLA DE EJEMPLO: Productos
AVG(): devuelve la media de valores de una columna numérica
Devuelve la media del stock Muestra el NombreProducto y el Precio de los
registros que tienen un Precio por encima de la media
12
PRINCIPALES FUNCIONES EN SQL
COUNT(): devuelve el número de filas que cumplen con un determinado criterio
Número de valores en una columna (los valores
NULL no se cuentan):
Número de registros en una tabla
Número de valores distintos de una columna
13
PRINCIPALES FUNCIONES EN SQL
TABLA DE EJEMPLO: Pedidos
Conocer el número de pedidos del cliente número 4
Contar el número de pedidos totales
Contar el número de clientes únicos desde la tabla Pedidos
14
PRINCIPALES FUNCIONES EN SQL
MAX():
Devuelve el mayor valor de la columna seleccionada
De la tabla productos Devuelve el producto más caro
MIN():
Devuelve el menor valor de la columna seleccionada
De la tabla productos Devuelve el producto más barato
15
PRINCIPALES FUNCIONES EN SQL
SUM():
Devuelve la suma de una columna numérica:
De la tabla productos Devuelve el número total de
productos en stock:
GROUP BY(): se utiliza junto con las funciones agregadas para agrupar en un result-set una o más columnas.
16
PRINCIPALES FUNCIONES EN SQL
GROUP BY():
PRODUCTOS
PEDIDOS
Obtener el número de pedidos realizados por cada
CLIENTES cliente
17