Herramientas de usuario

Herramientas del sitio


informatica:base_de_datos:ubigeos_peru_manejo

Ubigeos Perú Manejo

Crear una tabla de Ubigeos

Importo la tabla en csv con todos los campos varchar(200)

-- Para PostgreSQL
SELECT * FROM equivalencia_ubigeos_oti_concytec_csv

– el query de SQL

CREATE TABLE ubigeos_dep(
 
	cod_dep_inei CHAR(2) UNIQUE PRIMARY KEY,
	desc_dep_inei VARCHAR(13)
 
);
CREATE UNIQUE INDEX idx_ubigeos_dep_desc_dep_inei
	ON ubigeos_dep USING BTREE(desc_dep_inei)
 
INSERT INTO ubigeos_dep( cod_dep_inei, desc_dep_inei )
SELECT cod_dep_inei, desc_dep_inei FROM equivalencia_ubigeos_oti_concytec_csv
WHERE desc_dep_inei <> 'NA'
GROUP BY cod_dep_inei, desc_dep_inei
ORDER BY cod_dep_inei ASC
 
-----------
 
CREATE TABLE ubigeos_prov(
	cod_prov_inei CHAR(4) UNIQUE PRIMARY KEY,
	cod_dep_inei CHAR(2),
	desc_prov_inei VARCHAR(25),
	CONSTRAINT fk_ubigeos_prov_dep
		FOREIGN KEY(cod_dep_inei)
			REFERENCES ubigeos_dep(cod_dep_inei)
);
CREATE INDEX idx_ubigeos_prov_cod_dep_inei
	ON ubigeos_prov USING BTREE(cod_dep_inei);
CREATE UNIQUE INDEX idx_ubigeos_prov_desc_prov_inei
	ON ubigeos_prov USING BTREE(desc_prov_inei)
 
INSERT INTO ubigeos_prov(cod_prov_inei,cod_dep_inei,desc_prov_inei)
SELECT 
	cod_prov_inei,
	cod_dep_inei,
	desc_prov_inei
FROM equivalencia_ubigeos_oti_concytec_csv
WHERE desc_prov_inei <> 'NA'
GROUP BY cod_prov_inei,
		 cod_dep_inei,
		 desc_prov_inei
ORDER BY cod_prov_inei ASC
 
---------------
 
 
CREATE TABLE ubigeos_dist(
	cod_ubigeo_inei CHAR(6) UNIQUE PRIMARY KEY,
	cod_prov_inei CHAR(4),
	cod_dep_inei CHAR(2),
	desc_ubigeo_inei VARCHAR(36),
	CONSTRAINT fk_dist_dep
		FOREIGN KEY( cod_dep_inei )
			REFERENCES ubigeos_dep( cod_dep_inei ),
	CONSTRAINT fk_dist_prov
		FOREIGN KEY ( cod_prov_inei )
			REFERENCES ubigeos_prov( cod_prov_inei )
);
CREATE INDEX idx_ubigeos_dist_cod_dep
	ON ubigeos_dist USING BTREE(cod_dep_inei);
CREATE INDEX idx_ubigeos_dist_cod_prov
	ON ubigeos_dist USING BTREE(cod_prov_inei);
CREATE INDEX idx_ubigeos_dist_desc_ubigeo
	ON ubigeos_dist USING BTREE(desc_ubigeo_inei)
 
INSERT INTO ubigeos_dist(
	cod_ubigeo_inei,
	cod_prov_inei,
	cod_dep_inei,
	desc_ubigeo_inei
)
SELECT 
	cod_ubigeo_inei,
	cod_prov_inei,
	cod_dep_inei, 
	desc_ubigeo_inei
FROM equivalencia_ubigeos_oti_concytec_csv
WHERE desc_ubigeo_inei <> 'NA'
ORDER BY cod_ubigeo_inei ASC
 
-----
 
--drop view vst_ubigeos
CREATE VIEW vst_ubigeos AS 
SELECT 
	d.cod_ubigeo_inei AS cod_ubigeo,
		d.desc_ubigeo_inei AS desc_ubigeo,
	p.cod_prov_inei AS cod_prov,
		p.desc_prov_inei AS desc_prov,
	e.cod_dep_inei AS cod_dep,
		e.desc_dep_inei AS desc_dep
FROM ubigeos_dist AS d
LEFT JOIN ubigeos_prov AS p
	ON p.cod_prov_inei  = d.cod_prov_inei 
LEFT JOIN ubigeos_dep AS e
	ON e.cod_dep_inei = d.cod_dep_inei

sobre los indexados rtree btree

Index types : The optional USING clause can be used to specify the type of index to implement. PostgreSQL 7.1.x supports three types of indices including:

  1. B-tree
  2. R-tree
  3. Hash

“Prior releases of PostgreSQL also had an R-tree index method. This method has been removed because it had no significant advantages over the GiST method. If USING rtree is specified, CREATE INDEX will interpret it as USING gist, to simplify conversion of old databases to GiST.”


informatica/base_de_datos/ubigeos_peru_manejo.txt · Última modificación: 2025/04/07 23:30 por admin