Activa JavaScript para disfrutar de los vídeos de la Mediateca.
MariaDB, MySQL - Programación - CURSOR - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, vamos a empezar a ver lo que son los cursores.
00:00:00
Es posiblemente una de las partes más importantes cuando estamos programando en base de datos.
00:00:05
Un cursor lo podemos ver como el conjunto, la colección de registros que obtenemos de una búsqueda select.
00:00:11
Después, para recuperar cada uno de ellos, concretamente estar posicionado solamente en uno de ellos,
00:00:19
realizaremos lo que se llama esto, la palabra fetch.
00:00:25
con lo cual el cursor es como que abro esa búsqueda
00:00:29
y me voy con el fetch posicionando en cada uno de los registros
00:00:32
vamos a verlo con un ejemplo
00:00:36
este es un ejemplo un poco complejo
00:00:38
porque realmente los cursores son complejos
00:00:41
bueno, en primer lugar voy a borrar todo lo que hubiera
00:00:44
para poder trabajar en limpio
00:00:47
y voy a crear una tabla
00:00:48
voy a crear esta tabla, la tabla T1
00:00:49
que tiene dos campitos
00:00:52
A que es un entero
00:00:54
y B que son tres caracteres
00:00:56
Y voy a insertar estos valores, del 1 al 5 con out.
00:00:58
¿De acuerdo?
00:01:02
Esto es simplemente para tener los datos para poder jugar con ellos.
00:01:03
Bueno, me voy a lo que es el código realmente del procedimiento P1.
00:01:07
P1 tiene dos parámetros de entrada, mínimo y máximo.
00:01:13
Y hemos declarado varias cosas.
00:01:16
Primero una variable fin, que ya vemos que aparece en varios sitios.
00:01:19
Ahora veremos qué hace y que inicialmente vale falso.
00:01:24
Una variable VA, que es de valor tipo entero
00:01:26
Un cursor, que ahora veremos lo que es
00:01:30
Y un manejador, que también lo veremos
00:01:34
Están en este orden, porque si se acuerdan, ya en vídeos anteriores vimos que tenían que tener un orden determinado
00:01:38
Bueno, ¿qué es lo que hacemos aquí en el proceso este?
00:01:43
Abrimos nuestro cursor y le pasamos, como tiene dos parámetros, el valor mínimo y el valor máximo
00:01:47
Muy bien. Ahora vamos a hacer un bucle. En este bucle vamos a ir recogiendo cada registro asociado al cursor y vamos a guardar esa información en esta variable.
00:01:54
Si llegamos al final, no salimos del bucle, ¿de acuerdo? No salimos de este bucle.
00:02:09
Si no, pues lo que hacemos cada vez que eso es insertar un registro nuevo con los valores va y new.
00:02:16
y cuando ya hemos salido del bucle
00:02:22
cerramos nuestro cursor
00:02:25
¿cómo cambia este valor fin?
00:02:26
porque aquí dentro no vemos que cambia nada
00:02:29
pues el fin cambia a través del manejador
00:02:30
que dice
00:02:33
vamos a declarar que el manejador
00:02:34
que continúa
00:02:37
nuestro paso por todos los registros
00:02:38
del cursor
00:02:42
cuando llegue a no fauna que no haya
00:02:42
encuentra más, establezca que
00:02:45
fin vale true
00:02:47
es decir, fin al principio vale false
00:02:48
cuando llega al final, fin valetro
00:02:51
con lo cual, este variable aquí
00:02:53
va a cambiar, ¿de acuerdo?
00:02:55
ahí vemos los tres fin iluminados
00:02:57
¿qué hace nuestro cursor? pues declaramos un cursor
00:02:59
que es tan simple
00:03:03
declara este cursor para
00:03:04
la sentencia select from
00:03:06
where, seleccioname
00:03:09
el campo A
00:03:11
el primer campo
00:03:13
de la tabla T1, donde A
00:03:14
esté entre este valor y este valor
00:03:16
¿vale? con lo cual
00:03:19
Bueno, pues aquí cuando abrimos el curso realmente es como si ejecutáramos esa sentencia y vamos con el FEDS a ir primero a la primera, después a la segundo registro, después al tercer registro y así sucesivamente.
00:03:21
Bueno, vamos a verlo funcionar. Voy a copiarme, voy a copiarme toda esta información y me la voy a llevar a nuestro MariaDB.
00:03:34
Le voy a dar aquí y efectivamente nos ha generado todo esto. Vamos a subir un poquito para ver todo lo que nos ha hecho.
00:03:42
Hemos borrado algo si existía, hemos creado nuestra tabla, hemos insertado nuestras 5 filas
00:03:50
Y ya por fin tenemos nuestro código introducido
00:03:56
Bueno, pues vamos a ejecutar este procedimiento
00:03:59
Sabemos lo que tenemos en nuestra tabla T1
00:04:04
Así que vamos a ejecutar P1, por ejemplo, entre el 2 y el 4
00:04:08
Sabemos, porque lo hemos visto aquí, que tenemos valores entre el 1 y el 5 con old
00:04:14
Entonces vamos a recorrer del 2 al 4. 2, 3, 4. Vamos a darle. Y dice que ha afectado 3 filas. Vamos a ver ahora cómo, cuánto vale la información de nuestra tabla T1, que es la que ha sido afectada.
00:04:19
y efectivamente el recorrió del 2 al 4
00:04:39
hizo un SELECT de estos tres registros de aquí
00:04:42
y como era un SELECT A
00:04:45
pues fue pasando el valor 2 a VA
00:04:48
con eso construyó este registro de aquí
00:04:51
VA, NEW
00:04:54
después pasó al 3, VA, NEW
00:04:56
después pasó al 4, VA, NEW
00:04:59
y cuando acabó, FIN se puso a TRUE
00:05:01
y se salió del bucle y cerró el cursor
00:05:05
y finalizó el procedimiento
00:05:08
espero que les haya aclarado
00:05:10
bastante como funciona
00:05:12
como funcionan los cursores
00:05:14
el procedimiento casi siempre
00:05:16
es igual, por supuesto puede haber
00:05:18
cursores uno dentro de otro
00:05:20
pueden estar aquí metidos
00:05:22
dentro de un cursor otro
00:05:24
que a veces no va a venir bien en algún tipo de programación
00:05:26
más compleja
00:05:29
- Idioma/s:
- Autor/es:
- Amadeo Mora
- Subido por:
- Amadeo M.
- Licencia:
- Dominio público
- Visualizaciones:
- 178
- Fecha:
- 2 de diciembre de 2020 - 21:03
- Visibilidad:
- Público
- Centro:
- IES CLARA DEL REY
- Duración:
- 05′ 32″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1364x768 píxeles
- Tamaño:
- 25.57 MBytes