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.


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
     //


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 cal0 or new cal10 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


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.



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