Prof. Daniel Obando Fuentes Bases de Datos 1 Prof. Daniel Obando Fuentes
Aggregate functions Count() Max() Avg() Min() Sum() Upper() Top() Lower()
count SELECT COUNT(column_name) FROM table_name; SELECT COUNT(CustomerID) AS OrdersFromCustomerID7 FROM Orders WHERE CustomerID=7;
Count distinct SELECT COUNT(DISTINCT column_name) FROM table_name; SELECT COUNT(DISTINCT CustomerID) AS NumberOfCustomers FROM Orders;
AVG SELECT AVG(column_name) FROM table_name SELECT AVG(Price) AS PriceAverage FROM Products;
sum SELECT SUM(column_name) FROM table_name; SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails;
top SELECT TOP N column_name FROM table_name ORDER BY column_name ASC; SELECT TOP 1 CustomerName FROM Customers ORDER BY CustomerID ASC;
max SELECT MAX(column_name) FROM table_name; SELECT MAX(Price) AS HighestPrice FROM Products;
min SELECT MIN(column_name) FROM table_name; SELECT MIN(Price) AS SmallestOrderPrice FROM Products;
UPPER SELECT UPPER(column_name) FROM table_name; SELECT UPPER(CustomerName) AS Customer, City FROM Customers;
LOWER SELECT LOWER(column_name) FROM table_name; SELECT LOWER(CustomerName) AS Customer, City FROM Customers;
Modificadores Having Order by Group by Joins
ORDER BY SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC; SELECT * FROM Customers ORDER BY Country;
SELECT * FROM Customers ORDER BY Country DESC; SELECT * FROM Customers ORDER BY Country,CustomerName;
GrOUp by Siempre se usa en conjunto con alguna función agreggate SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name; SELECT ShipperName,COUNT(NumberOfOrders) FROM Orders GROUP BY ShipperName;
having Agregado a SQL ya que el WHERE no puede ser usado con funciones aggregate SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value; SELECT LastName, NumberOfOrders FROM Orders GROUP BY LastName HAVING COUNT(NumberOfOrders) > 10;
OFFSET SELECT * FROM HumanResources.Department OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY SELECT * FROM HumanResources.Department OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY
joins Un join es una cláusula utilizada para combinar filas de dos o más tablas, basados en un campos en común. OrderID CustomerID OrderDate 10308 2 1996-09-18 10309 37 1996-09-19 10310 77 1996-09-20 CustomerID CustomerName Country 1 Bryan Ruiz England 2 Celso Borges Sweden 3 Keylor Navas Spain
joins SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID; OrderID CustomerName OrderDate 10308 Bryan Ruiz 1996-09-18 10309 Celso Borges 1996-09-19 10310 Keylor Navas 1996-09-20 LEFT TABLE RIGHT TABLE
Joins - tipos Inner Joins Outer Joins Las filas son retornadas por la consulta solo si existe un valor común en todas las tablas. Outer Joins Outer Left: Todas las tuplas de la tabla IZQUIERDA serán retornados sin importar si hacen match con la tabla DERECHA. Outer Right: Todas las tuplas de la tabla DERECHA serán retornadas sin importar si hacen match con la tabla IZQUIERDA.
Joins - tipos
INNER JOIN - UNION SELECT column_name(s) FROM table1 [INNER] JOIN table2 ON table1.column_name=table2.column_name; SELECT Customers.CustomerName, Orders.OrderID FROM Customers INNER JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName;
LEFT JOIN – LEFT OUTER JOIN SELECT column_name(s) FROM table1 LEFT JOIN [LEFT OUTER JOIN] table2 ON table1.column_name=table2.column_name; Customers.CustomerName, Orders.OrderID FROM Customers LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName;
RIGHT JOIN – RIGHT OUTER JOIN SELECT column_name(s) FROM table1 RIGHT JOIN [RIGHT OUTER JOIN] table2 ON table1.column_name=table2.column_name; Customers.CustomerName, Orders.OrderID FROM Customers RIGHT JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName;
tarea Investigar el uso de SUBSTRING() Len() Round() Now() Format() Enviar una breve explicación y una consulta de ejemplo con un screenshot de los resultados. ¿Cómo implementaría la función Last() en Transact-SQL?