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

Analizamos bases de datos y el lenguaje SQL. (Parte 2) - "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. "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 1Buena salud, queridos lectores. Hoy hablaremos un poco y escribiremos más, porque nuestras manos recuerdan mucho mejor que nuestros ojos. Quizás te preguntes: ¿por qué usamos MySQL? Existen, por ejemplo, el mismo PostgreSQL y otras soluciones. Aquí todo es sencillo. En primer lugar, es gratis. En segundo lugar, tiene una cómoda interfaz UI (hablaremos de ello en un artículo aparte). En tercer lugar, me resulta familiar y agradable. Además de todo lo anterior, MySQL también es muy común.

revisando la tarea

La última vez di una tarea: instalar MySQL en mi máquina e iniciar sesión. A través de la consola, o de alguna otra forma. ¿Está todo hecho? "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 2¡Bien hecho a quienes lo hicieron! No importa el nivel que tengas en JavaRush, es importante poder instalar y configurar las herramientas necesarias para trabajar según los manuales. Y os aseguro que habrá muchos de ellos. Quienes lo intentaron pero no lo consiguieron tampoco tienen miedo. Esto no siempre sucede la primera vez: a veces es necesario hacer una pausa y volver a intentarlo con nuevas fuerzas. ¿Quién instaló MySQL usted mismo? Escriba "+" en los comentarios para que sepa que alguien lo está haciendo. Yo también haré esto. Como ya no tengo una computadora portátil con Windows, la mostraré en una MacBook. No creo que el proceso de instalación sea muy diferente. Para aquellos que quieran instalarlo ellos mismos usando el manual en inglés, haga clic aquí .

Instalación de MySQL en MacOS

En primer lugar, vaya al siguiente enlace , seleccione el sistema operativo, ya sea Windows, Ubuntu o MacOS, como se muestra a continuación: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 3Descargar e iniciar. Sin embargo, no todo me salió bien de inmediato. Resultó que Apple no permite la instalación de la última versión: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 4puedes, por supuesto, desactivar esto, pero la MacBook funciona y no me meteré con su configuración. Por lo tanto, mediante prueba y error, encontré una versión que se puede instalar: esta es 5.7.21 . Para buscar otras versiones, vaya a la pestaña Archivo y seleccione la versión deseada: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 5A continuación, ejecute el archivo descargado. Pulsa siguiente, siguiente, siguiente, pero al final ¡cuidado! Habrá un nombre de usuario y contraseña para iniciar sesión en la base de datos. Para mí se veía así: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 6Aquí dice que habrá un usuario con el nombre root y la contraseña Vac/zto=.24q . Esto completa la instalación.

Inicie sesión en la línea de comando de MySQL

Para iniciar sesión, debe asegurarse de que el servidor MySQL esté encendido. Para hacer esto, vaya a Preferencias del Sistema , busque el ícono de MySQL allí: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 7vaya a él y vea que primero debe encender el servidor. Para hacer esto, simplemente haga clic en Iniciar servidor MySQL y listo. Sí, también puedes marcar la casilla para que el servidor se inicie en segundo plano cada vez que se inicie la máquina. "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 8Es importante tener en cuenta que iniciaré todas las solicitudes en la terminal con el símbolo $ para que quede claro. A continuación, debe conectarse directamente al servidor MySQL a través de la línea de comando. Para hacer esto, abre la terminal y escribe: $ mysql Y hay dos opciones:
  1. Si la respuesta es "ERROR 1045 (28000): Acceso denegado para el usuario 'roman_beskrovnyi'@'localhost' (usando contraseña: NO" , entonces esto significa que el servidor está instalado y se está recuperando. Solo necesita pasar el comando correcto lo.
  2. Si la respuesta es comando no encontrado: mysql , está bien, simplemente no hay ningún enlace al servidor. Para hacer esto, necesitarás crear un alias con la variable mysql, por lo que escribimos la siguiente línea:

    $ alias mysql=/usr/local/mysql/bin/mysql

    Esto sólo ayudará para esta sesión de terminal. Pero no necesitamos más: definitivamente no trabajaremos con la terminal todo el tiempo.

  3. MySQL no está instalado, no engañes a tu computadora.
