区划代码和城乡划分代码的数据
访问地址:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html
![](https://i-blog.csdnimg.cn/blog_migrate/ae4b0048b5387a82caa99ab0e15a2b19.png)
前段时间写了一个程序,用来下载区划代码和城乡划分代码的数据,包含省、地级市、区县、镇街道、村社区的信息,是txt格式数据文件,下面是百度网盘的下载地址
链接:https://pan.baidu.com/s/1Aj5aEzwQ49owRLBcNV_vYg?pwd=pgjm
提取码:pgjm
下载解压后的文件
![](https://i-blog.csdnimg.cn/blog_migrate/9a4377204584b5d0709bac48661e6cd2.png)
数据下载后如何将txt文件导入数据库,接下来以SqlServer数据库为例,一步步将txt文件数据导入数据库中
一、创建数据库
二、创建数据表,需要建5个表,建表语句如下
创建省份表
--省 直辖市
IF EXISTS(SELECT * FROM sys.objects WHERE name = 't_province')
BEGIN
DROP TABLE t_province
END
CREATE TABLE t_province
(
province_code int primary key, --链接代码,下载数据时用
province_name varchar(20), --名称
link_name varchar(20) --链接地址,下载数据时用
);
创建城市表
--地级市
IF EXISTS(SELECT * FROM sys.objects WHERE name = 't_city')
BEGIN
DROP TABLE t_city
END
CREATE TABLE t_city
(
province_code int, --链接代码,与省份关联
city_code bigint primary key, --市区划代码
city_name varchar(40), --名称
link_name varchar(20), --链接地址,下载数据时用
link_prefix varchar(20), --链接前缀,下载数据时用
row_idx int --父级行序号,下载数据时用
);
创建县级表
--区 县 县级市
IF EXISTS(SELECT * FROM sys.objects WHERE name = 't_county')
BEGIN
DROP TABLE t_county
END
CREATE TABLE t_county
(
city_code bigint,
county_code bigint primary key,
county_name varchar(40),
link_name varchar(20),
link_prefix varchar(20),
row_idx int
);
创建城镇表
--镇 街道
IF EXISTS(SELECT * FROM sys.objects WHERE name = 't_town')
BEGIN
DROP TABLE t_town
END
CREATE TABLE t_town
(
county_code bigint,
town_code bigint primary key,
town_name varchar(60),
link_name varchar(30),
link_prefix varchar(20),
row_idx int
);
创建乡村表
--乡村 社区
IF EXISTS(SELECT * FROM sys.objects WHERE name = 't_village')
BEGIN
DROP TABLE t_village
END
CREATE TABLE t_village
(
town_code bigint, --城镇区划代码
village_code bigint primary key, --乡村区划代码
village_classify_code varchar(3), --城乡分类代码
village_name varchar(60), --名称
link_name varchar(20)
);
三、将txt数据导入数据表中,使用的是Navicat工具连接的SqlServer。依次导入province.txt、city.txt、county.txt、town.txt、village1.txt、village2.txt、village3.txt、village4.txt、village5.txt,下面只演示了province.txt的导入步骤,其它文件的导入步骤都是一样的,只是第3步选择的txt文件不一样和第6步目标表需要手动选择下,其它文件就不展示了。
选中左侧的“表”,点击“导入向导”
![](https://i-blog.csdnimg.cn/blog_migrate/e5829ace4b5951c7d37f76bd4414f870.png)
选择“文本文件”,点击“下一步”
![](https://i-blog.csdnimg.cn/blog_migrate/510838a30d546ce0b0f88eb69e962278.png)
选择导入的txt文件,下面导入的是省份的txt文件
![](https://i-blog.csdnimg.cn/blog_migrate/911fae9aa1c8cf86a3b816e3f7cbe733.png)
选择“逗号”,点击“下一步”
![](https://i-blog.csdnimg.cn/blog_migrate/b9ba00336ff101669babfa0909cfa276.png)
点击“下一步”
![](https://i-blog.csdnimg.cn/blog_migrate/c44c13c565906185f13f7bc4551d78e3.png)
目标表如果不正确需要手动选择下,点击“下一步”
![](https://i-blog.csdnimg.cn/blog_migrate/eb0cc36f3f5dd05937fbf4473e566a0c.png)
点击“下一步”
![](https://i-blog.csdnimg.cn/blog_migrate/b5460848a44fe6c6883947969b6e3122.png)
导入模式默认追加,点击“下一步”
![](https://i-blog.csdnimg.cn/blog_migrate/dcc56e524da84e3a6cc4ec82ff007ad2.png)
点击“开始”
![](https://i-blog.csdnimg.cn/blog_migrate/9844ca6544b09aeff385fa23b6c86605.png)
导入完成,点击“关闭”
![](https://i-blog.csdnimg.cn/blog_migrate/ee43cbcb920babcb22aedc9e6afdaf32.png)
重复以上步骤完成其它txt文件的导入
需要注意的第6步,目标表选择自己建的表t_city
错误的
![](https://i-blog.csdnimg.cn/blog_migrate/026ba89485a74fbec1ff67415e95105b.png)
正确的
![](https://i-blog.csdnimg.cn/blog_migrate/ca3c6e3e6d71140835e2ed3a0148b336.png)
四、在数据库查询数据
单表查询
SELECT * FROM t_province;
SELECT * FROM t_city;
SELECT * FROM t_county;
SELECT * FROM t_town;
SELECT * FROM t_village;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9f956a8726464776348fddc85e41ae.png)
联表查询
--查询 湖北省的地级市
SELECT p.province_name,c.city_code,c.city_name
FROM t_province p INNER JOIN t_city c ON p.province_code = c.province_code
WHERE p.province_name = '湖北省'
![](https://i-blog.csdnimg.cn/blog_migrate/a0327f7906bcfe6c6348ed0da81aad89.png)
--查询 湖北省的区县、县级市
SELECT p.province_name,c.city_code,c.city_name ,c2.county_code,c2.county_name
FROM t_province p
INNER JOIN t_city c ON p.province_code = c.province_code
INNER JOIN t_county c2 ON c.city_code = c2.city_code
WHERE p.province_name = '湖北省'
AND c.city_name = '武汉市'
![](https://i-blog.csdnimg.cn/blog_migrate/b50142c0101b7aeda170c8c890c24cd1.png)
--查询 湖北省武汉市的城镇、街道
SELECT p.province_name,c.city_code,c.city_name ,c2.county_code,c2.county_name,t.town_code,t.town_name
FROM t_province p
INNER JOIN t_city c ON p.province_code = c.province_code
INNER JOIN t_county c2 ON c.city_code = c2.city_code
INNER JOIN t_town t on c2.county_code = t.county_code
WHERE p.province_name = '湖北省'
AND c.city_name = '武汉市'
![](https://i-blog.csdnimg.cn/blog_migrate/8c7847d87562476fac0f92047e0db785.png)
--查询 湖北省武汉市的乡村、社区
SELECT p.province_name,c.city_code,c.city_name ,c2.county_code,c2.county_name,t.town_code,t.town_name,v.village_code,v.village_classify_code,v.village_name
FROM t_province p
INNER JOIN t_city c ON p.province_code = c.province_code
INNER JOIN t_county c2 ON c.city_code = c2.city_code
INNER JOIN t_town t on c2.county_code = t.county_code
INNER JOIN t_village v on t.town_code = v.town_code
WHERE p.province_name = '湖北省'
AND c.city_name = '武汉市'
ORDER BY t.town_code
![](https://i-blog.csdnimg.cn/blog_migrate/f0fa73d261080b0677eb57c5c565458a.png)