postgres 数据库常用sql语句

打开cmd命令窗口,进入到 postgres数据库的安装路径,例如:E:\Program Files\PostgreSQL\9.3\bin


1、导出整个数据库

格式: pg_dump -h localhost (服务器ip地址) -U postgres(用户名) 数据库名(缺省时同用户名)   >/data/dum.sql

例如:把 本机localhost上的memberMap 数据库全部导出 到 dum.sql 文件中

E:\Program Files\PostgreSQL\9.3\bin> pg_dump -h localhost -U postgres memberMap >dum.sql


2、导出某个数据库的一张表数据

格式:pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)  -t table(表名) >/data/dum.sql

例如:从 192.168.1.113服务器上导出 memberMap数据库的 t_mall表数据

E:\Program Files\PostgreSQL\9.3\bin>pg_dump -h 192.168.1.113 -U postgres -t t_mall memberMap>dum4.sql


3、导入数据文件到某个数据库

格式: psql -h(要导入库的IP地址) -U postgres(用户名)  数据库名(缺省时同用户名) < /data/dum.sql

例如:把dum4.sql文件导入到 192.168.10.48 服务器的longhutest库里

E:\Program Files\PostgreSQL\9.3\bin>psql -h 192.168.10.48 -U postgres longhutest<dum4.sql


4、postgis 空间查询

      矩形、多变形查询:格式 ST_Within(geom,ST_GeomFromText('POLYGON((多变形坐标))', 4326))

例如: select projguid,projname,x,y from loupan WHERE ST_Within(geom,ST_GeomFromText('POLYGON((99.065391 39.33249,108.190451 39.33249,108.190451 34.854516,99.065391 34.854516,99.065391 39.33249))', 4326))

 


圆形查询:格式 ST_DWithin(ST_Transform(ST_GeomFromText('POINT(中心点坐标 centers)',4326),26986),ST_Transform(geom,26986),圆半径radius)

例如:
select projguid,projname,x,y from loupan WHERE ST_DWithin(ST_Transform(ST_GeomFromText('POINT(103.22318 36.945976)',4326),26986),ST_Transform(geom,26986),331591.686399332)


5、往空间字段插入坐标值

INSERT INTO SPATIALTabLE ( THE_GEOM, THE_NAME )   VALUES ( GeomFromText(''POINT(117.10 40.13)''), ''Mitchell'' )

6、修改空间字段的值

update t_uptown set coords=ST_GeomFromText('POINT(116.498 39.383)', 4326) where hid=22

7、查询显示出空间字段存储的坐标值

select   ST_AsText(ST_Transform(geom,4326))  from province


8、把空间字段 geom 的坐标值,赋值给属性字段 X、Y

update people set x=st_x(geom),  y=st_y(geom)  where geom is not null


9、分页查询

select * from people where address like '%望京湖光中街秀景沁园203#3105%'  limit 100 offset 0


10、字段值替换


update people set address=replace(address,'#','号')   where address is not null and address<>''


11、重命名列名:

ALTER TABLE t_uptown RENAME COLUMN "updateDate" TO updateDate


12、两表关联修改
例如: 找到  t_uptown 表中 hid 和 tmp 表中 id 相等的所有记录, 然后把district 字段的值批量修改为 tmp 表 anm字段的值

update t_uptown u set u.district=t.anm from tmp t
where u.hid=t.id


13、根据出生日期,计算出年龄的函数:
select EXTRACT(YEAR FROM age(to_timestamp('1989-02-05', 'YYYY-MM-DD')))

UPDATE public.t_member SET age=EXTRACT(YEAR FROM age(birthday));


14、postgresql 重置序列 SEQUENCE

查询得到 序列 increment_num 当前是什么值:

select setval('increment_num', 1, false)

把 序列 increment_num 重新修改为从 105 开始

ALTER SEQUENCE 'increment_numRESTART WITH 105;


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值