sábado, 2 de febrero de 2013

Tabla para MySQL de todos los municipios o poblaciones de España agrupados por provincias


Hace un par de días necesitaba conseguir una tabla con todos los municipios de España, agrupados por provincias, en formato sql para incorporarla a un proyecto que estoy desarrollando para una inmobiliaria (para el que utilizo una base de datos MySQL). Como no encontré nada que me convenciera decidí ponerme manos a la obra y crearla yo mismo. He aquí los resultados...
1) Fuente de los datos:
Después de mucho navegar en Google encontré esta página del Instituto Nacional de Estadística en donde ofrecían una base de datos (en formato excel...) con todos los municipios de España, agrupados por provincias, actualizados al 1 de enero de 2007. (Parece que crean una nueva versión anualmente).
En esa misma página realizan la siguiente aclaración: "Las denominaciones de los municipios y provincias que aparecen aquí son las que figuran en el Registro de Entidades Locales del Ministerio de Administraciones Públicas, siendo el Instituto Nacional de Estadística el Organismo encargado de asignar los códigos correspondientes."
2) Manipulación de los datos para pasar de formato excel (xls) a formato sql:
1) Mediante openoffice abrí el archivo de excel y lo guardé con formato .csv, con los valores separados por comas.
2) Tardé bastante en encontrar una utilidad que pasara archivos de formato .csv a formato .sql y...
3) Cuando la conseguí (finalmente di con una para windows...) y se la apliqué al archivo .csv resulta que no trató bien los nombres de los municipios de Cataluña, la Comunidad Valenciana y las Islas Baleares con apóstrofes y tuve que editarlas una a una manualmente. Tuve que sustituir cada uno de los apóstrofes contenidos en el nombre por dos apóstrofes, para que lo interpretara MySQL correctamente. Esto me llevó un buen rato.
3) Resultado:
Instrucciones para la descarga: Haz clic con el botón izquierdo en cada uno de los enlaces. Los archivos se abrirán en una nueva ventana del navegador. Pulsa Archivo / Guardar como... y sálvalo con extensión .sql :).
Tabla de provincias.
Tabla de municipios.
4) Descripción de los archivos:
4.1) tabla_provinc.sql: Tabla con dos columnas que incluye las 52 provincias españolas:
id (int(2)): Campo que identifica a cada provincia con los dos primeros dígitos de su código postal. Es útil para relacionar cada municipio de la tabla tabla_municip.sql con su respectiva provincia.
provincia (varchar(255)): Denominación de la provincia.
4.2) tabla_municip.sql: Tabla con tres columnas que incluye 8122 municipios españoles:
id (bigint(11)): Campo que identifica a cada municipio de forma unívoca en la tabla.
provincia (int(2)): Relaciona cada municipio con su respectiva provincia. Son los dos primeros dígitos de su código postal y coinciden con los valores del campo "id" en la tabla: tabla_provinc.sql.
municipio (varchar(255)): Denominación de cada municipio o población.
5) Instrucciones de instalación:
5.1) Mediante PHPMyAdmin:
1. Crear una base de datos o elegir una que ya esté creada.
2. Seleccionar la pestaña "importar" (arriba).
3. Pulsar en examinar, elegir el archivo descargado y hacer clic en "aceptar" para volver a la pantalla anterior.
4. Elegir codificación "latin1".
5. Hacer clic en continuar.
6) Si quieres ofrecer este recurso en tu web:
Conseguir estos dos archivos .sql me ha llevado bastante trabajo (sobre todo el de municipios), por lo tanto lo único que te pido es que coloques un enlace en tu web a la dirección fija de este post: http://www.davidbayon.net/index.php?mostrar=posts&post_id=91 en lugar de copiar esos dos archivos y ofrecerlos desde tu web. Además, de este modo, tus visitantes accederán siempre a las últimas versiones de los mismos.
¡Muchas gracias! ;)
-------------------
Por lo que pude ver mientras buscaba esto en Internet había bastante gente que también lo estaba intentando encontrar por tanto... Espero que os sea útil y os ahorre mucho tiempo ;).

Fuente: http://www.davidbayon.net/index.php?mostrar=posts&post_id=91

No hay comentarios:

Publicar un comentario