Esta es la cuarta entrega donde muestro ejercicios propuestos con su respectiva solución para practicar consultas SQL usando el gestor MySQL o MariaDB. Básicamente se proponen algunos ejercicios de consultas sobre un banco de datos ya definido, y luego se resuelven.
La primera parte está aquí, la segunda aquí y la tercera aquí. Hoy vamos a ver algunas consultas y vamos a trabajar con datos de temperatura y humedad por fecha y hora que recogimos usando el sensor DHT22.
Entre algunas funciones que veremos está MAX, MIN, IF, AVG, SUBSTR y las operaciones usando WHERE, ORDER BY, DISTINCT y LIMIT. Verás que será muy entretenido y que sacaremos algunos ejercicios de todos estos datos.
Como te dije anteriormente, vamos a usar datos de medición de temperatura y humedad. La tabla tiene un id, temperatura, nivel de humedad y la fecha y hora del registro.
Puedes importarlo usando phpmyadmin, copiando y pegando o usando cualquier forma que tú conozcas.
Lo único importante aquí es que la tabla se llama dht_log
, la humedad corresponde al campo humidity
, la fecha a date
y la temperatura a temperature
.
Pasemos a la lista de ejercicios propuestos. Recuerda que sería bueno que practiques antes de ver la solución.
Calor
. Si no, imprimir Frio
(sin acento, pues causa errores)Ahí tienes los comentarios si quieres proponer algunos ejercicios usando este banco de datos.
En este caso simplemente invocamos a MAX
para mostrar la máxima humedad registrada. Como no se nos piden otros datos, la consulta queda así:
Ahora usamos la función MIN
y la consulta queda muy similar:
Para esta consulta decidí usar ORDER BY
, ordenando los datos y seleccionando solo el primero con un LIMIT
. La solución queda así:
Fíjate en que en el primer caso es en orden ascendente, y en el segundo es descendente.
Esta consulta es muy parecida a la anterior, solo hay que seleccionar más filas.
Para esta consulta vamos a cortar la cadena. Como sabemos que la fecha sin hora ocupa 10 caracteres, usamos la función SUBSTR
para cortar la cadena desde 1 hasta 10, trayendo simplemente la fecha. Después descartamos los demás datos con LIMIT
.
En este caso es como la consulta anterior en donde mostramos la mayor temperatura, pero ahora ponemos un límite de 10.
Para este ejercicio vamos a comparar las fechas como si fueran cadenas, y de hecho eso son, simples cadenas que se pueden comparar lexicográficamente de manera similar a cuando comparamos números, pero ahora se comparan según el alfabeto.
Entonces usamos SELECT
y WHERE
con los operadores mayor qué, y menor qué.
De nuevo vamos a usar WHERE
pero ahora comparando números. Queda así:
En este caso se solicitaron los registros completos, por eso mostramos la fecha, temperatura y humedad en la solución a este ejercicio de SQL.
Es decir, solo mostrar todas las temperaturas registradas pero sin repetir alguna. Para este caso simplemente hay que usar DISTINCT
. Este modificador permite seleccionar solo datos únicos:
Ahora vamos a usar AVG
, que es Average o promedio traducido al español. Queda así:
En este caso no estamos limitando los datos, así que se va a seleccionar el promedio de todos los valores.
Hacemos lo mismo que en la consulta anterior pero ahora con la humedad:
Volvemos a usar AVG
pero ahora vamos a limitar con un WHERE
usando comparación de cadenas:
Aplicamos un pequeño truco, pues no hay fecha más allá de las 23 con 59 con 59 ya que si así fuera, sería 25 de diciembre. Lo mismo pasa con la otra fecha, la del límite inferior.
Imprimir esta columna sin acento, pues puede causar errores. Ahora vamos a usar la función IF. La solución queda así:
Aquí te dejo todas las consultas que resuelven los problemas propuestos en SQL. También incluyo el comentario que indica cuál ejercicio se está resolviendo:
Y aquí la salida general. Cuidado, pues es mucho texto. Solo le falta una portada para que sea una biblia:
Con eso terminamos por hoy. Te dejo más cosas sobre SQL y MySQL por aquí.
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Esta web usa cookies.