Академический Документы
Профессиональный Документы
Культура Документы
Unidad 4
UNIDAD 4
• INTEGRIDAD Y MANIPULACION DE DATOS
– Algebra Relacional
– SQL Básico DDL
– SQL Básico DML
– Funciones, Procedimientos y Triggers
SENTENCIAS DDL
Funciones
FUNCIONES DE USUARIO
• Las funciones son rutinas que permiten encapsular
sentencias TRANSACT-SQL que se ejecutan
frecuentemente.
• Las funciones definidas por el usuario, en tiempo de
ejecución de lenguaje TRANSACT-SQL o común (CLR),
acepta parámetros, realiza una acción, como un cálculo
complejo, y devuelve el resultado de esa acción como
un valor. El valor de retorno puede ser un escalar
(único) valor o una tabla.
FUNCIONES DE USUARIO
print dbo.PrecioPromedio()
FUNCIONES ESCALARES
Ejemplo: Northwind: Crear una función que retorne el numero
total de empleados
CREATE FUNCTION Cuenta_Emp() RETURNS int
AS
BEGIN
Declare @nemp int
Select @nemp=COUNT(1) From employee
RETURN @nemp
END
print dbo.Cuenta_Emp ()
FUNCIONES ESCALARES
Ejemplo: Defina una función donde ingrese el id del empleado y
retorne la cantidad de pedidos registrados en el presente año
--ejecutando la funcion
Select * from dbo.Clientes() Where Pais='Chile'
Go
FUNCIONES DE TABLA EN LINEA
• Ejemplo: Defina una función que liste los registros de los
pedidos para un determinado año e incluya:
• El código del pedido
• La fecha del pedido
• El nombre del producto
• El precio que fue vendido
• La cantidad vendida
FUNCIONES DE TABLA EN LINEA
CREATE FUNCTION dbo.PedidosAño(@y int) RETURNS TABLE
AS
RETURN (Select o.OrderID as 'Pedido',
o.OrderDate as ‘FechaPedido’,
p.Productname as ‘NombreProducto’,
od.UnitPrice as '¨Precio',
od.Quantity as ‘cantidad’
From Orders o JOIN OrderDetails od
ON o.orderID = od.OrderID
JOIN Products p
ON od.ProductID = p.productID
WHERE Year(OrderDate) = @y)
go
--ejecutando la funcion
Select * from dbo.PedidosAño(1997)
FUNCIONES DE TABLA
MULTISENTENCIAS
• Son similares a los procedimientos almacenados
excepto que vuelven una tabla.
• Este tipo de función se usa en situaciones donde se
requiere más lógica y proceso.