JavaRush /Blog Java /Random-ES /Analizamos bases de datos y el lenguaje SQL. (Parte 4 - r...

Analizamos bases de datos y el lenguaje SQL. (Parte 4 - revisar la tarea) - "Proyecto Java de la A a la Z"

Publicado en el grupo Random-ES
Un artículo de una serie sobre la creación de un proyecto Java (los enlaces a otros materiales se encuentran al final). Su objetivo es analizar tecnologías clave y el resultado es escribir un bot de Telegram. Artículos anteriores y análisis de deberes sobre bases de datos: 1 , 2 , 3 . A todos los que tuvieron paciencia y resistencia, a todos los que han estado leyendo este cuarto artículo conmigo, bien hecho. Como dicen, el que camina puede dominar el camino. Esta semana se publicará el artículo final sobre Bases de Datos, en el que hablaremos sobre tipos de relaciones y uniones . Pero antes de abordar la nueva información, revisemos nuestra tarea... Realmente me sentí como un maestro. No te enfades conmigo: no tengo formación pedagógica, eso seguro. Dado que la semana pasada una revisión detallada del control remoto ocupó la mayor parte del material, decidí dividir el análisis de los deberes y la revisión del material nuevo en dos partes."Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 1

En realidad, análisis de tareas.

Definitivamente me alegro de que haya personas que hagan EP y hablen de ello. ¡Esto es genial! Estoy lo más seguro posible de que simplemente leer sin consolidar conocimientos es un camino a ninguna parte. Por lo tanto, todos los que hicieron o intentaron hacer - respeto. Déjame recordarte las condiciones de las tareas:
  1. Comprenda el operador HAVING y escriba una consulta de ejemplo para las tablas de nuestro ejemplo. Si necesitas agregar algunos campos o más valores para que quede más claro, agrégalos. Si alguien quiere, escriba su solución de ejemplo en los comentarios, así también puedo comprobarla si tengo tiempo.
  2. Instale MySQL Workbench para trabajar con la base de datos a través de la interfaz de usuario. Creo que ya hemos practicado bastante trabajando desde la consola. Conéctese a la base de datos. Si utiliza otra cosa para trabajar con la base de datos, no dude en omitir esta tarea. Aquí y más usaré sólo MySQL Workbench.
  3. Redactar solicitudes de recibo utilizando nuestros datos:
    1. el país más pequeño/más poblado;
    2. número promedio de habitantes del país;
    3. número medio de habitantes en países cuyos nombres terminan en “a”;
    4. el número de países con una población de más de cuatro millones;
    5. ordenar los países por número decreciente de habitantes;
    6. ordenar los países por nombre en orden natural.

Hablemos de TENER

Conocer el operador Taking puede ayudarte a pasar más de una entrevista en la que habrá problemas de SQL. Por lo tanto, entenderlo es extremadamente importante. Da la casualidad de que no se pueden utilizar condiciones para agregar funciones (SUM, MIN, MAX, AVG). Además, HAVING se utiliza para campos que están agrupados. ¿Qué significa? Por ejemplo, si queremos conseguir países donde el número medio de habitantes en las ciudades sea superior a 50.000 habitantes, no podemos prescindir de HAVING. Según tengo entendido, esto se hace porque la agregación ocurre después de que se ha ejecutado la declaración WHERE y es imposible agregarle valores de agregación que se calcularán más adelante. Incluso si hasta ahora mis opiniones no aportan mucho a la comprensión, puedes simplemente aceptar esto como un hecho y seguir adelante. En la programación, a menudo sucede que si algo no está claro en un momento dado, puede significar que el cerebro simplemente aún no lo ha digerido. Duerme con este pensamiento y al día siguiente todo quedará más claro.

Instalación del banco de trabajo MySQL

Aquí y más usaré Workbench para consultas. Te mostraré lo que necesitas para instalar y crear una conexión a la base de datos. Este es un producto de Oracle, por lo que sólo necesitas ir a su sitio web y seleccionar la versión y el sistema operativo que deseas. Para ello, sigue este enlace : "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 2Aquí podrás seleccionar exactamente el sistema operativo que necesitas. Haga clic en Descargar , pero en lugar de descargar veremos esta ventana: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 3No se pierda, solo busque el botón llamado No, gracias, simplemente inicie mi descarga y comenzará la descarga. ¿Por qué hacen eso? Probablemente, para que más personas se registren con ellos, esto no nos importa. Después de la descarga exitosa, ejecute el archivo de instalación. En MacOS se ve así: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 4Simplemente arrastre el ícono y listo, la instalación estará completa. No es tan difícil como instalar MySQL, ¿verdad? O simplemente nos hemos acostumbrado y tenemos más experiencia ;) La segunda parte de esta tarea es establecer una conexión con nuestra base de datos. ¿Qué se necesita para esto? Haga clic en el signo más al lado de Conexiones MySQL: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 5En la ventana que aparece, ingrese los datos necesarios:
  • Nombre de la conexión : el nombre de nuestra conexión. Escribe nombres lo más claros posible para que no haya problemas de identificación más adelante. Le doy a esta conexión el nombre JRTB_DB ;
  • Nombre de host : ya estará configurado como local 127.0.0.1 (también conocido como localhost). En nuestro caso, no es necesario cambiar nada, ya que la base de datos está instalada en la computadora, pero si la base de datos está en otro lugar, entonces el host (ip de la máquina en la que se ejecuta la base de datos) debe cambiarse en consecuencia;
  • Nombre de usuario : también puede especificar su usuario si es necesario. Si no ha agregado nada en esta clave, déjela sin cambios;
  • Contraseña : haga clic en Guardar en llavero y establezca exactamente la contraseña que usted mismo estableció. Dejé todo simple: root .
Para comprobar si la conexión funcionará, haga clic en Probar conexión : "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 6Bueno, si todo se hizo correctamente, el resultado no tardará en llegar: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 7ahora tenemos una conexión guardada en la base de datos y no necesitaremos crear una conexión y completarla. en el nombre y la contraseña cada vez. Y esta felicidad se verá así: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 8entramos en la conexión recién creada y vemos la ventana de solicitud. Para estar seguros de que todo está correcto, revisemos la lista de bases de datos, vayamos a la nuestra y obtengamos todos los datos de las ciudades: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 9Y aquí tenemos carta blanca para lo que necesitamos. La primera sección es responsable del script que ingresamos. A continuación, en la Cuadrícula de resultados , vemos el resultado de la última operación en el script. Y Action Output muestra una lista de operaciones y su resultado. Algo muy útil, quiero decirte: con su ayuda puedes controlar la velocidad de ejecución de ciertos scripts. ¿Por qué es importante? Uno de los problemas más comunes en la velocidad de ejecución de tareas en una aplicación es la velocidad de ejecución de consultas en la base de datos. Aquí podrás comprobarlos a mano de forma rápida y cómoda.

Redactamos las solicitudes necesarias.

Sólo nos quedan 7 solicitudes para completar, ¡vamos!

  1. Consigue el país más poblado. Aquí podrás ir con astucia y tomar varias rutas:

  • Según la tabla de países

Luego solo necesitamos ordenar nuestra consulta por población y tomar solo un registro. Para hacer esto, debe agregar un operador LÍMITE al final del script y especificar la cantidad requerida: $ SELECT * FROM country ORDER BY población DESC LIMIT 1;"Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 10

  • Según la tabla de la ciudad.

Aquí todo es más interesante, porque la petición será más compleja, pero también más interesante. Como todavía no tenemos idea sobre las uniones, solo podemos obtener el ID del país: $ SELECT country_id, SUM(población) FROM city GROUP BY country_id ORDER BY SUM(población) DESC LIMIT 1; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 11Aquí hicimos algo interesante: recopilamos la suma de la población de todas las ciudades conocidas de cada país, las clasificamos según esta suma y tomamos el primer elemento. Bueno, ¿es genial? Estoy encantado :D Después de esto inmediatamente te sientes como un gurú de las consultas... (no por mucho tiempo, por supuesto))

  1. Consigue el país más pequeño. Aquí podrás ir con astucia y tomar varias rutas.

