Vistas de página en total

miércoles, 22 de junio de 2011

Tarea No 6 :: Funciones en Sql Server 2008

Hola esta es la tarea numero 6 en donde realizamos funciones y procedimiento. En este post veremos las funciones.


FUNCIÓN: Una funcion es una porción de codigo que puede ser reutilizada por diferentes programas. Las funciones, como en programacion, devuelven un valor, que pueden ser en este caso una escalar o un dato estructurado. Por ejemplo el numero de alumnos matriculados, o una tabla que contiene la lista de todos los alumnos matriculados en determinado ciclo. 
A continuación mostraremos algunos ejemplos:


-- CREA LA FUNCION CANT_PARTICIPANTES DEVUELVE EL NUMERO DE PARTICIPANTES INSCRITOS EN EL CAMPEONATO
-- AJEDREZ

CREATE FUNCTION CANT_PARTICIPANTES()
RETURNS INT
AS
BEGIN

   DECLARE @CANT INT
   SELECT @CANT = COUNT(*)  FROM PARTICIPANTE
 
   RETURN @CANT
END


CREATE FUNCTION LIST_PARTICIPANTES()


RETURNS TABLE -- en este caso retorna una tabla
AS
RETURN (SELECT * FROM PARTICIPANTE)


-- ejecutamos las funciones 



SELECT dbo.CANT_PARTICIPANTES() 'CANT PARTICIPANTES'
SELECT * FROM LIST_PARTICIPANTES()


Nombramos la columna resultante de la primera consulta como : CANT PARTICIPANTES
El resultado es el siguiente:





Ahora mostraremos mas ejemplos pero en la base de datos: Campeonato...










-- Creamos una funcion que devuelva el numero de equipos --- en los que jugo un determinado jugador
create function num_equip_de_jug(@c_jugador char(3))
returns int
as
begin
declare @num_equip int

select @num_equip = COUNT(*) from JUG_X_EQ_X_CAMP   jec  where jec.C_JUGADOR = @c_jugador

return @num_equip
end




-- Esta funcion devuelve una tabla con la lista de todos los equipos en los que jugó un jugador 


create function list_equip(@cod_jugador char(3))
returns table
as
-- con la clausula distinc evitamos las repeticiones
return (select distinct (C_EQUIPO) from JUG_X_EQ_X_CAMP where C_JUGADOR = @cod_jugador)


--probamos las funciones
select * from dbo.list_equip('J01')
select dbo.num_equip_de_jug('J01') 'Num Equip por Jugador'








Ahora veremos los procedimientos almacenados

No hay comentarios:

Publicar un comentario