Database dei comuni italiani gratis in SQL (MySQL)

Ogni programmatore, almeno una volta nella vita, si trova ad affrontare l’annosa questione del Codice Fiscale italiano. Non voglio intraprendere una discussione sui bug progettuali di questo sistema (millenium bug e omocodie a.k.a. “omonimi di codice”), ma quando si ha a che fare con i Codici Fiscali si deve necessariamente lavorare con la lista dei comuni e il loro “codice catastale”.

Vediamo come scaricare gratuitamente il file con tutti i comuni italiani aggiornati, con il codice catastale, e convertirlo in query SQL per popolare il nostro database.

Contenuti dell'articolo

Database dei comuni italiani a pagamento

Esistono diversi servizi (a pagamento) che forniscono l’elenco di tutti i comuni italiani con tantissime informazioni aggiuntive, uno di questi è databasecomuni.it che offre, per poche decine di euro, i database in Sql, Xls, JSON e sicuramente anche altri formati.

https://www.databasecomuni.it/ listino prezzi

Servizi per consultare database dei comuni italiani

Esistono diversi servizi gratuiti che permettono la consultazione, altri che forniscono utility sul codice fiscale (per calcolarlo o estrapolare le informazioni), basta una semplice ricerca su Google.

Nessuno di questi, però, mette a disposizione una base di dati da poter inserire nel proprio database.

Come scaricare il database dei comuni italiani gratuitamente

Per scaricare il database aggiornato dei comuni italiani basta andare sul sito dell’Istat www.istat.it/it/archivio/6789 e nella parte inferiore della pagina ci sono i permalink che rimandano ai database costantemente aggiornati in formato .xls e .csv.

Istat database comuni italiani gratis e aggiornati

Preparare il file CSV o XLS prima di convertirlo in SQL

Prima di procedere con la creazione delle query SQL per popolare il nostro database MySQL o equivalente bisogna:

  • aprire il file CSV o XLS e rimuovere le colonne inutili
  • rinominare le intestazioni delle colonne con il nome dei campi che vogliamo nel nostro database.
  • esportare in CSV (consigliata codifica UTF8)
Rimuoviamo tutte le colonne che non ci servono dal file scaricato
Rinominiamo le colonne a seconda di come vogliamo realizzare la tabella del database

Trasformare un file CSV o XLS in SQL (MySQL)

Ora che abbiamo un file CSV formattato e pulito procediamo con la trasformazione in SQL per popolare e aggiornare il nostro database.

Il sito “CSV to SQL Converter” farà il lavoro sporco 😊 . Ecco i tre semplici step per ottenere un file SQL con tutti i dati che ci occorrono.

  1. Caricare il file CSV
  2. Scegliere le opzioni di output SQL
  3. Scaricare il file SQL

Vediamo nel dettaglio i punti cruciali, non devo sicuramente dirvi come caricare un file 😂

Configurare le opzioni di output del file SQL

In questo step (vedi immagini sotto) ritroviamo le colonne che abbiamo configurato nel file, automaticamente rileva il tipo e la grandezza del campo che andrà a creare in SQL, i punti a cui fare attenzione sono quelli indicati in rosso:

  • controlliamo che i tipi e le lunghezze siano coerenti con quello che vogliamo nel nostro database
  • il campo ID deve essere chiave, ma non va incluso nelle query perché non è univoco
  • attivare l’opzione MySQL AUTO_INCREMENT
  • aggiungere Drop Table/View e IF EXISTS
  • rinominare il nome della tabella in “comuni_italiani” o quello che preferite
Opzioni di output SQL

Generare il file SQL con tutti i dati dei comuni italiani e salvarlo

A questo punto generiamo i dati SQL premendo sul pulsante “CSV to SQL Insert“.

Se siamo interessati alla sola lettura del codice catastale, conviene cancellare e ricreare tutta la tabella ad ogni aggiornamento dei comuni, si fa molto prima. Se invece avete necessità di aggiornare le informazioni, la procedura è più complessa (scrivetemi se vi interessa sapere come fare).

  • Generiamo le query premendo sul pulsante “CSV to SQL Insert”
  • Controlliamo i dati generati per sicurezza
  • Scarichiamo il file SQL 😊
Generazione SQL e download

Pubblicato da

Enrico Rossomando

Aiuto startup e professionisti a progettare e sviluppare software, applicazioni e videogiochi per migliorare il loro business #fullstackdeveloper #gamedev