En este caso todo será exactamente igual. La única diferencia es que la clasificación se invertirá, eso es todo. Por lo tanto, simplemente escribo solicitudes:

  • Según la tabla de la ciudad.

$ SELECCIONAR id_país, SUMA(población) DESDE ciudad GRUPO POR id_país ORDENAR POR SUMA(población) LÍMITE 1;

  • Según la tabla de países

$ SELECCIONAR * DEL país ORDENAR POR población LÍMITE 1; ¡Y comprueba el resultado por ti mismo!

  1. Número medio de habitantes del país

Aquí también las especificaciones técnicas no son exactas, como si las hubiera escrito el director... ¿Por qué he decidido esto? Porque no está claro en qué mesa trabajar. Pero esto es normal: simplemente no hay tareas en las que todo sea inmediatamente claro y comprensible. Por lo tanto, debe leer atentamente las tareas y, si tiene preguntas, ¡pregúntelas de inmediato! Así es, un comentario. Teniendo en cuenta los datos que tenemos en la base de datos, buscaremos utilizando datos de ciudades. Para hacer esto, escriba la siguiente consulta: $ SELECT country_id, AVG(población) FROM city GROUP BY country_id; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 12Aquí es simple: usamos la función AVG y agrupamos los registros de nuestras ciudades por país.

  1. Número medio de habitantes en países cuyos nombres terminan en “a”

