SQL:常见空间与属性数据库的操作

PostgreSQL数据库与对应的空间拓展postGIS的初步使用总结

属性操作:(以下表名用table表示,字段名用field表示)

//创建表语句:

create TABLE framework1.table1
(
  gid integer NOT NULL DEFAULT ......,
  field1 type1,
  field2 type2,
  geom geometry(PointZM),
  CONSTRAINT table1_pkey PRIMARY KEY (gid)
)

//查询语句:

select table.field from table where field = DDD;  

//插入语句:

insert into table(field1,field2,field3,field4,field5,field6) values('SS1','SS2','SS3',DD1,DD2,DD3);

//复制表中某字段的所有内容到另一字段

update table1 set field2= field1 ; 

//将表中某一字段所有值均赋为SSS

update table1 set field2= 'SSS' ; 

空间操作

//创建空间信息

select AddGeometryColumn('table_name','column_name',new_srid,'MULTIPOINT',dim); //参数依次为表名、字段名、坐标系代号、几何类型、维度

例:

select AddGeometryColumn('own_point','point_geom',4326,'MULTIPOINT',3);

//加载GIS数据,例:

insert into roads(road_id, roads_geom, road_name) values(1,st_geomfromtext('linestring(191232 243118,191108 243242)',-1),'Jeff Rd')

//转换数据显示 

select ST_AsText(geom) FROM public.table1;
select ST_AsEwkt(geom) FROM public.table1;
SELECT gid, ST_AsText(geom), ST_AsEwkt(geom), ST_X(geom), ST_Y(geom) FROM public.table1;

//显示表中任意两个几何对象的距离(第三个参数为可选项,可指定椭球参数(椭球体名、半主轴长、扁率)计算)

SELECT ST_Distance_Sphere(p1.geom,p2.geom,'SPHEROID["GRS_1980",6378137,298.257222]') FROM table1 AS p1, table2 AS p2 WHERE p1.gid > p2.gid;

//判断某点与表中几何对象的距离关系(以point(121,32)为例,找出距离在1000以内的表中所有几何对象)

select st_distance(p1.geom::geography, ST_GeomFromText('POINT(121 32)', 4326)::geography) from table1 as p1 where ST_dwithin(p1.geom::geography, ST_GeomFromText('POINT(121 32)', 4326)::geography, 1000);

类似还有st_Contains(…)函数、st_covers(..)函数等。都可以在数据库->架构->函数里查看。

具体关于geometry的几何关系的详细说明,可以参考PostGIS中的Geometry相互关系

关于PostGIS常用函数的使用,可以参考PostgreSQL+PostGIS 的使用【转】

在导入shp数据到数据库时,若没有设置srid,则会默认srid为0。可通过ST_srid(geom)函数查询。srid为0时,PostGIS无法获知你数据的坐标系,也就无法使用st_transform()函数进行转换。首先需要设置自己数据的srid。语句如下:

SELECT UpdateGeometrySRID('table','geom',4326);     

SQL语句通俗记法:

with–>“和”,as–>“指代为”,where–>“条件–当”,from–>”从哪里”

..本人新手,正在学习,持续更新,欢迎指导。


转载自:https://blog.csdn.net/q1398284020/article/details/79810708

You may also like...

退出移动版