estructuras de control t-sql

Post on 10-Feb-2016

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Estructuras de Control IFCaseWhile Aprendiendo SQL con T-SQL

TRANSCRIPT

Estructuras de ControlT-SQL

Laboratorio#

Estructura IF

Estructura Case

Estructura While

CONTENIDO

Estructura IF

La palabra clave IF se utiliza para definir una condición que determina si se ejecutará la instrucción siguiente. La instrucción SQL se ejecuta si la condición se cumple, es decir, si devuelve TRUE (verdadero).

La palabra clave ELSE introduce una instrucción SQL alternativa que se ejecuta cuando la condición IF devuelva FALSE.

Estructura IF

IF (<expresion>) BEGIN

... ENDELSE IF (<expresion>) BEGIN

... ENDELSE BEGIN

... END

SINTAXIS

Estructura IFEjemplo 1

--Ejemplo1

IF 1 = 1

PRINT 'La Expresión Boleana es Verdadera'

ELSE

PRINT 'La Expresión Boleana es Falsa' ;

Estructura IFEjemplo 2

--Ejemplo2DECLARE @Numero int;SET @Numero = 5;IF @Numero > 100 PRINT 'El Número es Mayor que Umbral Máximo Permitido de 100.';ELSE BEGIN IF @Numero < 10 PRINT 'El Número está por debajo del Umbral Mínimo de 10.'; ELSE PRINT 'El Número está en el Rango del Umbral Mínimo y Máximo'; END ;GO

Estructura IFEjemplo 3

--Ejemplo3Declare@Nombre varchar(20),@Apellido varchar(20)

SET @Nombre='Cristian'SET @Apellido ='Pinzón'

IF (@Nombre <> '' and @Apellido <> '') BEGIN

PRINT 'Nuevo Registrado Validado para insertar'ENDELSE

BEGINPRINT 'Se requiere por lo menos el nombre y

apellido del Estudiante'END

GO

Estructura IFEjemplo 4

DECLARE@Id Int,@Nombre varchar(20),@Apellido varchar(20),@Direccion varchar (20),@Telefono varchar(10),@Movil varchar(10),@Correo varchar(50),@Carrera intSET @Id=9090SET @Nombre='Juan'SET @Apellido='Altamira'SET @Direccion='Betania, Panamá'SET @Telefono='230-9090'SET @Movil='6789-0356'SET @Correo='jaltamira@utp.ac.pa'SET @Carrera=1007IF EXISTS(SELECT * FROM TB_ESTUDIANTES WHERE Nombre_estudiante = @Nombre and apellido_Estudiante = @Apellido) BEGIN PRINT 'Ya existe un registro con esos datos'ENDELSE BEGIN INSERT INTO TB_ESTUDIANTES (ID_Estudiante, Nombre_Estudiante, Apellido_Estudiante, Direccion_Estudiante, Telefono_Fijo_Estudiante, Telefono_Movil_Estudiante, Correo_Estudiante, Cod_Carrera ) VALUES(@Id, @Nombre, @Apellido, @Direccion, @Telefono, @Movil, @Correo, @Carrera) ENDGO

Estructura CASE

La estructura CASE evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles. La expresión CASE tiene dos formatos:

La expresión CASE sencilla compara una expresión con un conjunto de expresiones sencillas para determinar el resultado.

La expresión CASE buscada evalúa un conjunto de expresiones booleanas para determinar el resultado.

Ambos formatos admiten un argumento ELSE opcional

Estructura CASE

La estructura CASE se puede utilizar en cualquier instrucción o cláusula que permite una expresión válida. Por ejemplo, puede utilizar CASE en instrucciones como SELECT, UPDATE, DELETE y SET, y en cláusulas como IN, WHERE, ORDER BY y HAVING.

La función CASE es una expresión especial de Transact SQL que permite que se muestre un valor alternativo dependiendo de una columna. Este cambio es temporal, con lo que no hay cambios permanentes en los datos.

Estructura CASE

Sintaxis

    CASE <expresion>        WHEN <valor_expresion> THEN <valor_devuelto>        WHEN <valor_expresion> THEN <valor_devuelto>        ELSE <valor_devuelto> -- Valor por defecto    END

Estructura CASEEjemplo 1

--EJEMPLO1DECLARE @Calificacion INT,@NotaLetra VARCHAR(1)SET @Calificacion=87

SET @NotaLetra= (CASE WHEN @Calificacion >= 91 THEN 'A'WHEN @Calificacion >= 81 AND @Calificacion <= 90 THEN 'B'WHEN @Calificacion >= 71 AND @Calificacion <= 80 THEN 'C'WHEN @Calificacion >= 61 AND @Calificacion <= 70 THEN 'D'ELSE 'Reprobado'END)SELECT 'Su Evaluación correspondiente es: ' + @NotaLetra [Nota del Estudiante]GO

Estructura CASEEjemplo 2--EJEMPLO2DECLARE @Calificacion INT,@Estudiante INT,@NotaLetra VARCHAR(1)SET @Estudiante=9001SELECT @Calificacion= Calificacion_Curso FROM TB_CURSO_ESTUDIANTE WHERE ID_Estudiante =@Estudiante AND ID_CURSO =7020SET @NotaLetra= (CASE

WHEN @Calificacion >= 90 THEN 'A'WHEN @Calificacion >= 81 AND @Calificacion < 90 THEN

'B'WHEN @Calificacion >= 71 AND @Calificacion < 80 THEN

'C'WHEN @Calificacion >= 61 AND @Calificacion < 70 THEN

'D'ELSE 'Reprobado'

END)SELECT 'La Evaluación del Estudiante ' + CAST(@Estudiante AS VARCHAR(5)) +' es: '+ @NotaLetra [Nota del Estudiante]

Estructura WHILE

SINTAXIS

WHILE <expresion>      BEGIN      ...    END

Estructura WHILE

SINTAXIS

WHILE BOOLEAN_EXPRESIONBEGIN

EXPRESION_SQL[BREAK]

[EXPRESION_SQL][CONTINUE]

[EXPRESION_SQL]END

Estructura WHILEEjemplo 1--Ejemplo1

DECLARE @IdRecurso INT;SET @IdRecurso = 0;

WHILE @IdRecurso <= 10BEGIN PRINT 'www.utp.ac.pa/BDII/Recurso' + CAST(@IdRecurso AS VARCHAR(2)) ; SET @IdRecurso = @IdRecurso + 1;END;

PRINT ' 'PRINT '--------------------------------------------------------------'PRINT 'Cantidad de Recursos Disponibles para BDII: ' + CAST(@IdRecurso AS VARCHAR(2)) ;GO

Estructura WHILEEjemplo 2--Ejemplo2DECLARE @Bandera INTSET @Bandera = 1WHILE (@Bandera <=5)

BEGINPRINT @BanderaSET @Bandera = @Bandera + 1IF @Bandera = 4BEGIN

PRINT 'Alcanzado el Umbral: ' + CAST(@Bandera AS VARCHAR(2))

BREAK;END

ENDGO

Estructura WHILEEjemplo 3--Ejemplo3DECLARE @Cadena CHAR(9)DECLARE @LCadena INTDECLARE @Indice INT DECLARE @Caracter CHAR(1)DECLARE @Contar INTSET @Cadena = 'Ciclo For' SET @Contar= 0 SET @Indice = 1 SET @LCadena= LEN(@Cadena)WHILE @Indice<= @LCadena BEGIN

SET @Caracter = SUBSTRING(@Cadena, @Indice, 1) PRINT @Caracter SET @Indice= @Indice+ 1

ENDGO

FIN DE LA SESIÓN

top related