SQL
Ing Mg Mario Cesar Martìn Quito
Veràstegui.
Modelo de Datos de Pedidos
SQL JOIN
Una cláusula JOIN se utiliza para combinar filas de dos o más tablas, en función de una columna relacionada entre ellas.
Referencia :
[Link]
[Link]
SQL JOIN
INNER JOIN : Selecciona registros que tienen valores coincidentes en ambas tablas.
SELECT column_name(s)
FROM table1 INNER JOIN table2
ON table1.column_name = table2.column_name;
Ejemplo :
selecciona todos los pedidos con información del cliente.
selecciona todos los pedidos con información del cliente y del remitente
SELECT [Link], [Link]
FROM Orders INNER JOIN Customers
ON [Link] = [Link];
SELECT [Link], [Link], [Link]
FROM ((Orders INNER JOIN Customers
ON [Link] = [Link])
INNER JOIN Shippers ON [Link] = [Link]);
SQL JOIN
LEFT JOIN : La palabra clave LEFT JOIN devuelve todos los registros de la tabla izquierda (tabla1) y los
registros coincidentes de la tabla derecha (tabla2). El resultado es NULL desde el lado derecho, si no hay
coincidencia.
SELECT column_name(s)
FROM table1 LEFT JOIN table2
ON table1.column_name = table2.column_name;
Ejemplo :
Seleccionar a todos los clientes y cualquier pedido que tenga
SELECT [Link], [Link]
FROM Customers LEFT JOIN Orders
ON [Link] = [Link]
ORDER BY [Link];
SQL JOIN
RIGHT JOIN : La palabra clave RIGHT JOIN devuelve todos los registros de la tabla derecha (tabla2) y
los registros coincidentes de la tabla izquierda (tabla1). El resultado es NULL del lado izquierdo, cuando
no hay coincidencia.
SELECT column_name(s)
FROM table1 RIGHT JOIN table2
ON table1.column_name = table2.column_name;
Ejemplo :
Seleccionar todos los empleados y sus respectivos pedidos que hayan realizado
SELECT [Link], [Link], [Link]
FROM Orders RIGHT JOIN Employees
ON [Link] = [Link]
ORDER BY [Link];
Gupos
GROUP BY : se utiliza a menudo con funciones agregadas (COUNT, MAX, MIN, SUM, AVG) para agrupar el conjunto de
resultados por una o más columnas.
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Ejemplo :
Seleccionar el número de clientes en cada país.
Seleccionar el número de clientes en cada país, ordenados de mayor a menor.
Seleccionar el número de órdenes enviadas por cada remitente:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
SELECT [Link], COUNT([Link]) AS NumberOfOrders
FROM Orders LEFT JOIN Shippers ON [Link] = [Link]
GROUP BY ShipperName;
Having
HAVING : La cláusula HAVING se agregó a SQL porque la palabra clave WHERE no se podía utilizar con funciones agregadas.
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
Ejemplo :
Enumerar el número de clientes en cada país. Sólo se incluyen países con más de 5 clientes.
Enumera el número de clientes en cada país, ordenados de mayor a menor (sólo incluyen países con más de 5 clientes).
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
LIMIT
LIMIT : Se utiliza para especificar el número de registros a devolver. es útil en tablas grandes con miles de registros. Devolver
un gran número de registros puede tener un impacto en el rendimiento.
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Ejemplo :
SELECT * FROM Customers
LIMIT 3;
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
Funciones en MySQL
Funciones en MySQL
Funciones en MySQL
Funciones en MySQL
Funciones en MySQL
CURDATE() : Devuelve la fecha actual. Esta función devuelve la fecha actual como formato "AAAA-MM-DD" si se utiliza en un
contexto de cadena y como formato AAAAMMDD si se utiliza en un contexto numérico.
Ejemplo :
Select *,CURDATE() from tabla;
Select *
From tabla
Where fecha=CURDATE();
SUBDATE() : Devuelve una fecha después de que se ha restado un cierto intervalo de tiempo / fecha.
SUBDATE(date, INTERVAL value unit)
SUBDATE(date, days)
Ejemplo :
SELECT SUBDATE("2017-06-15", INTERVAL 10 DAY);
SELECT SUBDATE("2017-06-15 [Link]", INTERVAL 15 MINUTE);
SELECT SUBDATE(CURDATE(), INTERVAL 15 MINUTE);
Ejercicios;
Escribir un query para obtener la facturación total de la empresa.
Mediante un query obtener una lista con los números de Ordenes, la cantidad de productos diferentes vendidos y el total
facturado.
Mediante SQL obtener un listado con los nombres de las ciudades junto con la cantidad de ordenes correspondientes a esa
ciudad.
Escribir un query que devuelva la cantidad de clientes, cuando esta exceda los 100.
Mediante SQL obtener un listado con los nombres de las ciudades y el total facturado para cada ciudad.
Mediante SQL obtener la cantidad vendida de cada producto.
Mediante SQL obtener la cantidad vendida de cada producto por cliente.
Mediante SQL obtener los 5 productos mas vendidos..
Mediante SQL obtener los 5 productos mas vendidos en los ultimos 6 meses.
Mediante SQL obtener los 5 productos de mayor venta en los ultimos 6 meses.