Documente Academic
Documente Profesional
Documente Cultură
BD
Que es un PA?
2
Un Procedimiento Almacenado es un
programa escrito en lenguaje del SMBD
1
15/03/2018
Que es un PA?
3
Ventajas
4
Diseño modular.
El fácil mantenimiento
2
15/03/2018
Ventajas
5
Ventajas
6
3
15/03/2018
Rendimiento
7
Rendimiento
8
4
15/03/2018
Rendimiento
9
Rendimiento
10
5
15/03/2018
Marco de programación
11
Marco de programación
12
6
15/03/2018
Marco de programación
13
Seguridad
14
7
15/03/2018
Seguridad
15
Categorías de PA’s
16
8
15/03/2018
sp_table_privileges
https://stackoverflow.com/questions/73
3349/list-of-stored-procedures-
functions-mysql-command-line
USE Pubs
GO
EXECUTE sp_table_privileges Stores
9
15/03/2018
PA’s locales
19
PA’s locales
20
10
15/03/2018
PA’s temporales
21
PA’s extendidos
22
11
15/03/2018
Como se guarda un
procedimiento
23
Procedimientos almacenados en
MySQL
12
15/03/2018
Requerimientos
25
Sintaxis
26
CREATE PROCEDURE
DROP PROCEDURE
13
15/03/2018
CREATE
http://www.w3resource.com/mysql/mysql-
procedure.php
14
15/03/2018
Mysql> delimiter //
Mysql> select * from película //
15
15/03/2018
31 Ejercicio: Crear un PA
16
15/03/2018
Ejemplo 1 de procedimiento
almacenado Paso 1
33
Ejemplo 1 de procedimiento
almacenado Paso 2
34
17
15/03/2018
Ejemplo 1 de procedimiento
almacenado Paso 3
35
Ejemplo 1 de procedimiento
almacenado Paso 4
36
18
15/03/2018
Crear procedimiento
19
15/03/2018
mysql> delimiter //
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END;
//
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
20
15/03/2018
21
15/03/2018
22
15/03/2018
45
-- Uso de MAX()
http://jjmojicamysql.blogspot.mx/2012/04/34-
funciones-de-agrupamiento-count-max.html
Delimiter //
use hr
drop procedure if exists procedure_out;
23
15/03/2018
48
-- Uso de count()
http://mysql.conclase.net/curso/?sqlfun=COUNT
24
15/03/2018
49
Creamos el PA
25
15/03/2018
26
15/03/2018
Ciclos y condicionales
53
Variables:
Ciclos y condicionales
54
IF THEN ELSE:
27
15/03/2018
Ciclos y condicionales: IF
55
delimiter //
Drop procedure if exists pa_ejemploif;
create procedure pa_ejemploif(in p1 int) /* Parámetro de entrada */
begin
declare miVar int; /* se declara variable local */
set miVar = p1 +1 ; /* se establece la variable */
if miVar = 12 then
insert into tablaejemplo values(12);
else
insert into tablaejemplo values(0);
end if;
end;
//
delimiter ;
Ciclos y condicionales: IF
56
-- COMPARACIÓN DE CADENAS
-- La función strcmp devuelve 0 si las cadenas son iguales, si no devuelve 0 es
que son diferentes.
delimiter //
Drop procedure if exists pa_compara;
create procedure pa_compara(in cadena varchar(50), in cadena2 varchar(50))
begin
if strcmp(cadena, cadena2) = 0 then
select "son iguales!";
else
select "son diferentes!!";
end if;
end;
//
Delimiter ;
28
15/03/2018
delimiter //
Drop procedure if exists pa_ejemplocase;
create procedure pa_ejemplocase (in p1 int)
begin
declare var int ;
set var = p1 +2 ;
case var
when 2 then insert into tablaejemplo values (2);
when 3 then insert into tablaejemplo values (3);
else insert into tablaejemplo values (9);
end case;
end;
//
Delimiter ;
29
15/03/2018
4/11/2015 5:59 AM
Número de
empleados cuyo
salario superior a
10000
Número de
empleados cuyo
salario es inferior a
10000
Número de
empleados cuyo
salario es igual a
10000
30
15/03/2018
31
15/03/2018
Objetivo
64
32
15/03/2018
Creamos la BD
65
-- Creamos la BD escolar
Insertamos registros
66
4/11/2015 5:59 AM
33
15/03/2018
4/11/2015 5:59 AM
68
34
15/03/2018
69
70
35
15/03/2018
71
36
15/03/2018
73
15/03/2018
37