Revista Informática

Bloques de instrucciones en SQL

Publicado el 10 junio 2014 por Jamesrevelo @herprogramacion
Un bloque de instrucciones en SQL es un conjunto de varias sentencias agrupadas que se ejecutarán en orden secuencial. Esto permite agrupar declaraciones de variables, cursores, consultas, crear el cuerpo de funciones y procedimientos, etc.
MySQL SQL Server BEGIN END
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.

SQL procedural

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

Volver a la Portada de Logo Paperblog