A continuación, usamos el nombre y la contraseña proporcionados durante la instalación y escribimos: $ mysql --user=root -p"Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 9 Allí escribimos la contraseña y estaremos contentos con esta forma: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 10Sólo la última línea dice que hemos iniciado sesión en MySQL. servidor de terminal. Pero esta contraseña de root resultó ser de un solo uso y es necesario cambiarla por otra. Por motivos de seguridad, claro. Si no cambiamos esto e intentamos crear una nueva base de datos en el servidor, recibiremos la siguiente respuesta: ERROR 1820 (HY000): Debe restablecer su contraseña usando la declaración ALTER USER antes de ejecutar esta declaración . "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 11Están obligados, por así decirlo. Bueno, está bien, ¿es difícil para nosotros? Simplifiquemos la contraseña (esto es sólo para trabajo local; para trabajo real, la contraseña debe ser compleja, por supuesto). Digamos root∫ , como el nombre de usuario. Para cambiar la contraseña, debe ingresar la línea: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Y la respuesta será así: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 12Para asegurarnos de que todo funciona correctamente, intentemos crear una nueva base de datos usando la siguiente sintaxis : $ CREATE DATABASE test_db; Para asegurarse de que se haya creado dicha base de datos en el servidor, escriba el comando: $ SHOW DATABASES; Y como resultado obtenemos lo siguiente: "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 13Eso es todo :) Es imposible decir que fue simple y rápido. Por lo tanto, quien lo hizo él mismo tiene un respeto especial. Para los que no lo habéis hecho, no os preocupéis, existen manuales para todo tipo de instalación: Allí se describe todo con bastante sensatez. Lo único es que todo está en inglés. Ahora escribimos nuestras primeras líneas en SQL.

Escribiendo nuestras primeras líneas en SQL

Como habrás notado anteriormente, conocemos dos comandos:
  1. CREAR BASE DE DATOS : crea una base de datos en el servidor;
  2. MOSTRAR BASES DE DATOS : muestra todas las bases de datos creadas y disponibles en el servidor.
Observo que a SQL no le importa cómo escribimos sus comandos, ya sea todos en mayúsculas o no. Sin embargo, se considera de buena educación escribir comandos en letras mayúsculas. A continuación, para eliminar una base de datos, debe escribir el comando DROP DATABASE nombre_base de datos ; donde nombre_base_datos es el nombre de la base de datos que queremos eliminar. Ya hemos creado una base de datos de prueba llamada test_db , así que eliminémosla. Para ello escribimos: $ DROP DATABASE prueba; Vale la pena señalar que la respuesta Consulta OK, 0 filas afectadas (0,02 segundos) es muy importante, ya que confirma que la consulta fue exitosa. Además, le indica cuántas filas de las tablas cambió esta consulta y durante qué tiempo. "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 15Por lo general, la palabra DROP se encarga de eliminar algo. En este caso, eliminamos la base de datos. Pero esto también se puede utilizar para otros fines (por ejemplo, dejar caer una mesa). Y ahora, créanme , revisen el resultado, veamos cuántas bases de datos quedan: $ MOSTRAR BASES DE DATOS; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 16Como podemos ver, no existe ninguna base de datos llamada test_db. CHTD :D

Crea tu propia base de datos y tabla

