Vistas o consultas de SQL
UNIDAD III
Una vista es una tabla virtual derivada de otras tablas, pueden ser tablas base o tambien otras vistas.
Sus tuplas que generan no se almacenan sino que se generan a partir de las tablas de las que depende, no necesariamente existen en forma física.
PROCEDIMIENTOS ALMACENADOS SQL
Un procedimiento almacenado de sql es un grupo de una o varias instrucciones. Los procedimientos se asemejan a las construcciones de otros lenguajes de programacion, porque pueden:
1.- Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida.
2.- Contener instrucciones de programación que realicen operaciones en la base de datos.
3.- Devolver un valor de estado a un programa que realiza una llamada para indicar que la operación se ha realizado correctamente.
Una vista es una tabla virtual derivada de otras tablas, pueden ser tablas base o tambien otras vistas.
Sus tuplas que generan no se almacenan sino que se generan a partir de las tablas de las que depende, no necesariamente existen en forma física.
PROCEDIMIENTOS ALMACENADOS SQL
Un procedimiento almacenado de sql es un grupo de una o varias instrucciones. Los procedimientos se asemejan a las construcciones de otros lenguajes de programacion, porque pueden:
1.- Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida.
2.- Contener instrucciones de programación que realicen operaciones en la base de datos.
3.- Devolver un valor de estado a un programa que realiza una llamada para indicar que la operación se ha realizado correctamente.
DELIMITER
Se refiere a escribir un delimitador para nuestras consultas SQL, este delimitador se debe especificar cuando vamos a tener varias consultas dentro de nuestro procedimiento almacenado.
Para decirle a MYSQL que todo lo que esta dentro de ese delimitador formara parte del procedimiento almacenado.
Después de escribir nuestro Delimitador, vamos a crear nuestro procedimiento almacenado, con el comando CREATE PROCEDURE, cuya sintaxis debe ser así:
➜ Delimiter\\
Create Procedure tabla_(In Var1 integer, In Var2 varchar (50))
Begin
Estructuras
END
//
1.- Before/After: Especifica si el trigger se ejecuta antes o despues.
2.- Update, Insert, Delete: Aqui elija que sentencia usa para que se ejecute el trigger.
3.- On, Nombre de la Tabla: En esta seccion establece el nombre de la tabla asociada.
4.- For each row: Establece que el trigger se ejecuta por cada fila en la tabla asociada.
➜ Delimiter\\
Create Procedure tabla_(In Var1 integer, In Var2 varchar (50))
Begin
Estructuras
END
//
PARÁMETROS
Creamos un nuevo PA(parámetro), los parámetros son opcionales y sin duda estos son de gran ayuda cuando necesitamos pasar algunos valores.
DECLARACIÓN DE VARIABLES
Cuando creamos un PA en MYSQL este nos permite crear variables para poder asignarles algún valor e incluso hacer ciertas validaciones, para declarar una variable se debe utilizar el comando:
Declare Var1 Int default 0;
Una vez que hayamos declarado nuestras variables, necesitamos asignarles algún valor diferente en algún punto de nuestro código, podemos utilizar el comando SET de la siguiente manera:
set var1=1;
Ejemplo:
Delimiter\\
Create procedure consultar (In val varchar (30), In Ids Int, In nom varchar (40), In cal Int);
Begin
Case val
1{When "Insertar" Then
Insert into alumnos values (Ids, nom, cal);
2{When "Consultar" Then
Select * from alumnos;
3{When "Eliminar" Then
Delete from alumnos where Id = Ids;
END CASE;
When "Actualizar" Then
Update from alumnos values (Ids, Nom, Cal) where Ids = 4 and Nom = "Juan" and Cal = 7;
END
//
USO DEL TRIGGER CON INSERT RESPALDANDO LOS DATOS NUEVOS (NEW)
Delimiter \\
Create trigger Ingresar 1 after insert on alumnos
for each row begin
Insert into alumnos 2 (Id, nombre2) values (new, Id alumno, new nombre, new calif);
End Insert into Alumnos values (1, "Miguel", 10);
\\
USO DEL TRIGGER CON UPDATE RESPALDANDO LOS DATOS VIEJOS (OLD)
Delimiter \\
Create trigger Ingresar 2 after insert on alumnos
for each row begin
Insert into alumnos 2 (Id, nombre2) values (old, Id alumno, old nombre, old calif);
End Update Alumnos set Nombre = "Miguel", Prom=10 Where Id=3;
\\
USO DEL TRIGGER CON DELETE
Delimiter \\
Create trigger Ingresar 3 after insert on alumnos
for each row begin
Insert into alumnos eliminados (Id3,nombre3,cal3,dato) values (old, Id alumno, old nombre, old calif, var);
End Delete from Alumnos Where Id=2;
\\
set var = "eliminados";
VALIDACION DE UN TRIGGER DE 0 A 10
Delimiter \\
Create Trigger cal_b1
Before Insert
On alumnos
For each row
Begin
If new cal〈0 or new cal〉10 then
set new cal = 0;
end If;
End
//
TRIGGERS
Un trigger o disparador es un programa almacenado creado para ejecutarse automáticamente cuando ocurra un evento en una tabla o vista de la base de datos. Dichos eventos son generados por los comandos INSERT, UPDATE, DELETE.
Un disparador nunca se llama directamente en cambio cuando una aplicación o usuario intenta insertar, actualizar o anular una fila en una tabla la acción definida en el disparador se ejecuta automáticamente.
ESTRUCTURA DE UN TRIGGER
2.- Update, Insert, Delete: Aqui elija que sentencia usa para que se ejecute el trigger.
3.- On, Nombre de la Tabla: En esta seccion establece el nombre de la tabla asociada.
4.- For each row: Establece que el trigger se ejecuta por cada fila en la tabla asociada.
IDENTIFICADORES NEW Y OLD EN TRIGGER
Si requiere relacionar el trigger con columnas especificas de una tabla, debemos usar los identificadores old y new.
OLD.- Indica el valor antiguo de la columna.
NEW.- El valor nuevo que puede tomar.
Si usa la sentencia Update se refiere a un valor Old y New, ya que modifica registros existentes por los valores. En cambio si usa un Insert solo usa New y con Delete usa Old debido a que borra valores existentes.




Comentarios
Publicar un comentario