No es un bug, es una característica no documentada

23/2/15

Bases de datos. SQL programado (I)

9:26 Posted by Inazio , No comments
Con SQL hay ciertas cosas que no podemos hacer, por lo que deberemos aprender un lenguaje programado para SQL.

Tenemos varios, PS/SQL usado para Oracle, TranSact para Windows y, en el caso que nos atañe, MySQL, directamente no tiene nombre. Es el lenguaje programado de MySQL.

Veremos tres tipos de programas:
  • Procedimiento. Programa que "hace algo" (pudiendo devolver más de un resultado)
  • Funciones. Programa que "hace algo" y devuelve un resultado
  • Triggers. Programa que se ejecuta cuando ocurre una determinada acción. Puede emplearse, por ejemplo, al hacer un pedido con el carrito de la compra, al clicar en comprar, descontará del inventario las unidades recién compradas. La idea sería como la programación en eventos.
Estos programas ofrecerán una mayor portabilidad, ya que nos valdrán para cualquier tipo de programa que acceda a la base de datos. Es decir, lo dejo en el servidor, y pueden servir para programas que accedan desde cualquier plataforma (Java, C, PHP...)

Si nos vamos al WorkBench, en la parte izquierda creamos podemos ver las secciones de Stored Procedures, donde se almacenarán los procedimientos, y Functions para crear las funciones.


Vamos a crear nuestro primer programa, el típico Hola Mundo.


NOTA IMPORTANTE: No poner comentarios en las lineas de delimiter $$, DROP y CREATE PROCEDURE. Si no no funcionará

Eso sí, esto, siempre según el profesor, no debería hacerse nunca, porque un procedimiento, o una función, en SQL, no debería mostrar ningún resultado, sino operar con datos y devolver resultados. Punto.

¿Cómo declaro las variables? 

DECLARE nombreVariable tipoVariable, nombreVariable2 tipoVariable2...

Tengo los siguientes tipos





Los últimos tipos de datos son para datos binarios. Usados para guardar gráficos, audio, video... dependiendo del tamaño.
Por ejemplo un logotipo lo guardariamos con un tipo BLOB, y un LONGBLOB serviría para un video.

Las declararemos de la siguiente manera


0 comments:

Publicar un comentario