Desde este artículo vamos a estudiar la estructura procedimental de SQL. Recuerda que un lenguaje procedimental se basa en la construcción de pequeñas unidades funcionales ( funciones) para descomponer procesos grandes en tareas mas pequeñas.
Esquema procedural de SQL
Comenzaremos estudiando la forma de un bloque de instrucciones en SQL para conocer su sintaxis y alcance. Esto nos permitirá crear el cuerpo de funciones, procedimientos y cursores, los cuales veremos mas adelante.
Como defino un bloque?Es sencillo!, solo basta con declarar donde comienza el bloque, poner la cantidad de instrucciones que deseemos y finalmente indicar donde terminará. Usaremos las palabras reservadas BEGIN y END para estos propósitos de indicación:
Sintaxis
BEGINInstrucción1;Instrucción2;InstrucciónN;END
Tengamos en cuenta que...
- Cada instrucción debe terminarse con punto y coma (;) para diferenciar sus acciones.
- Cuando termines el bloque terminalo con punto y coma después de la clausula END.
- Puedes anidar un bloque dentro de otro para generar distintos alcances.
Puedes mostrar un ejemplo?
Claro!
Mira:
BEGIN
INSERT INTO PRODUCTO(IDPRODUCTO, NOMBRE, DESCRIPCION,PRECIO)VALUES (990,'Lampara rx','Lampara de neon de 110 Watts',150) ;
INSERT INTO DETALLEFACTURA(IDDETALLE,IDPRODUCTO, IDFACTURA,SUBTOTAL )VALUES (123,990,23,150) ;INSERT INTO FACTURA(IDFACTURA, IDCLIENTE, FECHA,TOTAL)VALUES (23,1001,'2014-06-09',150);END;
Simplemente insertamos un registro en cascada que representa la compra de una articulo en una factura generada por un cliente. Todas las instrucciones se encuentran entre BEGIN y END. Cabe aclarar que SQL Server permite ejecutar el bloque anterior sin problemas, en cambio MySQL no lo permite, ya que exige que este bloque se encuentre contenido en un procedimiento o función.
Etiquetas en MySQL
MySQL permite el uso de etiquetas para personalizar bloques de instrucciones. Este mecanismo de nombrado es muy útil a la hora de declarar bloques anidados, ya que facilita al programador establecer limites visuales para su código.[Etiqueta:]BEGIN<Instrucciones>END [Etiqueta];
Asignemos la etiqueta Compra al bloque anterior:
Compra: BEGIN
INSERT INTO PRODUCTO(IDPRODUCTO, NOMBRE, DESCRIPCION,PRECIO)VALUES (990,'Lampara rx','Lampara de neon de 110 Watts',150) ;
INSERT INTO DETALLEFACTURA(IDDETALLE,IDPRODUCTO, IDFACTURA,SUBTOTAL )VALUES (123,990,23,150) ;
INSERT INTO FACTURA(IDFACTURA, IDCLIENTE, FECHA,TOTAL)VALUES (23,1001,'2014-06-09',150);
END Compra;
Simplemente antepones una cadena que denomine la acción de tu bloque y seguido usas dos puntos(:). Para terminar el bloque vuelves y escribes la etiqueta correspondiente.
James Revelo Urrea - Desarrollador independiente