本資料集包含中國大陸所有省份、地級市、區縣及鄉鎮街道的標準行政區劃代碼,並涵蓋港澳台地區。資料採用標準的三級層級結構(省→市→區縣),每條記錄包含 codeid(行政區劃代碼)、parentid(父級代碼)、cityName(名稱)三個欄位,完美支援前端三級聯動選單、物流地址選擇、用戶註冊地址等業務場景。
CREATE TABLE `base_area` (
`codeid` MEDIUMINT(12) NOT NULL COMMENT '行政區劃代碼',
`parentid` INT(12) NOT NULL COMMENT '父級代碼,頂級為 0',
`cityName` VARCHAR(180) NOT NULL COMMENT '區劃名稱',
PRIMARY KEY (`codeid`),
KEY `idx_parentid` (`parentid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='中國行政區劃表';
parentid=0,市級指向省代碼,區縣指向市代碼SELECT `codeid`, `cityName` FROM `base_area` WHERE `parentid` = 0 ORDER BY `codeid`;
SELECT `codeid`, `cityName` FROM `base_area` WHERE `parentid` = 44 ORDER BY `codeid`;
SELECT `codeid`, `cityName` FROM `base_area` WHERE `parentid` = 4401 ORDER BY `codeid`;
-- MySQL 8.0+ CTE 遞歸查詢
WITH RECURSIVE `area_path` AS (
SELECT `codeid`, `parentid`, `cityName`, 1 AS `level`
FROM `base_area` WHERE `codeid` = 110101
UNION ALL
SELECT b.`codeid`, b.`parentid`, b.`cityName`, a.`level` + 1
FROM `base_area` b
JOIN `area_path` a ON b.`codeid` = a.`parentid`
)
SELECT `cityName` FROM `area_path` ORDER BY `level` DESC;
因篇幅限制,完整的 3200+ 條 INSERT 語句不在本文展示。您可以通過以下方式獲取:
utf8mb4,避免生僻字(如「垍」、「鉛」)顯示異常parentid 必須建立索引;若需按名稱模糊搜尋,可在 cityName 上建全文索引is_deleted 欄位,避免業務歷史資料關聯斷裂前端常需樹形結構(如 Element UI el-cascader、Ant Design Cascader)。後端可用遞歸或單次查詢+記憶體組裝生成 JSON:
-- 獲取所有資料,應用層組裝樹形結構(效能優於遞歸查詢)
SELECT `codeid`, `parentid`, `cityName` FROM `base_area` ORDER BY `parentid`, `codeid`;
應用層組裝邏輯(Python 範例):
def build_tree(rows, parent_id=0):
tree = []
for row in rows:
if row['parentid'] == parent_id:
children = build_tree(rows, row['codeid'])
node = {'value': row['codeid'], 'label': row['cityName']}
if children:
node['children'] = children
tree.append(node)
return tree
這份行政區劃資料庫是眾多國內業務系統的基礎設施。正確導入、建立索引、定期更新,能為地址選擇、物流路由、數據分析等場景提供穩固的數據支撐。若發現資料缺漏或代碼變更,歡迎提交 Issue 共同維護。