zoukankan      html  css  js  c++  java
  • PostgreSQL和PostGIS常用入门命令

    1 命令程序

    ① psql命令

    psql是一个可执行程序,位于pg安装目录的bin目录下,语法

    psql -h localhost -U <用户名>  -d <数据库名> -p <端口号>
    

    然后就会让你输入密码,登录后,命令提示符就会有这样的提示信息:

    <数据库名称>=#:
    

    输入SQL语句和以下命令都可以。

    查询数据库本身的操作

    -- 列出所有数据库
    l
    
    -- 切换数据库
    c <数据库名>
    
    -- 查询所有表
    dt
    
    -- 查看某个表的描述(列的类型)
    d <表名>
    
    -- 使用内嵌vim编辑器写sql语句,能临时保存,可以执行
    e
    
    -- 查询当前扩展
    dx
    
    -- 截断、退出长文本显示
    q
    

    ② pg_ctl命令

    pg_ctl是一个可执行程序,位于pg安装目录的bin目录下。用它来查看版本或启动数据库的例子:

    # 查看pg版本
    pg_ctl --version
    
    # 启动数据库服务
    # pg_ctl -D <路径>,如果配了PGDATA环境变量就不用加-D参数
    pg_ctl -D D:PGData
    

    2 创建postgis命令

    如果是安装postgis(Windows安装包安装)时顺带安装了模板数据库,那么默认会启用如下扩展:

    ① 创建数据库

    create database <数据库名>;
    

    ② 创建扩展

    -- create extension <扩展名>;
    -- 大小写都可以,别忘了分号结尾
    
    -- 3.0之后只用postgis扩展将仅支持矢量数据
    create extension postgis;
    -- 栅格扩展
    create extension postgis_raster;
    -- 拓扑扩展
    create extension postgis_topology;
    

    如果仅仅需要支持空间矢量数据,那么只需要第一个扩展即可。

    ③ 卸载扩展

    和创建扩展一样,不列详细的了,列出语法

    drop extension <扩展名>;
    

    ④ 升级、更改扩展

    -- alter extension <扩展名> update to "<版本号>";
    alter extension postgis update to "3.0.1";
    

    3 创建数据表命令

    ① 创建带有几何数据列的表

    create table mytable (
    	id serial primary key,
        geom geometry(point, 3857),
        name varchar(128)
    );
    

    ② 创建索引

    create index mytable_gix 
    	on mytable
    	using gist(geom);
    

    ③ 创建一个点

    -- 使用EPSG:3857坐标系,创建一个0,0的点
    insert into mytable (geom) values (
        st_geomfromtext('POINT(0 0)', 3857)
    );
    

    ④ 查询举例:最近点查询

    -- 使用st_geomfromtext()函数,搜索(1,2)这个坐标系是EPSG:3857的点10米内的点,返回id和name
    select id, name
    from mytable
    where st_dwithin(
    	geom,
        st_geomfromtext('POINT(1 2)', 3857),
        10
    );
    

    版权没有,翻译自pg和postgis官方文档。均经过实验。https://www.cnblogs.com/onsummer/p/12940502.html
    小专栏的GIS前后端应用、开发内容更多,欢迎订阅 https://xiaozhuanlan.com/topic/5689143270

  • 相关阅读:
    C++ Builder XE2随意学习 (5) > 我的学习路线
    麻省理工公开课:电路和电子学 (2) > 基本电路分析法
    C++ Builder XE2随意学习 (4) > Delphi XE2官方视频教程31天
    日志收集系统elk
    mysql笔记第一天: 介绍和MySQL编译安装
    rsync服务搭建2018.5.8 [优化后最终版]
    docker基础使用和资源限制
    zabbix第一天 zabbix安装,添加监控项
    你好,测试markdown
    LVM扩容案例
  • 原文地址:https://www.cnblogs.com/onsummer/p/12940502.html
Copyright © 2011-2022 走看看