7天玩转PostgreSQL基础训练营(六)
【摘要】 第六天 华为云数据库PostgreSQL: 插件管理及使用 了解RDS for PostgreSQL的插件使用方法、内置插件及如何添加插件
第六天 华为云数据库PostgreSQL: 插件管理及使用
了解RDS for PostgreSQL的插件使用方法、内置插件及如何添加插件
打卡任务
在 PostgreSQL12上,安装 postgis插件,使用 geometry数据类型存储城市坐标,并计算所有城市之间的距离(具体数据参考 postgis插件的使用章节)。
1.登录你的云数据库
2.登录之后先查一下你pg里现有什么插件
/*查看PG现有插件*/
SELECT *FROM pg_extension
3.安装 postgis插件
/*安装postgis插件*/
CREATE EXTENSION postgis;
/*查看PG现有插件*/
SELECT *FROM pg_extension
3.建表插入三个城市数据 计算三个城市间任意两个城市距离
/*几何表创建*/
CREATE TABLE cities ( id integer, city_name varchar(50) );
/*插入任意三个城市*/
INSERT INTO cities (id, position, city_name) VALUES (1,ST_GeomFromText('POINT(-9.5 23)',4326),'CityA');
INSERT INTO cities (id, position, city_name) VALUES (2,ST_GeomFromText('POINT(-10.6 40.3)',4326),'CityB');
INSERT INTO cities (id, position, city_name) VALUES (3,ST_GeomFromText('POINT(20.8 30.3)',4326), 'CityC');
/*计算三个城市间任意两个城市距离*/
SELECT p1.city_name,p2.city_name,ST_Distance(p1.position,p2.position) FROM cities AS p1, cities AS p2 WHERE p1.id > p2.id;
4.建表插入北京西安上海数据
/*创建表,使用 geometry类型存储坐标*/
create table city_location (id int4, pt geometry, city_name text);
insert into city_location values(1,'POINT(0 0)','北京');
insert into city_location values(2, 'POINT(40 30)','西安');
insert into city_location values (3, 'POINT(55.77 66.62)','上海');
/*查看数据*/
select* from city_location;
5.计算所有城市之间的距离
/*计算所有城市之间的距离*/
SELECT p1.city_name,p2.city_name,ST_Distance(p1.pt,p2.pt) FROM city_location AS p1, city_location AS p2 WHERE p1.id > p2.id;
6.计算城市到北京的距离
/*计算其他城市到北京的距离*/
SELECT ST_Distance( pt,'POINT(0 0)') FROM city_location;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)