Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

MariaDB, MySQL - Programación - CURSOR - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 2 de diciembre de 2020 por Amadeo M.

178 visualizaciones

Descargar la transcripción

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:
es
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid