中国地区编码数据库具体名称是什么?
- 内容介绍
- 文章标签
- 相关推荐
老实说,

概述
中国地区编码数据库是政府、统计、邮政、教育、GIS 等领域必不可少的基础数据资源。它记录了从国家级到村级的五级行政区划信息。每个单位都有唯一的编码,便于层级查询与数据统一。
使用者痛点一览
- 免费、全面的数据源稀缺,付费版本价格不透明。
- 下载文件格式多样,不知哪种最适合导入数据库。
- 缺乏标准化导入脚本,导致自行编写过程繁琐。说起来,
- 更新周期不明确。担心使用过时的数据影响业务准确性。
获取最新编码文件
- 官方渠道:访问国家统计局官网,在“统计数据”或“行政区划”栏目下载最新版压缩包。文件一般为纯文本或 CSV 格式。
- 第三方网站:如 提供完整 MySQL/MSSQL 导入脚本与 SQL 文件;也可在 GitHub 搜索 “China administrative division code” 获取开源项目。
文件结构示例
# 行政区划编码 父ID 级别 名称 组合方法
110000,1 北京市
110100,110000,2 北京市 市辖区
110101,110100。3 东城区
创建数据库表结构
提示:下面的表结构适用于 MySQL,其他 RDBMS 可做轻微调整。
| Name | Description |
|---|---|
| 行政区划表 | |
| ID | 主键,自增或使用编码字段作为主键。 |
| |Code| CHAR | 主键,六位行政区划码。 | |
| |Name| VARCHAR | |FullName| VARCHAR |
| |ParentCode| CHAR | |Level| TINYINT |
| |Path| VARCHAR | |PostalCode| CHAR 可选字段。不过, |
| 使用树形结构存储。可通过父子关系快速检索层级方法。 | |
创建表语句示例
CREATE TABLE admin_division ( Code CHAR NOT NULL PRIMARY KEY,Name VARCHAR NOT NULL。FullName VARCHAR,ParentCode CHAR,Level TINYINT NOT NULL,Path VARCHAR,PostalCode CHAR,CONSTRAINT fk_parent FOREIGN KEY REFERENCES admin_division );ALTER TABLE admin_division ADD INDEX idx_parent;ALTER TABLE admin_division ADD INDEX idx_level;ALTER TABLE admin_division ADD INDEX idx_name;COMMIT,
导入数据库文件步骤
- 准备工作: - 确认已安装 MySQL 并能正常连接。- 将下载得到的 txt/CSV 文件放置在服务器可访问目录下。按理说,- 如果使用 Windows。可以用记事本检查编码是否为 UTF‑8,无 BOM。
-
批量导入示例:
若文件为 CSV,可直接用 LOAD DATA INFILE;若为 TXT,则先转换成 CSV 或用 INSERT 语句批处理。
LOAD DATA INFILE '/tmp/admin_codes.csv' INTO TABLE admin_division FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r ' IGNORE 1 LINES COMMIT;<\/pre> 如果你更习惯脚本方式,可参考 qqzeng.com 提供的 aera.sql 脚本:
mysql -u root -p dbname
" - 验证完整性: 执行以下查询确认没有重复或空值。
SELECT COUNT FROM admin_division WHERE Code IS NULL OR Code='';SELECT COUNT FROM admin_division;其实,<\/pre>"
- 建立索引与视图: 可以根据业务需要添加全文索引或视图。例如快速检索城市名称,说起来,
CREATE VIEW city_view AS SELECT * FROM admin_division WHERE Level=3;<\/pre>"
- 完成!现在你已拥有可直接查询的中国地区编码数据库。 "
- 验证完整性: 执行以下查询确认没有重复或空值。
常用查询案例
-
SELECT * FROM admindivision WHERE ParentCode = '440000' AND Level = 4;<\/code>" division WHERE Name LIKE '北%';<\/code>"SELECT * FROM adminSELECT CONCATWS(' / ',p.Name as Province,c.Name as City。d.Name as District) FROM admindivision d JOIN admindivision c ON d.ParentCode = c.Code JOIN admindivision p ON c.ParentCode = p.Code WHERE d.Code='310105';<\/code>" 注:以上查询假设已填充完整父子关系和等级字段。若缺失,请先运行上述导入脚本再尝试。" "定期更新策略与自动化脚本示例
"每年国家统计局会发布新一版行政区划代码。为了保持数据实时性,你可以采用以下自动化流程:"
- "① 在 cron 或 Windows Task Scheduler 定时访问 stats.gov.cn 的下载页面;"
- "② 下载最新 zip 包并解压;"
- "③ 使用上面提供的 LOAD DATA 或 sql 脚本进行全量刷新;"
- "④ 对比差异生成日志,用于审计与回滚。"
-
"⑤ 推送更新通知给相关团队。"
"以下 Bash 示例演示了自动更新过程:"
#!说起来,/bin/bash
# 每月第一天执行
URL=https://www.stats.gov.cn/.../admin_codes.zip
DEST=/data/admin_codes/
mkdir -p $DEST
# 下载 &>& 转存日志
curl -sL $URL -o $DEST/latest.zip>>$DEST/update.log 2>&1
# 解压并替换旧文件
unzip -o $DEST/latest.zip -d $DEST>>$DEST/update.log
# 重建数据库表
echo \"TRUNCATE TABLE admin_division;\") | mysql -u root -p dbname>&&
# 导入新数据
mysqlimport --ignore-lines=1 --fields-terminated-by=\",\" --fields-enclosed-by='\\\"' --local -u root dbname $DEST/*.csv
常见问题解答
| 问题 | 答案 |
|---|---|
| #1 如何判断自己手头的数据是否完整? | \对照国家统计局发布的原始 Excel 列表,核对省、市、县三级总数是否一致;检查是否存在空值或重复编码。不过,\ 如果发现缺失,可以通过官方 API 补全或者手动追加。\ | \
#2 官方提供的是文本格式,我想直接在 Python 中读取该文件怎么办?Python 内置 csv 模块即可读取 UTF‑8 编码文本;若使用 pandas,可直接调用 pd.read_csv 并指定 delimiter、encoding 等参数。\
例如:\
python\
import pandas as pd
\
df = pd.read_csv\
\
| |
#3 我只需要省份和市的信息。不需要乡镇,那么如何截取?可以在导入后执行 DELETE 或 CREATE VIEW,仅保留 level≤3 的记录。例如:\
sql\
DELETE FROM admin_division WHERE Level> 3;\
\
| |
| #4 如何在 GIS 软件中加载此数据库?将 MySQL 表导出为 shapefile 或 GeoJSON 再加载到 QGIS / ArcGIS;或者使用 OGR 支持的 JD娱乐 驱动直接连接 MySQL 并绘制地图。\ \ | |
#5 有无社区维护的开源项目可直接部署?GitHub 上有诸如 china-administrative-divisions 的仓库。包含 SQL 脚本、REST API 示例还有前端组件,可一键部署到 Docker 容器中。\
\
\
|
与行动建议
-
"把握好官方渠道获取最新代码,避免因付费版本带来的版权风险。"
-
"遵循标准化表结构和索引设计,让后续查询高效且易维护。"
-
"制定自动化更新脚本,即使是小型项目也能保持数据时效性。"
-
"结合 GIS 与 Web 前端。实现三级联动等功能,让使用者用起来更舒服。"
<\/div>";}
老实说,

概述
中国地区编码数据库是政府、统计、邮政、教育、GIS 等领域必不可少的基础数据资源。它记录了从国家级到村级的五级行政区划信息。每个单位都有唯一的编码,便于层级查询与数据统一。
使用者痛点一览
- 免费、全面的数据源稀缺,付费版本价格不透明。
- 下载文件格式多样,不知哪种最适合导入数据库。
- 缺乏标准化导入脚本,导致自行编写过程繁琐。说起来,
- 更新周期不明确。担心使用过时的数据影响业务准确性。
获取最新编码文件
- 官方渠道:访问国家统计局官网,在“统计数据”或“行政区划”栏目下载最新版压缩包。文件一般为纯文本或 CSV 格式。
- 第三方网站:如 提供完整 MySQL/MSSQL 导入脚本与 SQL 文件;也可在 GitHub 搜索 “China administrative division code” 获取开源项目。
文件结构示例
# 行政区划编码 父ID 级别 名称 组合方法
110000,1 北京市
110100,110000,2 北京市 市辖区
110101,110100。3 东城区
创建数据库表结构
提示:下面的表结构适用于 MySQL,其他 RDBMS 可做轻微调整。
| Name | Description |
|---|---|
| 行政区划表 | |
| ID | 主键,自增或使用编码字段作为主键。 |
| |Code| CHAR | 主键,六位行政区划码。 | |
| |Name| VARCHAR | |FullName| VARCHAR |
| |ParentCode| CHAR | |Level| TINYINT |
| |Path| VARCHAR | |PostalCode| CHAR 可选字段。不过, |
| 使用树形结构存储。可通过父子关系快速检索层级方法。 | |
创建表语句示例
CREATE TABLE admin_division ( Code CHAR NOT NULL PRIMARY KEY,Name VARCHAR NOT NULL。FullName VARCHAR,ParentCode CHAR,Level TINYINT NOT NULL,Path VARCHAR,PostalCode CHAR,CONSTRAINT fk_parent FOREIGN KEY REFERENCES admin_division );ALTER TABLE admin_division ADD INDEX idx_parent;ALTER TABLE admin_division ADD INDEX idx_level;ALTER TABLE admin_division ADD INDEX idx_name;COMMIT,
导入数据库文件步骤
- 准备工作: - 确认已安装 MySQL 并能正常连接。- 将下载得到的 txt/CSV 文件放置在服务器可访问目录下。按理说,- 如果使用 Windows。可以用记事本检查编码是否为 UTF‑8,无 BOM。
-
批量导入示例:
若文件为 CSV,可直接用 LOAD DATA INFILE;若为 TXT,则先转换成 CSV 或用 INSERT 语句批处理。
LOAD DATA INFILE '/tmp/admin_codes.csv' INTO TABLE admin_division FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r ' IGNORE 1 LINES COMMIT;<\/pre> 如果你更习惯脚本方式,可参考 qqzeng.com 提供的 aera.sql 脚本:
mysql -u root -p dbname
" - 验证完整性: 执行以下查询确认没有重复或空值。
SELECT COUNT FROM admin_division WHERE Code IS NULL OR Code='';SELECT COUNT FROM admin_division;其实,<\/pre>"
- 建立索引与视图: 可以根据业务需要添加全文索引或视图。例如快速检索城市名称,说起来,
CREATE VIEW city_view AS SELECT * FROM admin_division WHERE Level=3;<\/pre>"
- 完成!现在你已拥有可直接查询的中国地区编码数据库。 "
- 验证完整性: 执行以下查询确认没有重复或空值。
常用查询案例
-
SELECT * FROM admindivision WHERE ParentCode = '440000' AND Level = 4;<\/code>" division WHERE Name LIKE '北%';<\/code>"SELECT * FROM adminSELECT CONCATWS(' / ',p.Name as Province,c.Name as City。d.Name as District) FROM admindivision d JOIN admindivision c ON d.ParentCode = c.Code JOIN admindivision p ON c.ParentCode = p.Code WHERE d.Code='310105';<\/code>" 注:以上查询假设已填充完整父子关系和等级字段。若缺失,请先运行上述导入脚本再尝试。" "定期更新策略与自动化脚本示例
"每年国家统计局会发布新一版行政区划代码。为了保持数据实时性,你可以采用以下自动化流程:"
- "① 在 cron 或 Windows Task Scheduler 定时访问 stats.gov.cn 的下载页面;"
- "② 下载最新 zip 包并解压;"
- "③ 使用上面提供的 LOAD DATA 或 sql 脚本进行全量刷新;"
- "④ 对比差异生成日志,用于审计与回滚。"
-
"⑤ 推送更新通知给相关团队。"
"以下 Bash 示例演示了自动更新过程:"
#!说起来,/bin/bash
# 每月第一天执行
URL=https://www.stats.gov.cn/.../admin_codes.zip
DEST=/data/admin_codes/
mkdir -p $DEST
# 下载 &>& 转存日志
curl -sL $URL -o $DEST/latest.zip>>$DEST/update.log 2>&1
# 解压并替换旧文件
unzip -o $DEST/latest.zip -d $DEST>>$DEST/update.log
# 重建数据库表
echo \"TRUNCATE TABLE admin_division;\") | mysql -u root -p dbname>&&
# 导入新数据
mysqlimport --ignore-lines=1 --fields-terminated-by=\",\" --fields-enclosed-by='\\\"' --local -u root dbname $DEST/*.csv
常见问题解答
| 问题 | 答案 |
|---|---|
| #1 如何判断自己手头的数据是否完整? | \对照国家统计局发布的原始 Excel 列表,核对省、市、县三级总数是否一致;检查是否存在空值或重复编码。不过,\ 如果发现缺失,可以通过官方 API 补全或者手动追加。\ | \
#2 官方提供的是文本格式,我想直接在 Python 中读取该文件怎么办?Python 内置 csv 模块即可读取 UTF‑8 编码文本;若使用 pandas,可直接调用 pd.read_csv 并指定 delimiter、encoding 等参数。\
例如:\
python\
import pandas as pd
\
df = pd.read_csv\
\
| |
#3 我只需要省份和市的信息。不需要乡镇,那么如何截取?可以在导入后执行 DELETE 或 CREATE VIEW,仅保留 level≤3 的记录。例如:\
sql\
DELETE FROM admin_division WHERE Level> 3;\
\
| |
| #4 如何在 GIS 软件中加载此数据库?将 MySQL 表导出为 shapefile 或 GeoJSON 再加载到 QGIS / ArcGIS;或者使用 OGR 支持的 JD娱乐 驱动直接连接 MySQL 并绘制地图。\ \ | |
#5 有无社区维护的开源项目可直接部署?GitHub 上有诸如 china-administrative-divisions 的仓库。包含 SQL 脚本、REST API 示例还有前端组件,可一键部署到 Docker 容器中。\
\
\
|
与行动建议
-
"把握好官方渠道获取最新代码,避免因付费版本带来的版权风险。"
-
"遵循标准化表结构和索引设计,让后续查询高效且易维护。"
-
"制定自动化更新脚本,即使是小型项目也能保持数据时效性。"
-
"结合 GIS 与 Web 前端。实现三级联动等功能,让使用者用起来更舒服。"
<\/div>";}

