Está en la página 1de 18

Implementación de Base de Datos con SQL

Server Avanzado

Prof.Gerald Campos
Horario: Domingos 9.00am a 1:00pm
Objetivo de la sesión
Conocer el concepto de variables y su utilidad
01 práctica

02
Conocer el concepto de IF, While y su utilidad

Conocer el Concepto y estructura de las Funciones

03

04
Crear Funciones

Cursos de Extensión Profesional INFOPUC


Estructura de la sesión

Concepto de Funciones
01

02
Ejercicios de Funciones sin querys

03
Ejercicios de Funciones con querys

04
Utilizar en querys

Cursos de Extensión Profesional INFOPUC


Variables: Concepto
Al igual que en las matemáticas las variables en SQL , sirven para almacenar valores.

En los querys muchas veces necesitamos almacenar en un momento especifico un valor que luego
será utilizado en una evaluación.

Ejemplo: Podrían solicitarnos que todos los meses algún reporte y este solo cambien en el rango de
fechas, estas fechas pueden ser variables

Cursos de Extensión Profesional INFOPUC


Variables: Declaración
Las variables tienen que ser declaradas, para ellos se utiliza el DECLARE

DECLARE

@NUMERO1 NUMERIC(10,2),
@NUMERO2 NUMERIC(10,2),
@SUMA NUMERIC(10,2),
@FechaInicio DATE,
@FechaFin DATE,
@NumeroDocumento varchar(10),
@serie char(4)

Cursos de Extensión Profesional INFOPUC


Variables: Asignación de valor
Las variables van a tomar un valor, este valor puede ser asignado directamente en el query o que
dependa de una consulta a una tabla.
Se utiliza la palabra reservada SET para asignar valor a una variable.
DECLARE

@NUMERO1 NUMERIC(10,2),
@NUMERO2 NUMERIC(10,2),
@SUMA NUMERIC(10,2)

SET @NUMERO1= 10 --variable asignada por un valor fijo


SET @NUMERO2= 20 --variable asignada por un valor fijo

SET @SUMA=@NUMERO1 + @NUMERO2 --variable asignada como resultado

Cursos de Extensión Profesional INFOPUC


Variables: Asignación de valor
Una forma de asignar valores a una variable es directamente en el select

DECLARE

@tipocambioventa numeric(9,3)

--asignar el valor directamente en el select

SELECT @tipocambioventa=tc_venta
from tipo_cambio
where codigoMonedaCambio='USD'
and codigoMonedaConversion='PEN'
and fechaTipoCambio='2014-07-04'

select @tipocambioventa

Cursos de Extensión Profesional INFOPUC


Variables: Asignación de valor
Otra forma de asignar valor a una variable es asignarle el resultado de un select

DECLARE

@tipocambioventa numeric(9,3)

set @tipocambioventa=(SELECT tc_venta


from tipo_cambio
where codigoMonedaCambio='USD'
and codigoMonedaConversion='PEN'
and fechaTipoCambio='2014-07-04')

select @tipocambioventa

Cursos de Extensión Profesional INFOPUC


SENTENCIA IF - ELSE
Las sentencia IF(SI) sirve para establecer una condición, si se cumple la condición se procede a
realizar una operación o sentencia.

Cursos de Extensión Profesional INFOPUC


SENTENCIA IF - ELSE
DECLARE
Dado un número
entero indicar si
@numero int,
es par o no es
par @EsNumeroPar varchar(20)
set @numero=5;
if (@numero % 2 = 0) --residuo
begin
set @EsNumeroPar='Si es numero par'
end
else
begin
set @EsNumeroPar='No es numero par'
end

select @EsNumeroPar

Cursos de Extensión Profesional INFOPUC


SENTENCIA IF - ELSE
Dado un número DECLARE
entero indicar si @numero int,
es para o no es @EsNumeroPar varchar(50)
par y si es menor set @numero=7;
que 10
if (@numero % 2 = 0 and @numero<10) --residuo
begin
set @EsNumeroPar='Si es numero par y es menor a 10'
end
else
begin
set @EsNumeroPar='no podemos decir si es par o menor a 10'
end
select @EsNumeroPar

Cursos de Extensión Profesional INFOPUC


WHILE
La Sentencia While sirve para repetir un ciclo mientras se cumple una condición

WHILE (Condicion)
BEGIN
Ejecutar sentencias
END

Cursos de Extensión Profesional INFOPUC


WHILE : Ejemplo
Listar los DECLARE
primeros 10 @i int,
números @suma int
enteros SET @i = 1
SET @suma = 0
WHILE (@i) <= 10
BEGIN
print 'Es valor de i es ' + convert(varchar,@i)
SET @suma=@suma + @i
print 'Es valor de Suma es ' +convert( varchar,@suma)

SET @i=@i+1
END

Cursos de Extensión Profesional INFOPUC


FUNCIONES
¿Por qué crear Funciones ?

Se necesita guardar la obtención de determinada lógica de procesamiento, por


ejemplo saber si un numero es par o impar, obtener el valor de alguna factura.

Se puede utilizar dentro de otra consulta u otra función, ya que quedan


almacenadas en la base de datos.

Cursos de Extensión Profesional INFOPUC


FUNCIONES:ESTRUCTURA

CREATE FUNCTION NombreDelaFuncion ( @parametro1 tipoDatoParametro1,


@parametro2 tipoDatoParametro2)
RETURNS TipoDato
AS
BEGIN

RETURN RESULTADO
END

Cursos de Extensión Profesional INFOPUC


FUNCIONES:EJEMPLO
CREATE FUNCTION saludo(@nombre varchar(50))
RETURNS varchar(55)
AS
BEGIN
DECLARE
@respuesta varchar(50)

SET @respuesta='HOLA' + ' ' + @nombre

RETURN @respuesta
END

select dbo.saludo('ERNESTO')

Cursos de Extensión Profesional INFOPUC


INFOPUC

Qué aprendimos
hoy ?

También podría gustarte