Las principales ventajas son:
- El S.G.B.D. es capaz de trabajar más rápido con los datos que cualquier programa externo, ya que posee acceso directo a los datos a manipular y sólo necesita enviar el resultado final al usuario.
- Sólo realizamos una conexión al servidor y este ya es capaz de realizar todas las comprobaciones sin tener que volver a establecer una conexión.
- Podemos reutilizar el procedimiento y este puede ser llamado desde diferentes aplicaciones y lenguajes. Sólo lo programaremos una vez.
Bueno dejemos la teoría y vayamos a la práctica este es el ejemplo de un procedimiento almacenado:
> DELIMITER //
> CREATE PROCEDURE addAutomovil(IN nombre VARCHAR(50),
IN plazas INT)
> BEGIN
> IF plazas < 6 THEN
>
INSERT INTO coche VALUES(nombre,plazas);
>
ELSE
>
INSERT INTO monovolumen VALUES(nombre,plazas);
>
END IF;
>
END;
>
//
Este procedimiento almacenado recibe los parámatros de nombre y número de plazas y en función de las plazas del vehículo inserta los datos en la tabla coche o monovolumen. Es una función bien tonta, lo sé, incluso podría ser más lenta como procedimiento almacenado que como código en nuestro programa. Pero es simplemente un ejemplo.
Para hacer una llamada al procedimiento almacenado basta con usar la sentencia call:
> CALL addAutomovil("Nissan Serena",8);
De ahora en adelante, usaremos siempre este procedimiento para introducir automóviles en la B.D. de forma que si un día se debe modificar sólo deberemos corregir el procedimiento.
ResponderEliminarselect c.car_detalle carrera,
count (rp.est_codigo)"numero de estudiantes"
from carrera c, estudiantes e, regi_pasa rp
where (c.car_codigo=e.car_codigo and e.est_codigo=rp.est_codigo)
group by c.car_detalle
select c.car_detalle carrera,
count (rp.est_codigo)"numero de estudiantes"
from carrera c, estudiantes e, regi_pasa rp
where (c.car_codigo=e.car_codigo and e.est_codigo=rp.est_codigo)
group by c.car_detalle