PostgreSQL常用函数

几何函数

基本数据库常用操作

1 查询时构造结果字段(注意区别1和2,我是会经常弄混)

(1)构造查询结果name字段,将a作为查询name 的查询结果

select 'a' as name ,id ,age from user

 (2)从表中查数据另起别名

select name as username ,id ,age from user

 2 "::"表达式

:: 相当于cast操作,转换操作

select now()::timestamp(0);
select now()::date;

3 cast 函数:

将表达式内的数据类型转换为指定的数据类型

cast(exp as db_type(limit_long))

exp表中类型,db_type数据库支持的类型,字段limit_long长度限制

select cast(id as varchar(20)) as uid ,age from user

 将id查询结果转换为str类型,限制长度为20,新命名为uid

4 row_to_json(table_name):

将表中数据转换为json格式的

select row_to_json(user) from user;
select row_to_json(user.*) from user;

5 将表中的一部分字段转换为json,然后在作为镶嵌查询的结果(重在思路)

SELECT
	username,(
	SELECT
		row_to_json ( temp ) 
	FROM
		( SELECT cast( t.id AS VARCHAR ( 20 )) AS uid, t.type ) AS temp 
	) AS list 
FROM
	USER AS t

6 ARRAY_AGG(table_name)

将表中数据合并到一个集合中

7 array_to_json(arr)

将集合数据转为json

8 concat ("aim_str",db_clumn)

字段拼接函数

9 truncate截断表操作

10 pg 数据库使用fwd转移数据:

(1 )目标库执行
select create_mapper_server('被映射的schema名字','host','port','数据库名','用户名','密码','接收数据的schema名','foreign_server_test')
参数介绍:
'foreign_server_test'中的test可以替换,其他需要保持一致
 

11 pg数据库的几何函数:

  ST_GeomFomGeoJson ('geometry的json 数据') 将geojson数据转换为geometry数据对象
  ST_GeomFromText('wkt字符串')将wkt数据转换为geometry数据对象
  ST_GeomFromText('wkt字符串','坐标系')将wkt数据转换为geometry数据对象
  ST_SETSRID('geometry'.'坐标系') 给geometry设置坐标格式
  ST_SRID('geometry') 获取坐标系数
  ST_MakeEnvelope(double precision xmin,double precision ymin,double precision xmax,double precision ymax,integer srid)用给定的坐标的最大值,最小值,构建一个多边形几何对象
  ST_TransForm(geometry,srid) 将geometry格式化成指定的坐标系数据
  ST_Intersects(into geometry, aim geometry)获取输入几何和库中几何的相交对象
  ST_AsGeoJSON(geometry) 讲几何对象转换为字符串对象
  ST_Envelope(geometry)获取几何的边界范围对象
  ST_Centroid(geometry) 获取几何的中心
  ST_Area(geometry) 面积测量
  ST_Lenth(geometry) 长度测量
  ST_PointOnSurface(geometry)获取曲面上的一个点
  ST_Boundary(geometry)获取边界
 

12 oracel使用游标批量更新百万条数据:

   更新之前记得备份操作

DECLARE
CURSOR c_data IS SELECT ROWID, column1 FROM your_table WHERE condition;
v_batch_size CONSTANT INT := 50000;
    v_counter INT := 0;
BEGIN
FOR r IN c_data LOOP
UPDATE your_table t SET t.column1 = r.new_value WHERE t.ROWID = r.ROWID;
v_counter := v_counter + 1;
        IF MOD(v_counter, v_batch_size) = 0 THEN
            COMMIT;
END IF;
END LOOP;
COMMIT;
EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
        -- 处理错误
END;

13 更多函数学习可参考:

https://www.jianshu.com/p/4022de46d8df
https://help.aliyun.com/document_detail/95626.html
https://www.w3cschool.cn/wqf_database/wqf_database-ip53284h.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理之三,主要讲解以下内容:1.     PostgreSQL约束讲解和剖析2.     PostgreSQL数据类型3.     PostgreSQL的结构管理4.     PostgreSQL条件表达式和操作5.     PostgreSQL使用小技巧

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值