Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SQL AVANZADO
PARTE 1
M. Sc. Ing. Joel Reynaldo Alánez Durán
Vistas
• Esto significa que una vista asegura que los usuarios puedan
recuperar y modificar sólo los datos que puedan ver con los
permisos que se les hayan otorgado, lo cual asegura que los
usuarios no puedan ver o acceder al resto de los datos en las
tablas subyacentes.
• Una vista también sirve como mecanismo para simplificar la
ejecución de consultas.
• Las consultas complejas se pueden almacenar en el formulario
como una vista y los datos de la vista se pueden extraer a través de
sentencias de consulta sencillas.
Vistas
Tipos de Funciones
• Funciones Escalares
• Funciones con valores de tabla
• Insertado
• Múltiples Instrucciones
SQL Server: Funciones Escalares
Sintaxis: Ejemplo:
CREATE FUNCTION nombreFuncion CREATE FUNCTION ufcPromedio
(parámetros) (@n1 decimal(18,2), @n2
RETURNS tipoRetorno decimal(18,2) )
BEGIN RETURNS decimal(18,2)
//INSTRUCCIONES BEGIN
//usar SET para asignar valores DECLARE @resultado decimal(18,2)
RETURN valor SET @resultado=(@n1+@n2)/2
END RETURN @resultado
END
MySQL: Funciones Escalares
Sintaxis: Ejemplo:
DELIMITER $$ DELIMITER //
CREATE FUNCTION nombreFuncion CREATE FUNCTION ufcPromedio
(parámetros) (_n1 decimal(18,2), _n2 decimal(18,2) )
RETURNS tipoRetorno RETURNS decimal(18,2)
BEGIN BEGIN
//INSTRUCCIONES DECLARE _resultado decimal(18,2)
//usar SET para asignar valores SET _resultado=(_n1+_n2)/2
RETURN valor RETURN _resultado
END END
$$ //
SQL Server: IF - CASE
CASE
IF - ELSE
CASE expresion_entrada
IF (Condición_boolena)
WHEN valor_expresion THEN
BEGIN
expresion_resultado
END
[ ELSE else_expresion_resultado ]
ELSE
END
BEGIN
CASE con expresión Booleana
END
CASE
WHEN Boolean_expresion THEN
expresion_resultado]
[ ELSE else_expresion_resultado ]
END
MySQL: IF - CASE
IF - ELSE CASE
IF (Condición_boolena) THEN CASE expresion_entrada
ELSE WHEN valor_expresion THEN
END IF; expresion_resultado
[ ELSE else_expresion_resultado ]
END CASE;
CASE con expresión Booleana
CASE
WHEN Boolean_expresion THEN
expresion_resultado]
[ ELSE else_expresion_resultado ]
END CASE;
SQL Server: WHILE LOOP
Sintaxis
WHILE (Condición_boolena)
BEGIN
-- Instrucciones
END
MySQL: Bucles
WHILE REPEAT
WHILE (Condición_boolena) DO REPEAT
BEGIN
-- Instrucciones
-- Instrucciones UNTIL (Condición_boolena)
END REPEAT;
END WHILE;