1 00:00:00,000 --> 00:00:12,320 buenas tardes voy a hacer este vídeo para que sigamos con él con el esquema que vimos en la 2 00:00:12,320 --> 00:00:20,800 videoconferencia del hotel brisa el hotel brisa hicimos una serie de tablas y con ellas las he 3 00:00:20,800 --> 00:00:28,199 insertado aquí en mysql estarían aquí todas las tablas que serían clientes empleados facturas 4 00:00:28,199 --> 00:00:35,219 habitaciones líneas factura y reservas para hacer un repaso de lo que era el hotel brisa 5 00:00:37,520 --> 00:00:46,340 y vimos que las tablas eran estas de aquí estas eran las relaciones en el modelo conceptual 6 00:00:46,340 --> 00:00:52,200 teníamos la tabla cliente y la tabla reserva en el que vimos que un cliente podía realizar cero 7 00:00:52,200 --> 00:00:57,700 muchas reservas y una reserva pertenecía a un único cliente era una relación 1 a n entre cliente 8 00:00:57,700 --> 00:01:03,020 y reserva. Vimos habitación, que es asignada a reserva, entonces una habitación puede 9 00:01:03,020 --> 00:01:07,739 aparecer en muchas reservas, en distintas fechas, claro está, y una reserva es para 10 00:01:07,739 --> 00:01:12,280 una sola habitación, sería 1N también. Luego tenemos factura y línea de factura. 11 00:01:12,420 --> 00:01:20,000 Acordaos que línea de factura era cada uno de los conceptos de cada uno de los detalles 12 00:01:20,000 --> 00:01:24,120 de la propia factura. Línea de factura era una entidad débil que dependía de la entidad 13 00:01:24,120 --> 00:01:28,299 fuerte que era factura. Entonces una factura va a estar formada por muchos conceptos. Entonces 14 00:01:28,299 --> 00:01:33,260 ¿qué sería cada uno de ellos? Sería una línea de factura. Por ejemplo, alojamiento, lavandería, 15 00:01:33,439 --> 00:01:43,000 etcétera. Y con eso pues sería el cómputo global de lo que es la factura. Entonces ¿qué 16 00:01:43,000 --> 00:01:47,340 te sucedía? Que una factura puede tener una o varias líneas de factura y una línea de factura 17 00:01:47,340 --> 00:01:53,359 solo pertenecía a una factura. También era una relación 1N. Y por último teníamos reserva y 18 00:01:53,359 --> 00:02:01,159 Una reserva genera una factura y esa factura correspondía solo a una reserva. 19 00:02:01,260 --> 00:02:02,719 Esta era una relación uno a uno. 20 00:02:03,260 --> 00:02:09,099 Una vez que nos hemos situado dentro del mismo, aquí tenemos todas las relaciones, 21 00:02:09,659 --> 00:02:16,319 hemos creado las tablas como hicimos en la videoconferencia y las he creado en mi MySQL. 22 00:02:16,699 --> 00:02:17,780 Serían todas estas de aquí. 23 00:02:17,780 --> 00:02:23,000 como yo he insertado ya datos para borrarlos 24 00:02:23,000 --> 00:02:26,860 voy a utilizar estas líneas que veis 25 00:02:26,860 --> 00:02:29,340 que sería el set foreign key checks 26 00:02:29,340 --> 00:02:32,240 sería poner un valor cero 27 00:02:32,240 --> 00:02:37,460 es para inhabilitar todas las foreign key 28 00:02:37,460 --> 00:02:39,919 que hay entre tablas, tabla hija y tabla padre 29 00:02:39,919 --> 00:02:44,479 una vez que hago eso con el toolkit table 30 00:02:44,479 --> 00:02:49,759 lo que hago es que voy a borrar cada uno de los valores y voy a poner los autoincrement. 31 00:02:50,300 --> 00:02:54,780 Acordaos que un autoincrement en una primary key era una primary key artificial, 32 00:02:55,400 --> 00:03:01,620 que lo que iba generando es un valor de autoincremento, por ejemplo en factura, 33 00:03:02,060 --> 00:03:10,080 cada vez que se generaba una factura iba generando un valor que era una unidad mayor a la anterior factura, 34 00:03:10,419 --> 00:03:12,080 la 1, la 2, la 3, etc. 35 00:03:12,080 --> 00:03:17,180 Con esto lo voy a borrar y por la continuación dejo a las foreign key otra vez habilitadas. 36 00:03:17,979 --> 00:03:27,840 Al ejecutar esto, me pone ya que nos dice un error aquí, chequeo manual que corresponde a MySQL, ¿vale? 37 00:03:31,289 --> 00:03:41,490 Algo tengo, a ver, me está diciendo que código error, tú tienes un error en tu sintaxis, 38 00:03:41,490 --> 00:03:49,849 a ver si tengo, porque dice chequea el manual que corresponde a tu MySQL servidor 39 00:03:49,849 --> 00:04:06,479 en la línea 1 me los pone, a ver, esto está bien, foreign key, checks, a ver, vamos a borrar esto 40 00:04:06,479 --> 00:04:15,430 y vamos a ver si con un select, vamos a borrar esto y vamos a hacer un select, por ejemplo, select 41 00:04:15,430 --> 00:04:30,879 Vamos a seleccionar todo desde reservas, por ejemplo, y vamos a ver qué es lo que hace. 42 00:04:32,500 --> 00:04:34,680 Bueno, nos está diciendo que no lo ha borrado. 43 00:04:35,620 --> 00:04:45,269 Entonces vamos a quitar esto de aquí, vamos a poner de nuevo y vamos a ejecutarlo. 44 00:04:46,269 --> 00:04:47,689 Ahora ya sí lo ha borrado. 45 00:04:47,689 --> 00:05:10,560 No sé por qué me ha dado el error. No sé si puedo dejar esa línea así. Bien, veis que ya he borrado todo y ahora sí hago un select. Selecciono todo, por ejemplo, desde habilitaciones. Me daría que no hay nada. 46 00:05:10,560 --> 00:05:22,120 Bien, ya tengo las tablas vacías. ¿Para qué? Para empezar desde cero y establecer las inserciones de los datos en cada una de las tablas. 47 00:05:22,519 --> 00:05:25,680 Borramos aquí y vamos a hacer el primer insert. 48 00:05:26,480 --> 00:05:36,019 Acordaos, un insert lo que hace es que va a introducir datos dentro de la tabla y se pone el formato, es el insert into. 49 00:05:36,019 --> 00:05:43,459 inserta dentro de qué tabla por ejemplo de clientes y a continuación se ponen los campos 50 00:05:43,459 --> 00:05:50,300 donde lo vamos a insertar clientes está formado por el dni nombre apellidos teléfono email y 51 00:05:50,300 --> 00:06:02,370 fecha de alta esto lo puedo copiar igual y tendríamos aquí que vamos a insertar en todos 52 00:06:02,370 --> 00:06:13,259 esos que son sus campos. Vamos a insertar los siguientes valores. Se pone Values y a continuación 53 00:06:13,259 --> 00:06:18,480 ponemos los valores. Yo ya lo tengo aquí para evitar tener que teclearlo y que el vídeo se haga 54 00:06:18,480 --> 00:06:23,420 muy extenso. Lo pongo aquí y estos serían los valores. Si veis están en el mismo orden. Se pone 55 00:06:23,420 --> 00:06:28,600 entre paréntesis y separados por comas. Estos serían tres inserciones. En la primera mete el 56 00:06:28,600 --> 00:06:33,819 TDI, el nombre, el apellido, el teléfono, el email y la fecha de alta. 57 00:06:34,160 --> 00:06:37,120 En el formato año, mes, día, separado por guiones. 58 00:06:37,360 --> 00:06:37,800 Ya lo vimos. 59 00:06:38,620 --> 00:06:40,120 Hacemos las tres inserciones. 60 00:06:40,939 --> 00:06:48,740 Vamos a pasar a la otra inserción, que sería la de insertar dentro de habitaciones. 61 00:06:49,779 --> 00:06:51,699 Y vamos a hacerlo del mismo modo. 62 00:06:52,839 --> 00:06:54,660 Tenemos inserta dentro de habitaciones. 63 00:06:55,319 --> 00:06:56,379 Estos serían los campos. 64 00:06:56,379 --> 00:06:58,639 vamos a ver que se corresponden con los que tenemos 65 00:06:58,639 --> 00:07:02,620 y son habitaciones, teníamos código de habitación 66 00:07:02,620 --> 00:07:04,819 planta, tipo, precio, noche y estado 67 00:07:04,819 --> 00:07:08,540 y se corresponde, tendríamos que los valores serían 68 00:07:08,540 --> 00:07:11,680 estos de aquí, en código de habitación veis que es 69 00:07:11,680 --> 00:07:15,420 un valor de, es un autoincrement 70 00:07:15,420 --> 00:07:18,259 esto lo vimos en la propia tabla 71 00:07:18,259 --> 00:07:20,339 de habitaciones 72 00:07:20,339 --> 00:07:27,870 esta es la tabla de habitaciones, veis 73 00:07:27,870 --> 00:07:31,050 pusimos un autoincrement, ¿para qué? para que código de habitación 74 00:07:31,050 --> 00:07:35,310 se fuera incrementando cada vez que se fuera añadiendo un registro. 75 00:07:35,930 --> 00:07:40,110 Entonces, hemos puesto que este sería el autoincremento, 76 00:07:40,189 --> 00:07:42,930 que sería la clave primaria de habitaciones, 77 00:07:43,389 --> 00:07:45,310 y luego hemos puesto el número de planta, 78 00:07:45,689 --> 00:07:48,430 hemos puesto un tipo, el precio noche y el estado. 79 00:07:48,910 --> 00:07:51,189 Veis el mismo formato que hemos hecho en la inserción de arriba. 80 00:07:51,990 --> 00:07:55,689 Vamos a pasar ahora a la tabla de reservas, 81 00:07:56,370 --> 00:07:58,689 y en reservas va a ser exactamente el mismo formato. 82 00:07:58,689 --> 00:08:03,050 ponemos reservas 83 00:08:03,050 --> 00:08:07,399 si veis 84 00:08:07,399 --> 00:08:09,740 estamos introduciendo dentro de reservas 85 00:08:09,740 --> 00:08:11,939 vamos a ponerlo aquí para que aparezca igual 86 00:08:11,939 --> 00:08:13,519 fecha de reserva 87 00:08:13,519 --> 00:08:15,899 de entrada, de salida, de ni cliente 88 00:08:15,899 --> 00:08:17,620 código de habitación, número de personas y régimen 89 00:08:17,620 --> 00:08:19,519 si veis, aquí ha metido 90 00:08:19,519 --> 00:08:21,379 en fecha de reserva 91 00:08:21,379 --> 00:08:23,399 la función now 92 00:08:23,399 --> 00:08:25,639 que es la fecha actual de mi 93 00:08:25,639 --> 00:08:26,220 ordenador 94 00:08:26,220 --> 00:08:29,399 la fecha que tenemos 95 00:08:29,399 --> 00:08:30,100 actualmente 96 00:08:30,100 --> 00:08:33,539 tendría cada uno de los campos pero aquí 97 00:08:33,539 --> 00:08:42,220 nos faltaría un campo. Si lo veis en cuanto a reservas, y nos vamos a reservas, clientes, 98 00:08:42,299 --> 00:08:51,240 reserva está abajo, sí, aquí está. Veis que aparece la clave primaria, es el número 99 00:08:51,240 --> 00:08:57,200 de reserva, en reserva, y es autoincremento. Aquí no la he metido, entonces la vamos a 100 00:08:57,200 --> 00:09:26,799 ¿Por qué? Porque aquí hay 2, 4, 6, 7 campos y en reservas aquí teníamos 8. 2, 4, 6 y 8. Lo añadimos. Y claro, habrá que añadir el número de reserva en cada una de las inserciones. Como es un autoincremento, ponemos la primera en la 1, la segunda sería la 2 y la tercera sería la 3. 101 00:09:26,799 --> 00:09:48,799 Bien, ya tenemos también reservas. Véis que hay dos, cuatro, seis, ocho campos. Vamos a pasar a la tabla facturas. En facturas, acordaos, estaba formado por tres campos también. Aquí la tengo, pero también se me ha pasado poner el primer campo, que sería el de la primariquí. Vamos a ver facturas. 102 00:09:48,799 --> 00:10:00,799 facturas y reservas y facturas facturas teníamos en factura necesitamos el número de factura 103 00:10:00,799 --> 00:10:07,019 que también era un autoincrement lo veis aquí entonces habrá que añadir aquí en 104 00:10:07,019 --> 00:10:15,240 factura lo ponemos y aquí vamos a poner igual que pasaba con reservas como es un autoincrement 105 00:10:15,240 --> 00:10:21,200 La factura 1, la factura 2 y la factura 3. 106 00:10:22,279 --> 00:10:23,600 ¿Qué nos quedaría? 107 00:10:23,840 --> 00:10:29,100 Nos quedaría ahora líneas de factura y tendríamos ya todas las inserciones. 108 00:10:29,259 --> 00:10:32,779 No vamos a añadir nada en empleados porque no vamos a utilizar la tabla empleados. 109 00:10:33,500 --> 00:10:48,610 Entonces nos quedaría líneas de factura, líneas factura, en el que tiene factura, concepto e importe. 110 00:10:48,610 --> 00:10:59,610 tiene ya las tres y tendríamos con el incremento bien vamos a ver en facturas perdón líneas de 111 00:10:59,610 --> 00:11:06,409 factura líneas de factura está aquí era líneas factura y tenía en los tres acordados que líneas 112 00:11:06,409 --> 00:11:11,830 factura era una entidad débil esta tabla va a depender de la tabla padre que sería factura 113 00:11:11,830 --> 00:11:18,070 que sería la entidad fuerte en cómo se va a relacionar aquí la primera aquí acordados que 114 00:11:18,070 --> 00:11:23,769 una clave compuesta formada por la factura y concepto y estará relacionada con factura con 115 00:11:23,769 --> 00:11:36,480 la factura de la propia tabla padre o de facturas vamos a insertar veis que en factura se le ha 116 00:11:36,480 --> 00:11:44,159 puesto también como un autoincrement y sería aquí el 1 el 2 y el 3 veis que para la factura 1 tiene 117 00:11:44,159 --> 00:11:50,580 dos líneas de factura que sería alojamiento y desayuno para la factura 2 tiene una de alojamiento 118 00:11:50,580 --> 00:11:55,919 otra media pensión y para la factura 3 un alojamiento y pensión completa y ya tendríamos 119 00:11:55,919 --> 00:12:00,340 todas las tablas le damos a ejecutar haríamos dichas inserciones vamos a ver si no hay ningún 120 00:12:00,340 --> 00:12:13,929 problema y nos dice que tenemos un error vale nos dice que hay un error vamos a ver dónde está el 121 00:12:13,929 --> 00:12:36,279 error valores inserir su líneas factura esto estaría bien código habitación vale esto está 122 00:12:36,279 --> 00:12:52,120 N reserva, N factura. Vamos a ver que todas las tablas sean correctas. Vamos a ver cada uno de los campos de las tablas, las columnas de clientes eran DNI, nombre, apellidos, teléfono, email y fecha de alta. 123 00:12:52,120 --> 00:13:15,059 Ahí tenemos dos, cuatro, seis campos. Con el valor está perfecto. Luego hemos pasado a la tabla habitaciones. En habitaciones tenemos que las columnas son código de habitación, planta, tipo, precio noche y estado. En valores tendríamos seis campos, no cinco, y aparecen tres, cuatro y cinco en cada una de ellas. 124 00:13:15,059 --> 00:13:31,919 Nos vamos a la tabla de reservas y en reservas teníamos el número de reserva, la fecha de reserva, entrada, salida, DNI, cliente, código de habitación, número de personas y régimen. 125 00:13:31,919 --> 00:13:36,860 2, 4, 6, 8, tenemos los 8 y 2, 4, 6 y 8 126 00:13:36,860 --> 00:13:39,179 estarían bien y aquí aparecen también bien 127 00:13:39,179 --> 00:13:42,919 y nos quedaría facturas, vamos a facturas 128 00:13:42,919 --> 00:13:49,389 facturas tendría las columnas 129 00:13:49,389 --> 00:13:52,590 n factura, fecha factura 130 00:13:52,590 --> 00:13:56,590 y n reserva, tenemos que 131 00:13:56,590 --> 00:13:59,210 estaría 132 00:13:59,210 --> 00:14:03,490 correcto también con sus tres campos 133 00:14:03,490 --> 00:14:06,330 perfecto y con el punto y coma 134 00:14:06,330 --> 00:14:07,970 y luego ya tendríamos el caso de 135 00:14:07,970 --> 00:14:18,240 líneas de factura que sería este de aquí 136 00:14:18,240 --> 00:14:21,480 que tendríamos la n factura, tenemos el concepto 137 00:14:21,480 --> 00:14:24,080 y tenemos el importe, son tres valores que están 138 00:14:24,080 --> 00:14:26,399 añadidos de manera correcta, hemos añadido 139 00:14:26,399 --> 00:14:30,620 seis líneas de factura y estaría correcto 140 00:14:30,620 --> 00:14:33,240 con el punto y coma, nosotros cuando le damos a 141 00:14:33,240 --> 00:14:39,529 nos dice que inserir un cliente en la García 142 00:14:39,529 --> 00:14:47,120 desconocida tabla, o sea, el teléfono 143 00:14:47,120 --> 00:14:52,820 vamos a ver, inserir tu clientes 144 00:14:52,820 --> 00:14:56,580 vale, vamos a quitar esto de aquí 145 00:14:56,580 --> 00:15:01,379 y vamos a ejecutar otra vez, y veis, ya nos sale 146 00:15:01,379 --> 00:15:05,000 todo bien, tan solo que teníamos aquí una tilde y 147 00:15:05,000 --> 00:15:09,159 no lo daba como error, lo cerramos y ya tendríamos todo introducido 148 00:15:09,159 --> 00:15:28,269 Vamos a quitar todo esto y vamos a borrarlo y vamos a hacer select de las distintas tablas. Vamos a seleccionar todo de cada una de las tablas. Vamos a empezar con la tabla clientes. 149 00:15:28,269 --> 00:15:45,409 Vamos a cerrar aquí para verlas todas y vamos a poner seleccioname todo desde clientes, seleccioname, le damos a ejecutar y me saldrá justamente los tres campos que había aparecido. 150 00:15:45,409 --> 00:16:03,389 Si en vez de clientes seleccionamos desde empleados, pues no nos aparecerá nada, pues que no hemos introducido absolutamente nada. Si nos vamos a facturas y le damos a ejecutar, vemos que tenemos las tres facturas que habíamos creado. 151 00:16:03,389 --> 00:16:07,870 Dentro de esas tres facturas habíamos creado dos líneas de factura para cada una de las facturas 152 00:16:07,870 --> 00:16:17,590 Entonces si ponemos líneas factura y le damos a ejecutar nos saldrán las seis líneas 153 00:16:17,590 --> 00:16:23,129 ¿Veis? Dos líneas para la factura 1, dos líneas para la factura 2 y dos líneas de factura para la factura 3 154 00:16:23,129 --> 00:16:29,169 Y ya nos quedaría, no sé quién nos ha... reservas y habitaciones, creo que habitaciones ya lo hemos hecho 155 00:16:29,169 --> 00:16:37,429 Habitaciones tendríamos justamente las que habíamos metido 156 00:16:37,429 --> 00:16:55,460 Y en reservas ejecutamos y también nos aparece. Bien, ya tenemos todos los datos introducidos y ahora lo que vamos a hacer es establecer una serie de consultas. 157 00:16:55,460 --> 00:17:14,119 Aquí he puesto 12 consultas, como pasa en la tarea, donde vamos a realizar, no voy a realizar todas ellas en el vídeo, solo alguna de ellas. Haremos así las más sencillas y el resto la resolveremos en la videoconferencia que tengamos para esta unidad. 158 00:17:14,119 --> 00:17:19,460 vamos a fijarnos en la primera que nos dice el listado de reservas verano el listado con el 159 00:17:19,460 --> 00:17:35,640 número vamos a poner aquí lo vamos a seleccionar en rojo qué es lo que vamos a hacer nos dice 160 00:17:35,640 --> 00:17:40,779 listado con el número de número de reserva de cliente fecha de entrada y número de personas 161 00:17:40,779 --> 00:17:48,079 ¿Veis? Nos pide que seleccionemos cuatro campos en concreto de reservas de los ocho que tiene. 162 00:17:48,759 --> 00:17:52,980 Nos dice que de las reservas con N personas entre varias condiciones. 163 00:17:53,119 --> 00:17:57,039 La primera condición nos dice, vamos a ponerlo en otro color para que veamos las condiciones. 164 00:17:57,160 --> 00:18:01,660 La primera condición nos dice que N personas tiene que ser entre uno y tres incluidos. 165 00:18:01,900 --> 00:18:04,690 Vamos a ponerlo en morado. 166 00:18:05,829 --> 00:18:09,130 La otra condición que nos pide es que el año de entrada sea del 2024. 167 00:18:09,130 --> 00:18:12,730 vamos a ponerlo de otro color también, vamos a ponerlo de color naranja, 168 00:18:14,109 --> 00:18:18,589 y que el mes esté entre junio y agosto, o sea que sería entre el mes 6 y el mes 8. 169 00:18:19,130 --> 00:18:22,289 Vamos a ponerlo, por ejemplo, de color azul. 170 00:18:23,430 --> 00:18:26,250 Esas serían las tres condiciones que nos establece. 171 00:18:27,170 --> 00:18:29,170 ¿Qué vamos a utilizar? Vamos a utilizar dos funciones, 172 00:18:29,309 --> 00:18:34,490 una sería ayer y otra para saber el año y el mes, para que nos lo fije. 173 00:18:34,490 --> 00:18:53,869 Nos dice que el encabezado tiene que aparecer de cada una de las respuestas o de cada una de las columnas que aparezca con estos nombres. En vez de número de reserva, aparece como reserva. En vez de DNI cliente, cliente. En vez de fecha de entrada, entrada. Y en vez de número de personas, personas. 174 00:18:54,869 --> 00:19:08,789 Bien, pues entonces vamos a empezar. Vamos a borrar esto que hemos hecho y vamos a poner cómo se va a realizar esto. 175 00:19:09,930 --> 00:19:15,230 Lógicamente, si lo que queremos hacer es una consulta y seleccionar una serie de filas, vamos a tener que utilizar el SELECT. 176 00:19:15,230 --> 00:19:34,809 Entonces empezamos con el select. ¿Qué nos ha pedido? Nos ha pedido N reserva, nos ha pedido DNI cliente, nos ha pedido fecha de entrada y nos ha pedido el número de personas. 177 00:19:34,809 --> 00:19:38,069 cuatro campos de los 178 00:19:38,069 --> 00:19:39,670 ocho campos 179 00:19:39,670 --> 00:19:41,950 que tenía 180 00:19:41,950 --> 00:19:43,970 reservas 181 00:19:43,970 --> 00:19:45,309 si vamos a reservas aquí 182 00:19:45,309 --> 00:19:46,829 a ver dónde está 183 00:19:46,829 --> 00:19:51,519 veis, aquí teníamos a reservas 184 00:19:51,519 --> 00:19:55,440 nos pide nada más 185 00:19:55,440 --> 00:19:57,380 que en reserva, nos pide 186 00:19:57,380 --> 00:19:59,200 la fecha de entrada 187 00:19:59,200 --> 00:20:01,240 el DNI cliente y el número de personas 188 00:20:01,240 --> 00:20:03,259 esos cuatro campos que los seleccionemos 189 00:20:03,259 --> 00:20:04,980 de la tabla 190 00:20:04,980 --> 00:20:05,839 reservas 191 00:20:05,839 --> 00:20:23,079 Bien, pero nos está diciendo además que quiere que luego el encabezado de cada una de las columnas sea reserva, cliente, entrada y personas. Por lo tanto, habrá que poner un alias a cada una de ellas. Eso se pone con as y pondríamos reserva. 192 00:20:23,079 --> 00:20:38,779 el segundo sería asCliente, el tercero sería asEntrada y el cuarto asPersonas. 193 00:20:38,940 --> 00:20:43,660 Estos son los encabezados de las columnas que nos van a aparecer en la selección. 194 00:20:44,680 --> 00:20:49,640 Bien, ya tenemos esto, pero ¿esto de qué tabla lo queremos obtener? 195 00:20:49,640 --> 00:20:53,480 from, siempre detrás de un select habrá que poner un from 196 00:20:53,480 --> 00:20:57,680 de la tabla, el nombre de la tabla de la que queremos seleccionar esas columnas 197 00:20:57,680 --> 00:21:01,720 y será reservas. Pasamos a la siguiente línea 198 00:21:01,720 --> 00:21:05,740 para dejarlo más claro porque aquí van a aparecer 199 00:21:05,740 --> 00:21:09,200 las condiciones que nos han pedido. Para poner las condiciones habrá que poner un where 200 00:21:09,200 --> 00:21:13,420 donde suceda una cosa y otra 201 00:21:13,420 --> 00:21:17,380 y otra, etc. Concretamente son tres las 202 00:21:17,380 --> 00:21:19,279 condiciones. La primera condición 203 00:21:19,279 --> 00:21:21,279 era 204 00:21:21,279 --> 00:21:23,279 que el número de personas estuviera entre 1 205 00:21:23,279 --> 00:21:25,259 y 3. Podemos hacerlo de dos maneras. 206 00:21:26,079 --> 00:21:27,140 Podemos hacerlo con between 207 00:21:27,140 --> 00:21:28,740 y podemos hacerlo sin between. 208 00:21:29,240 --> 00:21:31,220 Si lo hacemos sin between, tendríamos 209 00:21:31,220 --> 00:21:33,619 que n personas 210 00:21:33,619 --> 00:21:39,640 sea 211 00:21:39,640 --> 00:21:40,660 mayor o igual 212 00:21:40,660 --> 00:21:43,539 que 1 y 213 00:21:43,539 --> 00:21:45,700 n 214 00:21:45,700 --> 00:21:47,319 personas 215 00:21:47,319 --> 00:21:49,539 sea menor o igual 216 00:21:49,539 --> 00:21:51,680 que 3. Ya tendríamos 217 00:21:51,680 --> 00:21:58,460 la primera condición. Como queremos que se cumplen las tres condiciones que nos ha pedido, esta sería 218 00:21:58,460 --> 00:22:03,559 la primera, la segunda sería que el año de entrada sea 2024 y la tercera, mes entre junio y agosto, 219 00:22:04,180 --> 00:22:09,920 si veis es un III. Entonces habrá que añadir un AND entre cada una de las condiciones. Añadimos un 220 00:22:09,920 --> 00:22:15,619 AND y ponemos la siguiente condición. Ahora, ¿qué es lo que queremos? Que el año sea el 2024. Nos ha 221 00:22:15,619 --> 00:22:25,869 puesto ahí que podemos utilizar la función year que nos saca de fecha de entrada nos va a sacar 222 00:22:25,869 --> 00:22:36,490 el año acordaos que la fecha de entrada venía con un formato que era este pongamos 2018-04-01 223 00:22:36,490 --> 00:22:43,309 este era el formato que tenía una fecha el primero el año luego el mes y luego el día entre guiones 224 00:22:44,009 --> 00:22:48,210 Entonces, esta función year de fecha de entrada va a sacar nada más que el año. 225 00:22:49,069 --> 00:22:54,289 Como queremos que el año sea el 2024, lo vamos a poner aquí. 226 00:22:55,150 --> 00:22:56,369 Y esta sería la segunda condición. 227 00:22:56,910 --> 00:23:02,809 Como esta se tiene que añadir a la tercera, habrá que poner un and y poner la tercera condición. 228 00:23:03,150 --> 00:23:08,269 La tercera condición nos dice que los meses sean entre junio y agosto. 229 00:23:08,410 --> 00:23:11,230 Ahora, como habla de meses, habrá que utilizar la función month. 230 00:23:11,230 --> 00:23:24,140 Nos vamos y ponemos month y entre paréntesis también fecha de entrada, que es el campo o la columna de la que quieres traer el mes. 231 00:23:24,140 --> 00:23:48,079 Y nos quiere decir que si no ponemos un between sería que sea mayor o igual que, como he dicho, entre junio y agosto, junio sería el mes 6, sería mayor o igual que 6, y month, fecha de entrada, menor o igual a 8. 232 00:23:48,779 --> 00:24:06,299 Ya tendríamos las tres condiciones con un AND entre ellas. De tal manera que se tienen que cumplir tanto esta, como esta, como esta. ¿Qué nos quedaría? También nos está diciendo que queremos que se ordene de mayor a menor por número de personas. Eso se hace con ORDER BY. 233 00:24:06,299 --> 00:24:29,640 Lo ponemos aquí. Order by. Por defecto, él lo ordena de manera ascendente. Si queremos que lo ordene de manera descendente, habrá que poner la cláusula dex. Pero como nos ha dicho que sea ordenado por número de personas, ponemos personas dex. Y ya lo único que nos quedaría sería el punto y coma. 234 00:24:29,640 --> 00:24:42,039 Repaso, seleccióname desde el número de reserva llamado como reserva, el DNI de cliente como cliente, el de fecha de entrada como entrada y el del número de personas como personas desde la tabla de reservas 235 00:24:42,039 --> 00:24:51,599 Donde el número de personas sea entre 1 y 3, que el año de fecha de entrada sea el 2024 y que el mes de fecha de entrada sea entre 6 y 8 236 00:24:51,599 --> 00:24:57,059 Y ordename con respecto al campo número de personas, ordenamelo de manera descendente 237 00:24:57,059 --> 00:25:16,019 ¿Eso qué querrá decir? Que si, por ejemplo, lo que se selecciona es una reserva de tres personas, una de dos y una de uno, lo primero que aparecerá, como lo va a ordenar de manera descendente con respecto al campo número de personas, irá primero el tres, luego el dos y luego el uno en cada una de las filas. 238 00:25:16,019 --> 00:25:44,420 Si le damos a ejecutar, nos va a dar un error aquí. Vamos a ver qué hay mal. An, eso está bien. Eso está bien. Menor o igual que 8, order by, de personas y de manera descendente. 239 00:25:44,420 --> 00:26:09,369 Vamos a ver si hemos puesto algún campo mal, como reserva, DNI cliente, fecha de entrada como entrada, número de personas como personas desde reservas, está bien puesto, desde reservas donde número de personas sea mayor o igual que uno y menor o igual que tres. 240 00:26:09,369 --> 00:26:24,240 está bien y esto está bien. El mes también está bien y tendría que estar perfecto. Vale, ahora sí nos ha salido. 241 00:26:24,940 --> 00:26:31,900 Vamos a borrar, era un problema de formato, pero veis que aquí ya nos aparecen. Veis que nos lo ha ordenado, 242 00:26:32,279 --> 00:26:37,160 como hay dos con dos números de personas, pues nos lo ha ordenado primero esta, luego esta y luego esta. 243 00:26:37,160 --> 00:26:58,220 Y nos he sacado todas las que son de 2024, todas las que están entre el mes 6 y 8, ¿lo veis? Y serían estas tres reservas, la 1, la 2 y la 3. Bien, este sería el primer punto que hemos realizado con respecto a cada uno de los puntos que nos aparecen aquí. 244 00:26:58,220 --> 00:27:04,519 Vamos a hacer el mismo pero con Between para que entendamos cómo funciona Between. 245 00:27:04,720 --> 00:27:16,720 Si nosotros queremos quitar esto que parece que es mucho más largo y podemos utilizar Between en lugar de todo lo que hemos añadido aquí. 246 00:27:16,720 --> 00:27:31,339 podemos quitar esto y podríamos poner between entre 1 y 3 y nos haría exactamente lo mismo y 247 00:27:31,339 --> 00:27:39,319 aquí pasaría lo mismo aquí en mes de entrada podríamos quitar esto de aquí y podríamos poner 248 00:27:39,319 --> 00:27:42,799 que el mes de entrada esté between 249 00:27:42,799 --> 00:27:46,700 entre 6 y 8. 250 00:27:48,119 --> 00:27:51,500 Si le damos a agotar, nos va a salir 251 00:27:51,500 --> 00:27:54,920 exactamente lo mismo. ¿Veis la diferencia? 252 00:27:55,039 --> 00:27:58,940 La diferencia entre el poner between, entre 1 y 3, entre un par de valores 253 00:27:58,940 --> 00:28:03,759 es igual a decir que sea mayor o igual que 1 y menor o igual que 3. 254 00:28:03,759 --> 00:28:08,059 Y aquí igual. Between nos está diciendo que sea mayor o igual que 6 255 00:28:08,059 --> 00:28:12,660 y menor o igual que 8, veis que es más corto y más fácil de usar 256 00:28:12,660 --> 00:28:16,859 hemos terminado el primer punto que sería este de aquí 257 00:28:16,859 --> 00:28:20,259 y vamos a pasar a otro punto 258 00:28:20,259 --> 00:28:24,940 vamos a ver por ejemplo el de habitaciones 259 00:28:24,940 --> 00:28:29,099 por estado y por planta, tenemos ahora mismo este de aquí 260 00:28:29,099 --> 00:28:32,720 habitaciones de estado por planta y nos dice listado 261 00:28:32,720 --> 00:28:35,640 con el código habitación tipo planta y estado 262 00:28:36,480 --> 00:29:01,630 Para repasar la tabla de habitaciones, que la tenemos aquí, esta sería la tabla de habitaciones, veis que tenía un código de habitación, que era la clave primaria, que era una clave primaria artificial, con un autoincrement, tenía una planta, un tipo, un precio noche y un estado, que era una enumeración. 263 00:29:01,630 --> 00:29:10,069 numeración. Lo que nos está pidiendo es el listado con el código de habitación, el tipo planta y 264 00:29:10,069 --> 00:29:16,390 estado. Nos está pidiendo esos cuatro campos. Vamos a ponerlos de color rojo. De las habitaciones que 265 00:29:16,390 --> 00:29:21,730 están libre, ocupada o mantenimiento, vamos a poner que esta es la primera condición. Vamos a poner 266 00:29:21,730 --> 00:29:31,470 de color azul y cuya planta sea la 1 o la 2. Vamos a ponerlo de color y que ordenes el estado en 267 00:29:31,470 --> 00:29:37,950 función del estado y luego por planta vale entonces vamos a hacer vamos a borrar esta 268 00:29:37,950 --> 00:29:50,880 otra de aquí y la borramos y ahora lo que vamos a hacer es vamos a seleccionar lo primero select 269 00:29:50,880 --> 00:30:01,240 y que nos ha pedido el código habitación nos ha pedido el tipo sql maya sql no distinguen 270 00:30:01,240 --> 00:30:11,920 de mayúsculas y minúsculas, está por convenio, pues es mucho más de mejor uso el poner, 271 00:30:12,039 --> 00:30:17,119 por ejemplo, las palabras clave, ponerlas en mayúsculas y el resto en minúsculas. 272 00:30:17,119 --> 00:30:24,119 Vamos a hacerlo ahora para que lo hagamos de una manera más correcta. 273 00:30:25,059 --> 00:30:35,250 Vamos a ponerlo así y aquí tendríamos tipo, tendríamos la planta y teníamos el estado. 274 00:30:36,890 --> 00:30:38,869 Estos son los cuatro campos que queremos seleccionar. 275 00:30:39,130 --> 00:30:41,150 ¿De qué tabla? De habitaciones, hemos visto, ¿no? 276 00:30:41,250 --> 00:30:47,970 Pues entonces vamos a poner el From Habitaciones. 277 00:30:48,529 --> 00:30:53,450 Bien, ya tenemos la selección de los campos y desde qué tabla lo vamos a obtener. 278 00:30:54,130 --> 00:30:55,329 Vamos a poner ahora las condiciones. 279 00:30:55,710 --> 00:31:00,490 Vamos a poner el Where, puesto que nos ha puesto una serie de condiciones. 280 00:31:01,009 --> 00:31:01,930 ¿Cuáles son las condiciones? 281 00:31:01,930 --> 00:31:25,230 Pero vamos aquí, nos está diciendo que las habitaciones están libre, ocupada o en mantenimiento. Con lo cual tenemos que introducir un nuevo elemento que es el elemento IN. ¿Por qué? IN se va a basar, lo vamos a utilizar cuando queremos que un conjunto de valores estén contenidos todos ellos. 282 00:31:25,230 --> 00:31:47,390 Entonces, si nosotros queremos que estén contenidos el conjunto de valores estado, o sea, libre, ocupado y mantenimiento, se realiza a través de la cláusula IN. Entonces, ¿cuál es el campo implicado que tiene esos valores de libre, ocupado y mantenimiento? Pues será estado. 283 00:31:47,390 --> 00:31:49,589 vamos a poner estado 284 00:31:49,589 --> 00:31:53,880 al poner ahora el in 285 00:31:53,880 --> 00:31:55,660 estamos diciendo que estado 286 00:31:55,660 --> 00:31:58,640 contenga un conjunto de valores 287 00:31:58,640 --> 00:32:00,259 que van a ser justamente 288 00:32:00,259 --> 00:32:01,279 los que nos piden