Crear una base de datos de ciudades: $ CREAR BASE DE DATOS ciudades; Para trabajar en una base de datos específica, debe iniciar sesión en ella. Para hacer esto, use el comando USE nombre_base de datos , después de lo cual todos los comandos para trabajar con tablas se ejecutarán en esta base de datos. $ USAR ciudades; Como se puede ver en la respuesta: La base de datos cambió , la transición a esta base de datos fue exitosa. "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 17El siguiente paso es crear la tabla. ¿Cual? Bueno, primero creemos una tabla con países. ¿Porqué es eso? Porque las ciudades necesitan una clave externa para el país en el que se encuentran. Y se puede obtener después de que estos países generalmente comiencen a estar en la base de datos (en adelante, abreviada como base de datos). Como recordamos del artículo anterior , en la tabla donde se describen los países, tenemos dos campos: ID y nombre, donde ID es un identificador único y nombre es el nombre del país. Por lo tanto, crear una base de datos de este tipo es muy fácil. Escribimos: $ CREAR TABLA país (id INT, nombre VARCHAR(30)); "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 18Como puedes ver, todo salió bien. Por analogía con MOSTRAR BASES DE DATOS, podemos mirar la lista de tablas: $ MOSTRAR TABLAS; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 19Aquí está, nuestra mesa. Ahora aprendamos cómo eliminar tablas. Para ello escribimos: $ DROP TABLE país; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 20Es importante tener en cuenta que una vez que se elimina una tabla o base de datos, ¡no se puede restaurar!

trabajando con la mesa

Restauremos la tabla que creamos. Para hacer esto, solo necesitas repetir lo que ya has hecho. Para ver la estructura de la tabla, debe utilizar el siguiente comando: DESC nombre_tabla : $ DESC país; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 21Como puede ver, toda la información sobre la tabla se registra aquí. Para agregar algo a una tabla, debe usar el comando INSERT INTO table_name VALUES() . Agreguemos tres registros para tres países: $ INSERT INTO country VALUES (1, 'Ucrania'); $ INSERTAR EN VALORES del país (2, 'Rusia'); $ INSERT INTO país VALUES(3, 'Bielorrusia'); "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 22Para ver lo que está almacenado en la base de datos, utilizaremos una solicitud simple para obtener datos. Para hacer esto, queremos obtener los datos de todos los campos de la tabla de países. Recuerde atentamente la frase anterior porque la consulta sql será así: $ SELECT * FROM country; Donde * significa que debe tomar todos los campos. "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 23Así de bonitos nos hemos puesto. Si queremos obtener sólo un campo concreto, no hay problema: en lugar de una estrella, escribimos los nombres de los campos que deben estar separados por comas. Pruébelo usted mismo ;) Ya hemos creado una tabla, pero de alguna manera no tenemos suficiente información sobre ella. El tamaño de la población ciertamente no vendría mal, ¿verdad? ¿Y, cómo hacerlo?
  1. Agregue un nuevo campo al esquema de la tabla: población.
  2. Actualizar las entradas existentes.
Para el primero, usaremos el comando ALTER TABLE nombre_tabla AGREGAR COLUMNA . En general, ALTER TABLE es un conjunto de comandos para operaciones DDL (¿recuerdas qué es esto? Estaba en el artículo anterior). Por cierto, SELECT se refiere a una operación DML. Escribamos lo siguiente: $ ALTER TABLE país ADD COLUMN población INT; $ DESC país; "Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 24Como puede ver en la figura, agregamos exitosamente un nuevo campo a la tabla y verificamos con el segundo comando que el campo esté en el esquema. El segundo paso es actualizar las entradas de la tabla y asignar valores. Tomemos el número de Wikipedia. No es que confíe en ellos, pero aun así, esta es la forma más rápida y sencilla. Para hacer esto, use otro comando DML. Pero primero, digamos lo que queremos hacer: queremos actualizar la tabla de países, hacer que el campo de población sea igual a 41806221 en el registro donde id = 1. Y así es como se ve esta construcción: ACTUALIZAR nombre_tabla SET fila_tabla1 = valor WHERE fila_tabla2 = valor2; En base a ello escribimos: $ ACTUALIZAR país SET población = 41806221 WHERE id = 1; Aquí utilizamos la palabra clave WHERE"Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 25 por primera vez . Es necesario agregar valores para filtrar. Por ejemplo, esta vez dijimos que es necesario actualizar solo el campo (campos) cuya identificación es igual a uno (hasta que le dijimos a SQL que esta es la clave principal; puede haber varios). También podríamos especificar una condición como WHERE id > 2. Si no hubiéramos especificado ningún filtrado, este valor se habría escrito en todos los registros de la tabla. Para Rusia, Bielorrusia y otros países, actualícese ;) Ahora intentemos obtener datos de la tabla para los campos de nombre y población, siempre que la identificación sea mayor que 1. $ SELECT nombre, población FROM país WHERE id >1; Por lo tanto, recibimos solo aquellos campos que nosotros mismos queríamos. Usando INSERT INTO podemos especificar qué campos queremos agregar y cuáles queremos dejar vacíos. Para ello escribimos: $ INSERT INTO país (nombre, población) VALUES('Georgia', 1234566); Para comprobar qué sucedió, veamos la lista de todos los campos: $ SELECT * FROM country; Sin una identificación, la entrada es mala y la población, por supuesto, se tomó de la cabeza, por lo que es necesario eliminarla. Utilice el comando ELIMINAR DEL nombre_tabla : $ ELIMINAR DEL país DONDE nombre = 'Georgia'; De esta manera aprendimos cómo eliminar un campo de la tabla."Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 26"Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 27"Proyecto Java de la A a la Z": analizamos bases de datos y el lenguaje SQL.  Parte 2 - 28

