Com carregar la base de dades d'un problema al DBeaver


Aquesta guia explica com carregar al DBeaver la base de dades d'un problema de SQL (la que baixes amb el botó Descarrega la base de dades) per poder provar les consultes al teu ordinador abans d'enviar-les al jutge.

Les captures són del DBeaver Community 26.2 en anglès; amb una altra versió o un altre sistema operatiu, els menús poden ser una mica diferents.

Què necessites

  • El DBeaver Community, que és gratuït. És només el client: l'eina des d'on escrius i executes les consultes.
  • Un servidor de bases de dades al teu ordinador, del mateix tipus que el del problema: MariaDB o MySQL (per exemple, el que s'instal·la amb XAMPP, on l'usuari és root i la contrasenya és buida) o PostgreSQL. El tipus surt a la frase que hi ha al costat del botó de descàrrega.
  • El fitxer .sql de la base de dades (pas 1). Les bases de MongoDB no es poden carregar amb el DBeaver Community.

1. Descarrega el fitxer

Entra al problema, prem Mostra l'esquema de la base de dades i, a la pàgina que s'obre, prem Descarrega la base de dades (cal tenir la sessió iniciada). Et baixarà un fitxer .sql amb el nom de la base, per exemple hotel.sql.

Botó per descarregar la base de dades

2. Connecta el DBeaver al teu servidor

  1. Al DBeaver, obre el menú Database → New Database Connection (o prem Ctrl+Maj+N).
  2. Tria MariaDB, MySQL o PostgreSQL, segons el que indica la pàgina del problema, i prem Next.

    Triar el tipus de base de dades

    A PostgreSQL, el DBeaver et pregunta quin driver vols: deixa marcat PostgreSQL (standard driver) i prem Next.

    Triar el driver de PostgreSQL

  3. Ja hi ha el servidor (localhost) i el port (3306 a MariaDB i MySQL, 5432 a PostgreSQL). Omple el teu usuari i la teva contrasenya.

    Dades de la connexió

  4. Prem Test Connection. La primera vegada el DBeaver et proposarà baixar el driver: prem Download.

    Baixar el driver

    Quan surti Connected, prem OK i després Finish.

    Connexió correcta

3. Crea una base de dades buida

  1. Selecciona la connexió al quadre Connections de l'esquerra i obre un editor SQL amb SQL Editor → New SQL script (Ctrl+]).
  2. Escriu CREATE DATABASE hotel; (amb el nom que vulguis) i executa-ho amb Ctrl+Enter. Ha de sortir Updated Rows 1.

    Crear la base de dades

  3. Fes clic sobre la connexió i prem F5 (Refresh) perquè hi aparegui la base nova.

  4. Només a PostgreSQL: perquè el DBeaver t'ensenyi totes les bases i no només la que has obert, edita la connexió (F4) i, a la pestanya Main, marca Show all databases. A MariaDB ja ve marcat per defecte.

    Show all databases a PostgreSQL

4. Carrega el fitxer

  1. Menú File → Open File... (Ctrl+O) i tria el .sql que has baixat. S'obre en un editor SQL, amb <none> al títol de la pestanya perquè encara no està lligat a cap connexió.

    File, Open File

    Triar el fitxer

  2. A la barra d'eines de l'editor, prem < N/A > (Active datasource, Ctrl+9), tria la teva connexió i prem Select.

    Triar la connexió

    Just al costat et sortirà un segon selector (Database/Schema, Ctrl+0): tria-hi la base que has creat al pas anterior. A PostgreSQL s'obre una finestra amb dues llistes: tria la base a l'esquerra i public a la dreta. Sense això, el DBeaver no sap on ha de carregar-ho. Quan ho tinguis, la barra ha de dir el nom de la connexió i el de la base:

    Connexió i base triades

    Si la base nova no surt a la llista, tanca-la, fes F5 sobre la connexió (a l'esquerra) i torna-ho a provar.

  3. Executa tot el fitxer amb Alt+X (SQL Editor → Execute SQL script). Atenció: Ctrl+Enter només n'executa una sentència.

  4. El DBeaver et farà un o dos avisos. Els fitxers de MariaDB i MySQL comencen esborrant les taules que ja existeixin (DROP TABLE IF EXISTS), i per això surt aquest. Prem Yes To All:

    Avís de DROP

    I, com que el fitxer és llarg, també et preguntarà si vols desactivar que ensenyi el resultat de cada sentència. Respon Yes, anirà molt més ràpid:

    Script llarg

  5. Espera que acabi (són uns segons). Sortirà una pestanya Statistics amb el nombre de sentències executades:

    Script acabat

    Fes F5 sobre la connexió i desplega Databases → la teva base → Tables per veure les taules.

    Les taules carregades

5. Prova les teves consultes

Selecciona la base al quadre de l'esquerra, obre un editor SQL (Ctrl+]) i escriu-hi les consultes. Per exemple, a la base de l'hotel: SELECT * FROM Rooms LIMIT 10;. S'executa amb Ctrl+Enter i el resultat surt a sota. Quan et surtin bé, copia-les a l'enviament del problema.

Una consulta

Si alguna cosa falla

  • No s'ha carregat res, o diu que no hi ha cap base seleccionada: no has triat la base a la barra d'eines de l'editor (pas 4.2).
  • La base nova no surt a la llista: fes F5 sobre la connexió, a l'esquerra, i torna-ho a provar.
  • PostgreSQL només ensenya la base postgres: marca Show all databases a la connexió (pas 3.4).
  • MySQL 8: Public Key Retrieval is not allowed: a la connexió, pestanya Driver properties, posa allowPublicKeyRetrieval a true.
  • PostgreSQL: unrecognized configuration parameter: el teu servidor és anterior a PostgreSQL 12; instal·la'n una versió més recent.
  • Sense DBeaver: també pots carregar el fitxer des d'un terminal, un cop creada la base buida. A MariaDB/MySQL: mysql -u root -p hotel < hotel.sql. A PostgreSQL: psql -U postgres -d hotel -f hotel.sql.
  • Les bases s'han generat amb MariaDB 10.5 i PostgreSQL 17, els mateixos que fa servir el jutge. No s'han provat amb MySQL 8: si et dóna errors, fes servir MariaDB.