Habrá un ligero cambio aquí a pedido. Necesitamos agregar filtrado por nombres antes de realizar la agrupación. Hago mis deberes, como todos los estudiantes, antes de publicar este artículo y entiendo que este problema no se puede resolver sin uniones. ¿Por qué? Porque además del documento de identidad del país, también necesitamos su nombre. Y esto no se puede hacer sin unir dos tablas en un solo registro. Por lo tanto, haré esta tarea, por supuesto, pero esta es mi jamba...))) Quería idear una tarea usando LIKE en la solicitud...) $ SELECT ci.country_id, AVG(ci.population ) DESDE la ciudad ci INNER JOIN país co ON ci.country_id = co.id DONDE co.name LIKE "%a" GROUP BY country_id; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 13¿Que pasó aquí? Primero, unimos registros de las tablas de ciudades y países usando la clave externa country_id, filtramos por nombres de países para que terminaran en "a" y solo luego los agrupamos por country_id.

  1. Número de países con una población superior a cuatro millones

Aquí sólo necesitamos usar la función CONTAR y agregar filtrado por población: $ SELECT COUNT(*) del país DONDE población > 4000000; Como resultado, descubrimos que existen 3 de esos países. ¿Es correcto? Sí, sólo Moldavia no supera este hito.

  1. Ordenar países por número decreciente de habitantes

Para hacer esto, necesitamos usar el operador ORDER BY que ya conocemos. Pero tenga en cuenta que, de forma predeterminada, la clasificación se realiza en orden natural. Para los números, esto significa que está ordenado en orden ascendente; para las cadenas, significa que está ordenado comenzando desde los primeros caracteres. Si necesitamos un orden descendente, necesitamos el inverso del natural: $ SELECT * FROM country ORDER BY población DESC;"Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 14

  1. Ordenar países por nombre en orden natural

Aquí es donde resultará útil el conocimiento de cuál es el orden natural. Dado que es el valor predeterminado, es muy fácil para nosotros: $ SELECCIONAR * DEL país ORDENAR POR nombre;"Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 4 - revisar la tarea - 15

En lugar de salida

Da la casualidad de que el tamaño de la solución de tarea será muy grande, por lo que haremos una excepción: publico este artículo con un cheque y el viernes publicaré nuevo material con conexiones y uniones. Gracias a todos por leer. ¡Hasta el viernes!

Al principio de este artículo encontrará una lista de todos los materiales de la serie.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION