Vai al contenuto

Importare i comuni italiani in MySQL e MariaDB con il dump SQL

Il database dei comuni italiani in MySQL o MariaDB: database vuoto, import del dump full.sql, controllo delle righe, prime query con join e aggiornamento.

MySQL e MariaDB Aggiornata il Lettura di 4 minuti

Cosa ti serve

  • La cartella database/mysql/ del pacchetto, con tre file: schema.sql (solo la struttura), data.sql (solo i dati) e full.sql (tutto insieme). Nella demo gratuita i dump non ci sono: la demo è in Excel, CSV e JSON.
  • MySQL 8 o MariaDB, con il client a riga di comando mysql, oppure un client grafico come MySQL Workbench, DBeaver o phpMyAdmin.
  • Un utente con il permesso di creare tabelle nel database di destinazione.

Un database vuoto

I dump non creano il database: creano le tabelle dentro quello che scegli. Crealo con la codifica giusta, la stessa del pacchetto:

CREATE DATABASE comuni CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Puoi anche importare in un database che usi già: i nomi delle tabelle iniziano tutti con data_ e non entrano in conflitto con le tue.

Importare full.sql

Dalla riga di comando, dalla cartella del pacchetto:

mysql -u utente -p comuni < database/mysql/full.sql

Il file comincia con DROP TABLE IF EXISTS per ogni tabella e poi la ricrea: puoi lanciarlo quante volte vuoi, ottieni sempre lo stato del rilascio. Le chiavi esterne vengono dichiarate nello schema e i controlli restano sospesi durante l'inserimento, come fa mysqldump, così l'ordine delle tabelle non importa.

Con un client grafico apri full.sql ed eseguilo sul database comuni. phpMyAdmin ha un limite sulla dimensione del file caricato: se lo rifiuta, usa la riga di comando o importa prima schema.sql e poi data.sql, che sono gli stessi dati in due file.

Controllare che sia andata bene

Confronta le righe con i totali che il rilascio dichiara in CHANGELOG.md, tabella per tabella:

SELECT 'data_comuni' AS tabella, COUNT(*) AS righe FROM data_comuni
UNION ALL SELECT 'data_comuni_cap', COUNT(*) FROM data_comuni_cap
UNION ALL SELECT 'data_province', COUNT(*) FROM data_province
UNION ALL SELECT 'data_regioni', COUNT(*) FROM data_regioni;

manifest.json ha la stessa informazione per i file CSV e JSON, con l'impronta SHA-256 di ogni file.

Le prime query

I CAP di un comune, uno per riga anche nelle città che ne hanno molti:

SELECT c.nome, k.cap
FROM data_comuni c
JOIN data_comuni_cap k ON k.comune_istat = c.istat
WHERE c.nome = 'Jesolo'
ORDER BY k.cap;

I comuni di una provincia con la popolazione, dalla sigla:

SELECT c.nome, p.popolazione_totale
FROM data_comuni c
JOIN data_province pr ON pr.istat = c.provincia_istat
JOIN data_comuni_popolazione p ON p.comune_istat = c.istat
WHERE pr.sigla = 'LI'
ORDER BY p.popolazione_totale DESC;

Il comune a partire da un CAP, con la sua provincia:

SELECT c.nome, c.istat_testo, pr.sigla
FROM data_comuni_cap k
JOIN data_comuni c ON c.istat = k.comune_istat
JOIN data_province pr ON pr.istat = c.provincia_istat
WHERE k.cap = '30017';

I comuni confinanti di un comune: la tabella ha ogni coppia nei due versi, quindi basta una direzione.

SELECT v.nome
FROM data_comuni c
JOIN data_comuni_confinanti cf ON cf.comune_istat = c.istat
JOIN data_comuni v ON v.istat = cf.confinante_istat
WHERE c.nome = 'Livorno'
ORDER BY v.nome;

Le chiavi da usare

istat è il codice ISTAT numerico ed è la chiave di tutto: comune_istat nelle tabelle satellite, provincia_istat e regione_istat verso l'alto. istat_testo è lo stesso codice a sei cifre con gli zeri, per chi deve confrontarlo con un file di testo. Il codice catastale sta in belfiore. Non usare il nome come chiave: viene corretto quando ISTAT corregge una grafia, il codice no.

Aggiornare al rilascio successivo

Rilancia full.sql del nuovo rilascio sullo stesso database: le tabelle vengono ricreate con i dati nuovi. Se hai viste, trigger o colonne tue aggiunte alle tabelle del pacchetto, tienile in tabelle separate collegate per istat, così un aggiornamento non le tocca. Il registro degli aggiornamenti sul sito e CHANGELOG.md dicono quali comuni e quali CAP sono cambiati, se vuoi aggiornare solo quelli a mano.

Provalo sui tuoi dati prima di acquistarlo

La demo gratuita contiene i dati completi di una provincia in Excel, CSV e JSON: puoi rifare ogni passo di questa guida sul file vero. Poi ogni rilascio ti aspetta nell'area clienti, con l'elenco di cosa è cambiato.

Vedi i piani e i prezzi
Scarica la demo gratuita

Inserisci la tua email: ti inviamo subito il link per scaricare la provincia di Livorno al completo, 19 comuni con tutti i campi — comprese zone climatiche e sismiche, frazioni e serie solari.

Riceverai subito il link per scaricare la demo e occasionali aggiornamenti sul database. Puoi disiscriverti quando vuoi. Consulta la privacy policy.

Pronto a usare i dati nel tuo lavoro?

Un file solo, aggiornato ogni settimana, per chi prepara preventivi, anagrafiche, analisi o spedizioni. Lo apri in Excel o lo carichi nel tuo gestionale.