Tarea

La tarea será la siguiente:
  1. Debe agregar una clave principal (CLAVE PRIMARIA) del campo ID al esquema de la tabla de países.
  2. Agregue otro país a la tabla de países: Moldavia.
  3. Según el esquema del artículo anterior, cree una tabla de ciudad, que contendrá todos los campos descritos. Los nombres de los campos serán los siguientes: id, nombre, id_país, población.
  4. Agregue una clave principal a la tabla de ciudades.
  5. Agregue una clave externa a la tabla de ciudades.
La tarea es interesante, para los que la conozcan será rápida y sencilla. Para aquellos que no lo han hecho, les servirá como un excelente refuerzo del material de este artículo.

resumámoslo

Hicimos muchas cosas en este artículo. Primero, instalamos e iniciamos el servidor de base de datos MySQL. En segundo lugar, aprendimos una lista completa de palabras clave y consultas, con la ayuda de las cuales ahora podemos crear/eliminar bases de datos y tablas. Aprendimos cómo agregar datos a tablas, actualizarlas y eliminarlas. Aquí están todos los comandos que utilizamos, junto con sus descripciones:
  • CREAR BASE DE DATOS nombre_base de datos; - crear una nueva base de datos
  • MOSTRAR BASES DE DATOS; — ver la lista de bases de datos
  • DROP DATABASE nombre_base de datos; - eliminar base de datos
  • USE nombre_base de datos; - trabajar en la base de datos
  • CREAR TABLA nombre_tabla (id INT, ....); - crear una tabla
  • MOSTRAR MESAS; — ver la lista de tablas
  • DESC TABLA nombre_tabla; — ver el diagrama de la tabla
  • DROP TABLE nombre_tabla; - eliminar tabla
  • INSERTAR EN nombre_tabla VALORES (); - agregar un campo a la tabla
  • SELECCIONE * DESDE nombre_tabla DONDE fila_tabla = valor; — obtener campos en la tabla bajo la condición después de DONDE
  • SELECCIONAR * DESDE nombre_tabla; - obtener todos los campos de la tabla
  • ALTER TABLE nombre_tabla AGREGAR COLUMNA nombre_columna COLUMN_TYPE; — agregar un nuevo campo al esquema de la tabla
  • ACTUALIZAR talbe_name SET talbe_row1 = valor1 DONDE table_row2 = valor2; — actualizar registros en la tabla: establece los valores de un campo sujetos a la condición para otro campo
  • ELIMINAR DE nombre_tabla DONDE fila_tabla1 = valor1; — eliminar un campo (o campos) de una tabla bajo una determinada condición.
Creo que hicimos un excelente trabajo contigo. Invito a todos a quienes les gusta mi trabajo a suscribirse a mi cuenta de GitHub , donde publico proyectos interesantes y desarrollos que están sucediendo en mi carrera. Invito a todos los que estén interesados ​​en trabajar en código abierto a participar en mis proyectos (repositorios). Gracias a todos por su atención. Estén atentos al próximo artículo sobre bases de datos que estará disponible próximamente.

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