Đọc phiên bản tiếng Việt
Một cơ sở dữ liệu SQL đầy đủ về các đơn vị hành chính ở Việt Nam, bao gồm tất cả 63 tỉnh thành và các huyện xã liên quan. Dữ liệu được cập nhật theo sắc lệnh vừa mới nhất: 939/NQ-UBTVQH15. Đừng quên nhấn ⭐ nếu bạn thấy dự án này hữu ích và để theo dõi phiên bản mới nhất của tập dữ liệu này trong tương lai. Điều đó sẽ giúp chúng tôi tiếp thêm động lực để mang đến những sản phẩm có giá trị hỗ trợ cộng đồng của chúng ta.
Tổng quan
Tác giả (các) của dự án này không liên quan đến Tổng cục Thống kê Việt Nam hoặc chính phủ Việt Nam. Dữ liệu về tỉnh thành, huyện xã được tạo dựa trên dữ liệu API về tỉnh của Tổng cục Thống kê Việt Nam. Bộ dữ liệu này cũng bao gồm thông tin bổ sung ngoài dữ liệu gốc về tỉnh thành, huyện xã từ nguồn dữ liệu ban đầu. Vui lòng xem phần "Thay đổi bổ sung được thực hiện bởi dự án này".
Phiên bản và các nghị định do chính phủ ban hành
Chính phủ Việt Nam có thể ban hành các nghị định từ thời gian này sang thời gian khác để thay đổi cấu trúc đơn vị hành chính. Bạn có thể theo dõi các nghị định mới nhất được ban hành tại đây.
Bộ dữ liệu này sẽ được cập nhật dần dần để đồng bộ với nghị định hiệu lực mới nhất. Để kiểm tra tình trạng dữ liệu của bạn và cách cập nhật dữ liệu hiện có, hãy xem phần "Làm thế nào để cập nhật bộ dữ liệu hiện có?".
Bảng dưới đây chứa danh sách các nghị định được ban hành, ngày có hiệu lực từ, theo dõi từ phiên bản sớm nhất của bộ dữ liệu này.
Nghị định đã ban hành | Ban hành vào | Có hiệu lực từ | Phiên bản |
---|---|---|---|
939/NQ-UBTVQH15 | 13/12/2023 | 01/02/2024 | v2.0.0 |
721/NQ-UBTVQH15 - 730/NQ-UBTVQH15 | 13/02/2023 | 10/04/2023 | v1.0.4.1 |
569/NQ-UBTVQH15, 570/NQ-UBTVQH15 | 11/08/2022 | 01/10/2022 | v1.0.3.1 |
510/NQ-UBTVQH15 | 12/05/2022 | 01/07/2022 | v1.0.2 |
469/NQ-UBTVQH15 | 15/02/2022 | 10/04/2022 | v1.0.1 |
387/NQ-UBTVQH15 | 22/09/2021 | 01/11/2021 | v1.0.0 |
Thay đổi bổ sung được thực hiện bởi dự án này
- Thêm bảng "administrative_regions"
- Thêm bảng "administrative_units"
- Xác định đơn vị hành chính và khu vực liên quan cho dữ liệu tỉnh, huyện và xã
- Tạo tên tiếng Anh cho tỉnh, huyện và xã, đề xuất cả dạng đầy đủ và rút gọn
- Tạo tên mã cho tỉnh, huyện và xã
Cài đặt
Postgresql
- Sử dụng cơ sở dữ liệu hiện có hoặc tạo mới:
- Thực thi tệp CreateTable_vn_units.sql trong thư mục postgresql trước tiên trong cơ sở dữ liệu đích để tạo ra tất cả cấu trúc bảng.
- Tiếp theo, thực hiện tệp ImportData_vn_units.sql để nhập dữ liệu vào các bảng đã tạo.
MySQL - MariaDB
- Sử dụng cơ sở dữ liệu hiện có hoặc tạo mới:
- Thực thi tệp CreateTable_vn_units.sql trong thư mục mysql trước tiên trong cơ sở dữ liệu đích để tạo ra tất cả cấu trúc bảng.
- Tiếp theo, thực hiện tệp ImportData_vn_units.sql để nhập dữ liệu vào các bảng đã tạo.
Microsoft SQL Server
- Sử dụng cơ sở dữ liệu hiện có hoặc tạo mới:
- Thực thi tệp CreateTable_vn_units.sql trong thư mục sqlserver trước tiên trong cơ sở dữ liệu đích để tạo ra tất cả cấu trúc bảng.
- Tiếp theo, thực hiện tệp ImportData_vn_units.sql để nhập dữ liệu vào các bảng đã tạo.
Oracle
- Sử dụng cơ sở dữ liệu hiện có hoặc tạo mới:
- Thực thi tệp CreateTable_vn_units.sql trong thư mục oracle trước tiên trong cơ sở dữ liệu đích để tạo ra tất cả cấu trúc bảng.
- Tiếp theo, thực hiện tệp ImportData_vn_units.sql để nhập dữ liệu vào các bảng đã tạo.
Schema bảng
Bảng "administrative_regions"
Bảng "administrative_regions" chứa danh sách "8" vùng địa lý của Việt Nam với id tăng dần theo thứ tự vị trí vùng từ Bắc vào Nam.
Định nghĩa bảng
Cột | Kiểu dữ liệu | Ý nghĩa | Ràng buộc |
---|---|---|---|
id | integer | Mã của vùng | Khóa chính |
name | varchar(255) | Tên vùng trong tiếng Việt | |
name_en | varchar(255) | Tên vùng trong tiếng Anh | |
code_name | varchar(255) | Tên mã, phát sinh từ tên tiếng Việt, viết thường, gạch chân | |
code_name_en | varchar(255) | Tên mã, phát sinh từ tên tiếng Anh, viết thường, gạch chân |
Xem trước dữ liệu
id | name | name_en | code_name | code_name_en |
---|---|---|---|---|
1 | Đông Bắc Bộ | Northeast | dong_bac_bo | northest |
2 | Tây Bắc Bộ | Northwest | tay_bac_bo | northwest |
3 | Đồng bằng sông Hồng | Red River Delta | dong_bang_song_hong | red_river_delta |
4 | Bắc Trung Bộ | North Central Coast | bac_trung_bo | north_central_coast |
5 | Duyên hải Nam Trung Bộ | South Central Coast | duyen_hai_nam_trung_bo | south_central_coast |
6 | Tây Nguyên | Central Highlands | tay_nguyen | central_highlands |
7 | Đông Nam Bộ | Southeast | dong_nam_bo | southeast |
8 | Đồng bằng sông Cửu Long | Mekong River Delta | dong_bang_song_cuu_long | southwest |
Bảng "administrative_units"
Bảng "administrative_units" chứa danh sách các đơn vị hành chính với id được sắp xếp theo cấp độ từ đơn vị lớn nhất đến đơn vị nhỏ nhất.
Định nghĩa bảng
Cột | Kiểu dữ liệu | Ý nghĩa | Ràng buộc |
---|---|---|---|
id | integer | Mã của đơn vị hành chính | Khóa chính |
full_name | varchar(255) | Tên đầy đủ của đơn vị hành chính | |
full_name_en | varchar(255) | Tên đầy đủ của đơn vị hành chính (tiếng Anh) | |
short_name | varchar(255) | Tên ngắn của đơn vị hành chính | |
short_name_en | varchar(255) | Tên ngắn của đơn vị hành chính (tiếng Anh) | |
code_name | varchar(255) | Tên mã, phát sinh từ tên đầy đủ tiếng Việt, viết thường, gạch chân | |
code_name_en | varchar(255) | Tên mã, phát sinh từ tên đầy đủ tiếng Anh, viết thường, gạch chân |
Xem trước dữ liệu
id | full_name | full_name_en | short_name | short_name_en | code_name | code_name_en |
---|---|---|---|---|---|---|
1 | Thành phố trực thuộc trung ương | Municipality | Thành phố | City | thanh_pho_truc_thuoc_trung_uong | municipality |
2 | Tỉnh | Province | Tỉnh | Province | tinh | province |
3 | Thành phố thuộc thành phố trực thuộc trung ương | Municipal city | Thành phố | City | thanh_pho_thuoc_thanh_pho_truc_thuoc_trung_uong | municipal_city |
4 | Thành phố thuộc tỉnh | Provincial city | Thành phố | City | thanh_pho_thuoc_tinh | provincial_city |
5 | Quận | Urban district | Quận | District | quan | urban_district |
6 | Thị xã | District-level town | Thị xã | Town | thi_xa | district_level_town |
7 | Huyện | District | Huyện | District | huyen | district |
8 | Phường | Ward | Phường | Ward | phuong | ward |
9 | Thị trấn | Commune-level town | Thị trấn | Township | thi_tran | commune_level_town |
10 | Xã | Commune | Xã | Commune | xa | commune |
Bảng "provinces"
Bảng "provinces" chứa danh sách các đơn vị hành chính cấp tỉnh - cấp đơn vị lớn nhất, bao gồm 63 tỉnh thành.
Định nghĩa bảng
Cột | Kiểu dữ liệu | Ý nghĩa | Ràng buộc |
---|---|---|---|
code | varchar(20) | Mã đơn vị chính thức, xác định bởi chính phủ | Khóa chính |
name | varchar(255) | Tên trong tiếng Việt | |
name_en | varchar(255) | Tên trong tiếng Anh | |
full_name | varchar(255) | Tên đầy đủ trong tiếng Việt, bao gồm tên đơn vị hành chính | |
full_name_en | varchar(255) | Tên đầy đủ trong tiếng Anh, bao gồm tên đơn vị hành chính | |
code_name | varchar(255) | Tên mã, phát sinh từ tên tiếng Việt, viết thường, gạch chân | |
administrative_unit_id | integer | Id đơn vị hành chính của bản ghi này | Khóa ngoại, tham chiếu đến administrative_units.id |
administrative_region_id | integer | Vùng địa lý mà bản ghi này thuộc về | Khóa ngoại, tham chiếu đến administrative_regions.id |
Xem trước dữ liệu
code | name | name_en | full_name | full_name_en | code_name | administrative_unit_id | administrative_region_id |
---|---|---|---|---|---|---|---|
01 | Hà Nội | Ha Noi | Thành phố Hà Nội | Ha Noi | ha_noi | 1 | 3 |
30 | Hải Dương | Hai Duong | Tỉnh Hải Dương | Hai Duong | hai_duong | 2 | 3 |
46 | Thừa Thiên Huế | Thua Thien Hue | Tỉnh Thừa Thiên Huế | Thua Thien Hue | thua_thien_hue | 2 | 4 |
48 | Đà Nẵng | Da Nang | Thành phố Đà Nẵng | Da Nang | da_nang | 1 | 5 |
79 | Hồ Chí Minh | Ho Chi Minh | Thành phố Hồ Chí Minh | Ho Chi Minh | ho_chi_minh | 1 | 7 |
... | ....... | ....... | .............. | ............... | ...... | .. | .. |
Bảng "districts"
Bảng "districts" chứa danh sách các đơn vị hành chính cấp huyện - cấp đơn vị thứ hai, bao gồm 705 quận thuộc thành phố, quận đô thị, thị xã, huyện và thành phố thuộc tỉnh.
Định nghĩa bảng
Cột | Kiểu dữ liệu | Ý nghĩa | Ràng buộc |
---|---|---|---|
code | varchar(20) | Mã đơn vị chính thức, xác định bởi chính phủ | Khóa chính |
name | varchar(255) | Tên trong tiếng Việt | |
name_en | varchar(255) | Tên trong tiếng Anh | |
full_name | varchar(255) | Tên đầy đủ trong tiếng Việt, bao gồm tên đơn vị hành chính | |
full_name_en | varchar(255) | Tên đầy đủ trong tiếng Anh, bao gồm tên đơn vị hành chính | |
code_name | varchar(255) | Tên mã, phát sinh từ tên tiếng Việt, viết thường, gạch chân | |
province_code | integer | Mã tỉnh thành mà bản ghi này thuộc về | Khóa ngoại, tham chiếu đến provinces.code |
administrative_unit_id | integer | Id đơn vị hành chính của bản ghi này | Khóa ngoại, tham chiếu đến administrative_units.id |
Xem trước dữ liệu
code | name | name_en | full_name | full_name_en | code_name | province_code | administrative_unit_id |
---|---|---|---|---|---|---|---|
001 | Ba Đình | Ba Dinh | Quận Ba Đình | Ba Dinh | ba_dinh | 01 | 5 |
002 | Hoàn Kiếm | Hoan Kiem | Quận Hoàn Kiếm | Hoan Kiem | hoan_kiem | 01 | 5 |
003 | Tây Hồ | Tay Ho | Quận Tây Hồ | Tay Ho | tay_ho | 01 | 5 |
004 | Long Biên | Long Bien | Quận Long Biên | Long Bien | long_bien | 01 | 5 |
005 | Cầu Giấy | Cau Giay | Quận Cầu Giấy | Cau Giay | cau_giay | 01 | 5 |
... | ....... | ....... | .............. | ............... | ....... | .. | .. |
Bảng "wards"
Bảng "wards" chứa danh sách các đơn vị hành chính cấp xã - cấp đơn vị thứ ba, bao gồm 10.599 phường, xã và thị trấn cấp xã.
Định nghĩa bảng
Cột | Kiểu dữ liệu | Ý nghĩa | Ràng buộc |
---|---|---|---|
code | varchar(20) | Mã đơn vị chính thức, xác định bởi chính phủ | Khóa chính |
name | varchar(255) | Tên trong tiếng Việt | |
name_en | varchar(255) | Tên trong tiếng Anh | |
full_name | varchar(255) | Tên đầy đủ trong tiếng Việt, bao gồm tên đơn vị hành chính | |
full_name_en | varchar(255) | Tên đầy đủ trong tiếng Anh, bao gồm tên đơn vị hành chính | |
code_name | varchar(255) | Tên mã, phát sinh từ tên tiếng Việt, viết thường, gạch chân | |
district_code | integer | Mã quận huyện mà bản ghi này thuộc về | Khóa ngoại, tham chiếu đến districts.code |
administrative_unit_id | integer | Id đơn vị hành chính của bản ghi này | Khóa ngoại, tham chiếu đến administrative_units.id |
Xem trước dữ liệu
code | name | name_en | full_name | full_name_en | code_name | district_code | administrative_unit_id |
---|---|---|---|---|---|---|---|
25942 | Dĩ An | Di An | Phường Dĩ An | Di An | di_an | 724 | 8 |
25945 | Tân Bình | Tan Binh | Phường Tân Bình | Tan Binh | tan_binh | 724 | 8 |
25948 | Tân Đông Hiệp | Tan Dong Hiep | Phường Tân Đông Hiệp | Tan Dong Hiep | tan_dong_hiep | 724 | 8 |
25951 | Bình An | Binh An | Phường Bình An | Binh An | binh_an | 724 | 8 |
25954 | Bình Thắng | Binh Thang | Phường Bình Thắng | Binh Thang | binh_thang | 724 | 8 |
... | ..... | ..... | ........... | ........... | ...... | .. | .. |
Các truy vấn mẫu
Bạn có thể dễ dàng tạo truy vấn để lấy tất cả loại dữ liệu mà bạn cần vì các bảng được tham chiếu rõ ràng qua các khóa ngoại. Dưới đây là một số truy vấn mẫu để bạn bắt đầu:
Lấy tất cả các tỉnh thành trong một vùng địa lý
Lấy tất cả các tỉnh thành thuộc vùng Đông Nam Bộ (id = 7)
SELECT * FROM provinces
WHERE administrative_region_id = 7
code | name | name_en | full_name | full_name_en | code_name | administrative_unit_id | administrative_region_id |
---|---|---|---|---|---|---|---|
79 | Hồ Chí Minh | Ho Chi Minh | Thành phố Hồ Chí Minh | Ho Chi Minh | ho_chi_minh | 1 | 7 |
... | ....... | ....... | .............. | ............... | ....... | .. | .. |
Lấy tất cả các quận huyện thuộc một tỉnh thành
Lấy tất cả các quận huyện thuộc tỉnh Khánh Hòa
SELECT * FROM districts
WHERE province_code = 56
code | name | name_en | full_name | full_name_en | code_name | province_code | administrative_unit_id |
---|---|---|---|---|---|---|---|
569 | Cam Ranh | Cam Ranh | Thành phố Cam Ranh | Cam Ranh | cam_ranh | 56 | 8 |
... | ....... | ....... | .............. | ............... | ....... | .. | .. |
Lấy tất cả các xã thuộc một quận huyện
Lấy tất cả các xã thuộc thị xã Ninh Hòa
SELECT * FROM wards
WHERE district_code = 22546
code | name | name_en | full_name | full_name_en | code_name | district_code | administrative_unit_id |
---|---|---|---|---|---|---|---|
22528 | Ninh Hiệp | Ninh Hiep | Phường Ninh Hiệp | Ninh Hiep | ninh_hiep | 22546 | 8 |
... | ....... | ....... | .............. | ............... | ....... | .. | .. |
Các câu hỏi thường gặp
Nguồn dữ liệu gốc được phát triển từ đâu?
Nguồn dữ liệu gốc là tệp CSV từ trang web Tổng cục Thống kê Việt Nam. Bạn có thể vào trang web, đánh dấu vào ô kiểm "Quận Huyện, Phường Xã", sau đó nhấp vào nút "Xuất Excel" để tải tệp CSV.
Khóa chính được định nghĩa như thế nào?
- Bảng administrative_regions: Khóa: id. Bắt đầu từ 1 đến 8, theo thứ tự vị trí địa lý từ Bắc vào Nam.
- Bảng administrative_units: Khóa: id. Bắt đầu từ 1 đến 10, theo thứ tự cấp độ từ đơn vị lớn nhất đến đơn vị nhỏ nhất.
- Bảng provinces: Khóa: code. Được chính phủ xác định theo mã đơn vị hành chính.
- Bảng districts: Khóa: code. Được chính phủ xác định theo mã đơn vị hành chính.
- Bảng wards: Khóa: code. Được chính phủ xác định theo mã đơn vị hành chính.
Tại sao tôi không tìm thấy các quận 2, 9 và Thủ Đức?
Các quận 2, 9 và Thủ Đức đã được sáp nhập thành một thị xã thuộc thành phố Thủ Đức gần đây. Do đó, tất cả các xã của họ được gắn trực tiếp vào thực thể quận thị xã Thủ Đức, mã 769.
Làm thế nào để cập nhật bộ dữ liệu hiện có?
Chính phủ có thể công bố từ từ các nghị định mới để thay đổi cấu trúc đơn vị hành chính theo thời gian.
Nếu bạn muốn kiểm tra tình trạng hiện tại của bộ dữ liệu tỉnh thành, chỉ cần thực thi tập lệnh patch_checker.sql và áp dụng bản vá thiếu (nếu có) trong thư mục patch.
Đây là Ví dụ đầu ra từ tập lệnh patch_checker:
nghidinh_469_nq_ubtvqh15 vietnamese_provinces_dataset_up_to_date true true
Hoặc bạn có thể làm mới hoàn toàn bảng Vietnamese provinces hiện có trong cơ sở dữ liệu của bạn bằng cách hủy liên kết tất cả các tham chiếu của bạn, sau đó xóa các bảng tỉnh thành này và tạo lại và nhập tất cả bộ dữ liệu tỉnh thành, sau đó khôi phục lại mối quan hệ giữa dữ liệu của bạn và bảng tỉnh thành.
Tôi đã thấy một số vấn đề trong bản vá SQL?
Nếu bạn thấy bất kỳ cải tiến nào có thể được thực hiện, vui lòng mở một vấn đề và ghi lại những gì bạn đã tìm thấy. Hoặc tốt hơn hết là tạo Pull Request. Mọi đóng góp đều được hoan nghênh.
Tôi muốn phiên bản JSON
Vui lòng xem daohoangson/dvhcvn là phiên bản JSON thay thế.