1 00:00:00,820 --> 00:00:04,419 Bien, vamos a empezar a programar con MariaDB. 2 00:00:05,660 --> 00:00:11,539 Lo clásico de la programación en cualquier base de datos es crear procedimientos almacenados, 3 00:00:12,460 --> 00:00:17,440 que se le llama a todo el conjunto de funciones y procedimientos que se pueden guardar en la base de datos, 4 00:00:18,379 --> 00:00:21,600 y además la declaración de lo que se llaman triggers o disparadores. 5 00:00:21,920 --> 00:00:23,899 Esa es la concepción básica. 6 00:00:23,899 --> 00:00:29,920 Entonces vamos a ver qué es lo que dispone la mayoría de los lenguajes de tipo MySQL, Oracle, etc. para programar. 7 00:00:29,920 --> 00:00:39,579 En Oracle el lenguaje de programación se llama PLSQL y su equivalente en MariaDB o MySQL es un poco más simple. 8 00:00:39,700 --> 00:00:43,159 Vamos a empezar viendo qué componentes podemos introducir. 9 00:00:44,219 --> 00:00:52,020 Esta es la página en la cual nos cuenta MariaDB cómo funciona y vamos a ir siguiendo sus apuntes para ver estos ejemplos funcionando. 10 00:00:52,020 --> 00:01:05,120 De momento, entramos en esta aplicación y vemos que hay una serie de instrucciones ya que nos pueden funcionar, como if, then, and if, y por supuesto habrá unirse por ahí. 11 00:01:05,659 --> 00:01:08,939 ¿De acuerdo? Entonces son instrucciones que vamos a poder trabajar. 12 00:01:09,739 --> 00:01:14,459 Uno de los elementos más curiosos que hay es el tema de los delimitadores. 13 00:01:14,459 --> 00:01:16,500 Vamos a ir viendo qué significa esto. 14 00:01:16,739 --> 00:01:21,879 Imaginemos que nosotros queremos poner una sentencia como esta que hay aquí. 15 00:01:22,019 --> 00:01:22,959 Voy a ampliar un poquito. 16 00:01:24,980 --> 00:01:27,099 Queremos poner esta sentencia de aquí. 17 00:01:27,659 --> 00:01:32,799 Esto es un trozo de programa, pero claro, se nos juntarían los propios delimitadores, 18 00:01:33,120 --> 00:01:35,900 los puntos y coma que delimitan cada instrucción del programa, 19 00:01:36,799 --> 00:01:40,060 con el delimitador de toda esa instrucción. 20 00:01:40,659 --> 00:01:41,000 ¿De acuerdo? 21 00:01:41,640 --> 00:01:46,420 Entonces tenemos que modificar temporalmente el delimitador que vamos a emplear. 22 00:01:46,780 --> 00:01:48,519 Ponemos en este caso una barra. 23 00:01:48,519 --> 00:01:51,359 Hacemos nuestro programa normal y corriente 24 00:01:51,359 --> 00:01:54,319 Y al final de nuestro programa pondremos este delimitador 25 00:01:54,319 --> 00:01:59,159 Finalmente restituiremos este delimitador para que trabaje 26 00:01:59,159 --> 00:02:00,400 Vamos a ver esto funcionar 27 00:02:00,400 --> 00:02:03,000 Vamos a ver este ejemplo como funcionaría 28 00:02:03,000 --> 00:02:05,439 Vamos a coger toda esta información 29 00:02:05,439 --> 00:02:07,719 La voy a copiar 30 00:02:07,719 --> 00:02:11,900 Y me la voy a llevar a un MySQL que estemos funcionando 31 00:02:11,900 --> 00:02:21,740 Voy a utilizar mi SQL con mi usuario admin y mi powerword, que ahora tecleo. 32 00:02:23,139 --> 00:02:25,580 Aquí puedo ver la base de datos que dispongo. 33 00:02:28,360 --> 00:02:32,699 Y bueno, por ejemplo, voy a entrar en Chinook, de todas las que hay aquí hay montones. 34 00:02:33,780 --> 00:02:39,080 Voy a entrar en Chinook, que podemos ver las tablas habituales de esta base de datos. 35 00:02:39,080 --> 00:02:42,400 Voy ahora a copiar esa información 36 00:02:42,400 --> 00:02:44,819 Esa información hay 37 00:02:44,819 --> 00:02:47,759 Dice que voy a pegar varias filas 38 00:02:47,759 --> 00:02:48,979 Voy a decir que sí, que las pegue 39 00:02:48,979 --> 00:02:51,939 Bueno, efectivamente algo ha ejecutado 40 00:02:51,939 --> 00:02:54,120 Vamos a ver que ha ejecutado un montón de cosas 41 00:02:54,120 --> 00:02:55,300 Vamos a ver que ha ocurrido aquí 42 00:02:55,300 --> 00:02:57,439 He cambiado mi delimitador 43 00:02:57,439 --> 00:03:01,199 Y he comenzado un trozo de código 44 00:03:01,199 --> 00:03:04,599 En el cual declaro una variable x 45 00:03:04,599 --> 00:03:06,020 Que es de tipo entero 46 00:03:06,020 --> 00:03:07,860 Y que por defecto vale 0 47 00:03:07,860 --> 00:03:09,599 O sea, inicialmente vale 0 48 00:03:09,599 --> 00:03:13,699 Y ahora, mientras x sea menor o igual que 10 49 00:03:13,699 --> 00:03:14,860 Hago 50 00:03:14,860 --> 00:03:17,759 Establezco en cada pasada del bucle 51 00:03:17,759 --> 00:03:20,000 Que x sea igual a x más 1 52 00:03:20,000 --> 00:03:21,340 Es decir, lo incremento en un valor 53 00:03:21,340 --> 00:03:23,280 Y hago un select de x 54 00:03:23,280 --> 00:03:26,840 Después, finalmente, finalizo el bucle en while 55 00:03:26,840 --> 00:03:29,400 Y finalizo este bind aquí 56 00:03:29,400 --> 00:03:31,599 Con ese delimitador 57 00:03:31,599 --> 00:03:33,319 Con lo cual, la salida 58 00:03:33,319 --> 00:03:39,599 Select 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 59 00:03:39,599 --> 00:03:42,199 Y finalmente tengo el delimitador 60 00:03:42,199 --> 00:03:44,680 Que vuelve a subservir a la lente 61 00:03:44,680 --> 00:03:49,060 Y en este momento si quisiera hacer cualquier consulta 62 00:03:49,060 --> 00:03:52,780 Select all from album, por ejemplo 63 00:03:52,780 --> 00:03:55,560 Pues efectivamente funcionaría perfectamente 64 00:03:55,560 --> 00:03:56,759 ¿De acuerdo? 65 00:03:56,759 --> 00:04:00,199 Entonces el uso del delimitador, del limiter 66 00:04:00,199 --> 00:04:02,439 Voy a poner este para que se vea 67 00:04:02,439 --> 00:04:07,219 Esto influye porque si yo mismo pongo esto, esta sentencia no acaba, ¿de acuerdo? 68 00:04:07,439 --> 00:04:09,460 Esta sentencia no acabaría en ningún caso. 69 00:04:10,599 --> 00:04:15,139 Voy a darle al Enter a esa barra y así me funciona. 70 00:04:15,680 --> 00:04:22,720 El delimitador voy a volverlo a poner con punto y coma para que esto me funcione perfectamente. 71 00:04:23,839 --> 00:04:25,279 Bueno, pues es lo primero que tenemos que saber 72 00:04:25,279 --> 00:04:31,240 porque siempre que introduzcamos en nuestros programas procedimientos o funciones 73 00:04:31,240 --> 00:04:36,920 vamos a tener que cambiar el delimitador para que no haya conflicto entre unas cosas y otras.