Estructuras de Control T-SQL
-
Upload
cristian-pinzon -
Category
Documents
-
view
223 -
download
0
description
Transcript of Estructuras de Control T-SQL
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='[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
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