estructuras de control t-sql

19
Estructuras de Control T-SQL Laboratorio #

Upload: cristian-pinzon

Post on 10-Feb-2016

222 views

Category:

Documents


0 download

DESCRIPTION

Estructuras de Control IFCaseWhile Aprendiendo SQL con T-SQL

TRANSCRIPT

Page 1: Estructuras de Control T-SQL

Estructuras de ControlT-SQL

Laboratorio#

Page 2: Estructuras de Control T-SQL

Estructura IF

Estructura Case

Estructura While

CONTENIDO

Page 3: Estructuras de Control T-SQL

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.

Page 4: Estructuras de Control T-SQL

Estructura IF

IF (<expresion>) BEGIN

... ENDELSE IF (<expresion>) BEGIN

... ENDELSE BEGIN

... END

SINTAXIS

Page 5: Estructuras de Control T-SQL

Estructura IFEjemplo 1

--Ejemplo1

IF 1 = 1

PRINT 'La Expresión Boleana es Verdadera'

ELSE

PRINT 'La Expresión Boleana es Falsa' ;

Page 6: Estructuras de Control T-SQL

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

Page 7: Estructuras de Control T-SQL

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

Page 8: Estructuras de Control T-SQL

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='[email protected]'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

Page 9: Estructuras de Control T-SQL

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

Page 10: Estructuras de Control T-SQL

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.

Page 11: Estructuras de Control T-SQL

Estructura CASE

Sintaxis

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

Page 12: Estructuras de Control T-SQL

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

Page 13: Estructuras de Control T-SQL

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]

Page 14: Estructuras de Control T-SQL

Estructura WHILE

SINTAXIS

WHILE <expresion>      BEGIN      ...    END

Page 15: Estructuras de Control T-SQL

Estructura WHILE

SINTAXIS

WHILE BOOLEAN_EXPRESIONBEGIN

EXPRESION_SQL[BREAK]

[EXPRESION_SQL][CONTINUE]

[EXPRESION_SQL]END

Page 16: Estructuras de Control T-SQL

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

Page 17: Estructuras de Control T-SQL

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

Page 18: Estructuras de Control T-SQL

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

Page 19: Estructuras de Control T-SQL

FIN DE LA SESIÓN