1 00:00:00,000 --> 00:00:08,720 vamos a quitar los empleados por tanto hemos dicho que este de aquí no lo puede insertar 2 00:00:08,720 --> 00:00:14,759 por la fecha porque es anterior a la pre fijada vamos a borrarlo y ha insertado los otros dos 3 00:00:14,759 --> 00:00:21,199 bien vamos a pasar a la inserción de cocineros vamos a explicar en la inserción de cocineros 4 00:00:21,199 --> 00:00:26,920 y vemos que el primer cocinero no debería haber ningún problema porque éste tenía existe en cuanto 5 00:00:26,920 --> 00:00:31,480 camareros también este dni existe y tampoco tendría que ningún problema pero este nos va 6 00:00:31,480 --> 00:00:38,500 a dar problema porque porque este dni no existe si vamos a ejecutar nos dice que no existe ese 7 00:00:38,500 --> 00:00:43,960 dni y por tanto no se puede realizar quitamos el último por tanto y le damos a ejecutar 8 00:00:45,600 --> 00:00:48,619 vale nos dice que eso estaría vamos a 9 00:00:56,299 --> 00:01:07,599 vemos cómo estaría la tabla de camareros y se habría insertado el 333 hemos habido 10 00:01:07,599 --> 00:01:12,579 se ha insertado en camarero se ha insertado el 363 y el 999 que no existía por tanto sólo tiene 11 00:01:12,579 --> 00:01:17,319 que haber insertado este el último valor el dni como no lo hemos puesto pues el encargado no sale 12 00:01:17,319 --> 00:01:27,989 como nulo y si seleccionamos desde cocineros si seleccionamos desde cocineros nos generaría la 13 00:01:27,989 --> 00:01:36,569 única que ha entrado que sería pues la 222 vale y estaría todo correcto bien vamos a pasar a 14 00:01:39,549 --> 00:02:06,989 Vamos a pasar a una actualización. Vamos a modificar el código C del comedor 10 a 15. Vamos a ponerlo aquí y vamos a modificar el código C del comedor 10 a 15. 15 00:02:06,989 --> 00:02:23,050 Este sería lo siguiente que vamos a hacer. ¿Cómo se puede hacer? Se puede realizar, depende de qué, de la relación que haya entre mesas y comedores. Si es un home update, cascade, pues entonces se propagará. 16 00:02:23,050 --> 00:02:52,129 Si es un restrict, no action, pues dará un error. Entonces vamos a probar con un update. Queremos modificar la tabla comedores y le tenemos que colocar el código C, el valor de 15, donde código C es igual a 10. 17 00:02:53,050 --> 00:03:09,770 Esta sería la línea que vamos a actualizar. Estamos actualizando el código C de comedores. Antes de ver esto, vamos a ver aquí en comedores, que tiene varias columnas, que serían código C, nombre, capacidad, número de mesas y localización. 18 00:03:09,770 --> 00:03:29,430 Bien, acordaos que la tabla de comedores, la relación que había, comedores tenía como primariquí, tenía código C, ¿vale? 19 00:03:29,430 --> 00:03:47,550 Entonces, en comedores lo que queremos es, y habíamos puesto, si no hemos puesto dentro de la misma un onAtDeckCascade, pues entonces nos va a generar un error. 20 00:03:47,550 --> 00:03:51,949 vamos a ejecutarlo, a ver que nos dice 21 00:03:51,949 --> 00:03:55,449 y nos dice que perfectamente, ¿por qué? porque lo habíamos puesto 22 00:03:55,449 --> 00:03:59,770 que habíamos puesto ese onUpdate 23 00:03:59,770 --> 00:04:03,889 cascade, ¿vale? para, vamos a ver 24 00:04:03,889 --> 00:04:17,060 lo ejecutamos y vemos que 25 00:04:17,060 --> 00:04:21,480 el código C de salón atlántico 26 00:04:21,480 --> 00:04:25,100 que habíamos puesto al principio, pues tenemos que va a pasar a que 27 00:04:25,100 --> 00:04:38,500 Ha pasado de 10, ha pasado a 15 y nos lo ha, nos ha modificado perfectamente. ¿Por qué? Porque tenemos en la tabla un on update cascade, ¿vale? Si no, no se propagaría. 28 00:04:38,500 --> 00:05:00,750 Vamos a eliminar, por ejemplo, el comedor 20 y el comedor 30. 29 00:05:00,750 --> 00:05:17,509 Esto es lo que vamos a hacer a continuación. Daría error. Pues depende si existen mesas asociadas. Hay que decir que si tenemos que en comedor, si nos vamos a la tabla de comedores, 30 00:05:17,509 --> 00:05:22,329 tenemos que 31 00:05:22,329 --> 00:05:26,089 dependerá de si existen mesas asociadas y de 32 00:05:26,089 --> 00:05:30,670 la foreign key, ¿vale? ¿Qué sucederá? Si tenemos que hay 33 00:05:30,670 --> 00:05:33,649 un restrict, pues normalmente fallará 34 00:05:33,649 --> 00:05:37,730 fallará si, por ejemplo, si vamos a ponerlo aquí 35 00:05:37,730 --> 00:05:45,319 delete comedores 36 00:05:45,319 --> 00:05:50,370 código C 37 00:05:50,370 --> 00:05:54,930 sea igual a 20. Esto es lo que vamos a poner. Vamos a poner 38 00:05:54,930 --> 00:06:01,040 esta y vamos a poner a borrar también el 30. 39 00:06:02,920 --> 00:06:04,899 Bien, aquí 40 00:06:04,899 --> 00:06:08,800 tendríamos que, antes de eliminarlo, de eliminar el comedor 41 00:06:08,800 --> 00:06:12,839 20 y el 30, vamos a ver 42 00:06:12,839 --> 00:06:25,819 veis que comedores tenían 43 00:06:25,819 --> 00:06:29,759 un código C en el que suprimir aquí, que era un autoincremento, pues 44 00:06:29,759 --> 00:06:37,600 tenemos que era el código C, ¿vale? Lo tenía el nombre, capacidad, número de mesas y localización. 45 00:06:37,740 --> 00:06:55,939 Entonces vamos a borrar y vamos a verlo aquí. Y vamos a ver qué es lo que tenemos. Queremos 46 00:06:55,939 --> 00:07:04,240 borrar el 20 y queremos borrar el 30. Hemos dicho que para borrar el 20 y el 30 tendría 47 00:07:04,240 --> 00:07:12,120 que haber que dependerá de si existen esas mesas o no vale hemos visto que existen existen los 48 00:07:12,120 --> 00:07:20,620 códigos los códigos 20 y 30 y dependerá de la primavera y si tenemos que hay un restrict que 49 00:07:20,620 --> 00:07:29,819 no lo hay vamos a probarlo y nos dice que el código c no puede borrarse vale imagino que 50 00:07:29,819 --> 00:07:46,560 El 30 tampoco. Vamos a cortar esta y el 30 tampoco. ¿Por qué? Porque tenemos una restricción en la que no podemos, depende si tenemos una restricción en la propia Primariki. 51 00:07:46,560 --> 00:08:02,360 Y entonces la primary key no se puede borrar. Bien, vamos a ver de nuevo otras. Vamos a poner ahora la inserción de una mesa basándose en el nombre del comedor, no en el código. 52 00:08:02,360 --> 00:08:37,759 Primero vamos a hacer una inserción de empleados y de camareros. Vamos a insertar dos empleados y convertirlos en camareros. 53 00:08:40,899 --> 00:08:46,679 Vamos a hacer esto. Vamos a insertar dos empleados y vamos a convertirlos en camareros. 54 00:08:46,899 --> 00:08:53,759 Vamos a hacer la primera inserción. Tenemos aquí, lo voy a copiar y pegar, que ya lo tengo aquí para no tener que escribir. 55 00:08:54,080 --> 00:08:59,799 Tenemos la inserción de empleados con estos valores. El 4-4-D no existía y lo único que vamos a hacer ahora 56 00:08:59,799 --> 00:09:04,799 que es insertar dentro de camareros el mismo 4-4, el mismo empleado. 57 00:09:04,799 --> 00:09:35,659 Y por otro lado vamos a insertar el empleado 5 y lo vamos a generar como a convertirlo en un camarero. Una vez que ejecutamos esto, no nos da ningún error. Y ahora lo que vamos a hacer, una vez que hemos insertado esos dos empleados, el 4-4 y el 5-5, y los hemos convertido en camareros, vamos ahora a insertar una mesa basándose en el nombre del comedor. 58 00:09:35,659 --> 00:09:54,480 Vamos a poner aquí, insertar una mesa basándome en el nombre del comedor. 59 00:09:57,120 --> 00:10:01,480 Lo vamos a hacer no en el código. 60 00:10:01,480 --> 00:10:07,779 bien, ¿cómo lo vamos a hacer esto? 61 00:10:08,299 --> 00:10:11,480 el insert into, pues vamos a hacerlo exactamente igual 62 00:10:11,480 --> 00:10:12,759 pero insert 63 00:10:12,759 --> 00:10:19,820 into, vale, va a ser un insert into 64 00:10:19,820 --> 00:10:23,419 dentro de la tabla mesas, y teníamos que 65 00:10:23,419 --> 00:10:26,779 mesas tenía tres campos, que era código 66 00:10:26,779 --> 00:10:30,840 M código C 67 00:10:30,840 --> 00:10:33,259 y N asientos 68 00:10:33,259 --> 00:10:37,279 entonces, ¿qué es lo que vamos a hacer? 69 00:10:37,419 --> 00:10:40,100 es un insert pero basándose en una 70 00:10:40,100 --> 00:10:43,580 acoplado a una selección 71 00:10:43,580 --> 00:10:46,200 el fruto del select 72 00:10:46,200 --> 00:10:49,879 lógicamente ya no podemos insertarlo 73 00:10:49,879 --> 00:10:52,860 al tener que insertar una mesa basándose en el nombre del comedor 74 00:10:52,860 --> 00:10:55,200 tenemos que seleccionar esa mesa 75 00:10:55,200 --> 00:11:08,500 Entonces, ya no podemos insertar del mismo modo que hemos visto antes, sino que tiene que ser a base de un select. El select, aquí no hay que poner values, sino que el select es el que nos va a, para ello, lo que vamos a hacer aquí. 76 00:11:08,500 --> 00:11:26,940 Para que lo veáis, si yo selecciono Select, por ejemplo, vamos a seleccionar 12,6 comedores. 77 00:11:26,940 --> 00:11:36,600 c.nombre 78 00:11:36,600 --> 00:11:39,500 es igual 79 00:11:39,500 --> 00:11:42,600 a salón 80 00:11:42,600 --> 00:11:45,340 atlántico. 81 00:11:50,570 --> 00:11:52,110 Vamos a ver si está bien. Perfecto. 82 00:11:52,850 --> 00:11:54,269 Yo quiero seleccionar 83 00:11:54,269 --> 00:11:58,049 acordaos 84 00:11:58,049 --> 00:11:59,970 el mesas va a tener 85 00:11:59,970 --> 00:12:02,490 código M. Vamos a ponerlo aquí con un 86 00:12:02,490 --> 00:12:07,120 campos 87 00:12:07,120 --> 00:12:08,899 mesas 88 00:12:08,899 --> 00:12:20,000 Y tendríamos que sería código M, código C y N asientos. 89 00:12:21,860 --> 00:12:23,639 Esos son los campos de mesas. 90 00:12:23,820 --> 00:12:33,379 Entonces, queremos seleccionar los tres campos, tanto código M, código C y N asientos, 91 00:12:33,379 --> 00:12:38,740 pero queremos insertar una mesa basándose en el nombre del comedor, 92 00:12:38,899 --> 00:12:57,480 Ponemos un word. El word que tenemos aquí sería ha llamado aquí con un alias a comedores C para luego llamar a su campo nombre a través del operador punto. Y aquí estamos poniendo una condición que es que no seleccione la mesa salón atlántico. 93 00:12:57,480 --> 00:13:13,519 Bien, esa es mesa, ¿qué nos va a devolver? Nos va a devolver cualquier código C tiene y le estamos poniendo que esa mesa, ya le estamos poniendo nosotros estos valores, que sería que el código M es el 9 y el número de cientos es 6. 94 00:13:13,519 --> 00:13:30,960 Entonces, aquí teníamos el insert, vamos a cortar esto, luego lo utilizamos y vamos a hacer un select from mesas para ver lo que tenemos. 95 00:13:30,960 --> 00:13:35,700 si lo vemos, ¿qué tenemos? Estamos hablando del 6 96 00:13:35,700 --> 00:13:39,879 había, si lo ponemos 97 00:13:39,879 --> 00:13:43,679 aquí, estamos utilizando 98 00:13:43,679 --> 00:13:47,419 el de 6, ¿vale? Entonces 99 00:13:47,419 --> 00:13:51,080 queremos que salga con el código 9 100 00:13:51,080 --> 00:13:55,759 código M9, con el código C sería el 101 00:13:55,759 --> 00:13:59,580 30 y estos serían los números de asientos 102 00:13:59,580 --> 00:14:34,629 Al seleccionar desde comedores, que sería el salón atlántico. Como el salón se refiere, claro, aquí se está refiriendo, vamos a ver ahora, vamos a quitar esto de aquí y vamos a poner, si tenemos el salón atlántico, lo veis que se refiere al código C15. 103 00:14:34,629 --> 00:15:04,330 Entonces, lo que vamos a hacer ahora es insertar en esta mesa, basándose en el nombre del comedor, vamos a insertar la nueva mesa, que sería esta, que sería la 9, con el código C basándose en el comedor Salón Atlántico. 104 00:15:04,629 --> 00:15:11,289 comedor salón atlántico si veis es el que está aquí vamos a realizar primero vamos a hacer el 105 00:15:11,289 --> 00:15:20,129 select y luego vamos a realizar esto y esto lo vamos a borrar vamos a hacer el select a ver qué 106 00:15:20,129 --> 00:15:24,789 es lo que nos aparece bien si veis el select que nos está apareciendo nos está apareciendo que a 107 00:15:24,789 --> 00:15:30,129 través de salud atlántico nos está apareciendo el código c que tenía asociado hemos visto en 108 00:15:30,129 --> 00:15:35,009 comedores, que Salón Atlántico tiene el código C asociado 15. Entonces, nosotros lo que queremos 109 00:15:35,009 --> 00:15:42,789 ahora es que a través del comedor Salón Atlántico nos rescate su código y C y que nos ponga el 9 110 00:15:42,789 --> 00:15:50,389 como código M, el código C, el rescatado del Salón Atlántico y de 6 asientos y nos lo inserte como 111 00:15:50,389 --> 00:15:58,590 una nueva mesa. Entonces, este es el set que va a ir como resultado dentro del insert. Entonces, 112 00:15:58,590 --> 00:16:19,960 Entonces, si yo pongo ahora el insert, desde mesas, veis, estamos introduciendo a través del select. Ahora ya no se pone values, ¿por qué? Porque estamos insertando estos tres valores, o sea, el 9, el 6, que ya se los he dado yo, y el código C, que lo hemos sacado desde el GOME 2, Salón Atlántico, lo estamos insertando en mesas. 113 00:16:19,960 --> 00:16:35,700 Ahora ya no sería necesario añadir aquí el values, sino que lo que estamos haciendo es que sería el insert into la tabla de mesas en estos campos y en estos campos mete el resultado de este select. 114 00:16:35,700 --> 00:16:43,019 vamos a hacerlo y lo ejecutamos nos dice que 115 00:16:43,019 --> 00:17:02,240 bueno aquí si lo ha metido a ver vamos a ver 116 00:17:02,240 --> 00:17:09,299 si le damos a ejecutar nos tendría que aparecer la mesa que hemos introducido 117 00:17:09,299 --> 00:17:16,420 que sería vale aparecería aquí 118 00:17:16,420 --> 00:17:28,730 Y como comedor, estaría comedor Salón Atlántico 1580. 119 00:17:28,730 --> 00:17:42,980 Y como mesas nos está seleccionando, veis que ahora el código C aparece dos veces, pero debería haber aparecido uno con el 9. 120 00:17:43,299 --> 00:17:46,599 ¿Qué sucede? Que no lo ha introducido. ¿Por qué? 121 00:17:47,099 --> 00:17:53,720 Porque para insertarlo tendría que aparecer el código M. 122 00:17:53,720 --> 00:18:06,990 ¿Veis aquí? Tenemos aquí comedores que se basarían en el código C, pero cuando nos metemos en mesas tendría el código M y el código C. 123 00:18:07,390 --> 00:18:24,970 Nosotros le hemos metido el... vamos a... hemos insertado desde código M como 9, creando uno nuevo como código C, el que nos sale de Salón Atlántico y como un número de asientos el 6. 124 00:18:24,970 --> 00:18:31,529 estamos creando un nuevo y al ejecutarlo nos está diciendo que 125 00:18:31,529 --> 00:18:40,730 dice que hay un error vamos a ver cuál es el tenemos aquí vamos a ver 126 00:18:40,730 --> 00:18:47,470 vale si no hemos hecho referencia aquí a la tabla vale no lo he visto veis hemos 127 00:18:47,470 --> 00:18:52,210 llamado como de los hace entonces habrá que llamar a la tabla c con su campo 128 00:18:52,210 --> 00:18:56,829 código c vale teníamos este error por eso no salía ahora al ejecutarlo nos está 129 00:18:56,829 --> 00:19:11,680 diciendo que... Inserting two mesas, código M, código C, N, asientos. Lo tengo bien. Servición A9, código C, 6, desde comedores. 130 00:19:14,259 --> 00:19:37,980 Comedores C, ¿dónde? Pues está bien. Está insertando la mesa en el código 9. Vamos a ver. 9 y 6, no debería dar mal esto. Vamos a hacer un select. 131 00:19:38,960 --> 00:19:49,740 y lo vemos 132 00:19:49,740 --> 00:19:54,420 si veis aquí no hay otro 6, no lo he insertado 133 00:19:54,420 --> 00:19:57,920 le damos aquí al select 134 00:19:57,920 --> 00:19:59,839 y insertar dentro de mesas 135 00:19:59,839 --> 00:20:05,759 debería dar bien, ahora lo he insertado, no sé por qué no lo he insertado anteriormente 136 00:20:05,759 --> 00:20:08,960 ahora no nos ha dado error, vamos a hacerlo de nuevo 137 00:20:08,960 --> 00:20:21,339 veis, ahora ya sí lo ha añadido 138 00:20:21,339 --> 00:20:26,900 Veis, esta es otra manera de realizar inserciones, que es a través de un SELECT. 139 00:20:27,000 --> 00:20:35,839 Entonces, hemos visto la inserción normal en la que poníamos la tabla con sus campos y luego una fila con detalles de valores con los valores de los campos. 140 00:20:36,259 --> 00:20:45,160 Pero la otra manera de insertar sería esta, que sería a través de un INSERT, un tabla, los campos y luego esos campos son rellenados a través de un SELECT. 141 00:20:45,160 --> 00:20:56,799 Si veis, aquí el select genera los tres mismos campos en el mismo orden que los que necesitamos para el insert y no utiliza la palabra values.