PostgreSQL常用函数
NUMERIC(10);
if tg_op = 'INSERT' then V_id := new.id; V_FLAG := 'I'; end if;
if tg_op = 'UPDATE' then V_id := new.id; V_FLAG := 'I'; end if;
if tg_op = 'DELETE' then V_id := old.id; V_FLAG := 'D创建完trigger 函数后建立trigger CREATE TRIGGER t$_job AFTER INSERT OR DELETE OR UPDATE ON public.jobs_job FOR EACH ROW EXECUTE PROCEDURE test();
PosggreSQL常用函数语法
Start:2011.01.24 Updated:2011.04.09 王凡 wangfan wf141732@ woshiwangfan@
版本 1.0
修改日期 2011.04.09
内容 创建
1. 简介
1.1. 环境信息 PostgreSQL:9.0.2 1.2. 相关文档
2. 软件准备
2.1. 软件安装 见《PostgreSQL与Python》
3. 函数
3.1. 当前时间 获取当前日期: select CURRENT_DATE;
获取当前时间: select CURRENT_TIME;
获取日期时间: select CURRENT_TIMESTAMP;
3.2. 唯一列索引 Oracle里面有rowid,在psql里面用ctid替代下!
insert into public.J$jobs_job ( JRN_SUBSCRIBER, JRN_CONSUMED, JRN_FLAG, JRN_DATE, id ) select JRN_SUBSCRIBER, '0', V_FLAG,
4
CURRENT_TIMESTAMP, V_id from where RETURN new; END $BODY$ LANGUAGE plpgsql VOLATILE COST 100; public.SNP_SUBSCRIBERS JRN_TNAME = 'public.jobs_job';
4.2. 创建trigger函数 和oracle很类似,和oracle不同的是在数据行的时候new old之前没有: CREATE OR REPLACE FUNCTION test() RETURNS trigger AS $BODY$ declare V_FLAG VARCHAR(1);
3
V_id begin
2
3.3. 多项选择 在oracle里面有decode,psql里面使用标准的case..when Oracle: decode (value, 0, 'zero', 1, 'one', 'unknown') Psql: CASE value WHEN 0 THEN 'zero' WHEN 1 THEN 'one' ELSE 'unknown' END
4. 语法
4.1. 外连接 t1是主表,需要取出t1中的所有数据 SELECT * FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); SELECT * FROM t1 LEFT OUTER JOIN t2 USING (col); 相当于oracle中的 Select * from t1,t2 where t1.col=t2.col(+)
4.4. 删除trigger
删除trigger很简单 DROP TRIGGER name ON table [ CASCADE | RESTRICT ]; Drop trigger t$_job on public.jobs_job
5. 常见问题
5.1.
5
postgre sql常用函数
postgre sql常用函数
在PostgreSQL中常用的函数有以下几种:
1. 聚合函数:用于对数据进行分组计算,常见的聚合函数有SUM、AVG、COUNT、MIN、MAX等。
2. 数学函数:用于进行数学运算,常见的数学函数有ABS(取绝对值)、ROUND(四舍五入)、CEIL(向上取整)、FLOOR(向下取整)等。
3. 字符串函数:用于对字符串进行操作,常见的字符串函数有CONCAT(拼接字符串)、SUBSTRING(截取子串)、LENGTH(计算字符串长度)等。
4. 日期函数:用于处理日期和时间数据,常见的日期函数有NOW (获取当前时间)、DATE_PART(提取日期部分)、DATE_TRUNC(截断日期部分)等。
5. 条件函数:用于根据条件进行计算,常见的条件函数有CASE WHEN(条件判断)、COALESCE(返回第一个非空值)等。
6. 转换函数:用于进行数据类型的转换,常见的转换函数有CAST (将数据类型转换为指定类型)、TO_CHAR(将日期转换为字符串)等。
7. 窗口函数:用于在查询结果中进行窗口操作,常见的窗口函数有ROW_NUMBER(返回行号)、RANK(返回排名)等。
这些是PostgreSQL中常用的函数,根据具体的业务需求,还可以使用更多的函数进行数据处理和计算。
PostgreSQL常用函数
PostgreSQL常用函数PostgreSQL内置函数也称为聚合函数,用于对字符串或数字数据执行处理。
下面是所有通用PostgreSQL内置函数的列表:•COUNT 函数:用于计算数据库表中的行数。
•MAX 函数:用于查询某一特定列中最大值。
•MIN 函数:用于查询某一特定列中最小值。
•AVG 函数:用于计算某一特定列中平均值。
•SUM 函数:用于计算数字列所有值的总和。
•ARRAY 函数:用于输入值(包括null)添加到数组中。
•Numeric 函数:完整列出一个SQL中所需的操作数的函数。
•String 函数:完整列出一个SQL中所需的操作字符的函数。
数字函数需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。
除非特别指明,任何特定形式的函数都返回和他的参数相同的数据类型。
函数返回类型描述例子结果abs()绝对值abs(-17.4)17.4 cbrt(double)立方根cbrt(27.0)3ceil(double/numeric)不小于参数的最小整数ceil(-42.8)-42degrees(double)把弧度转为角度degrees(0.5)28.6478897565412 exp(double/numeric)自然指数exp(1.0) 2.71828182845905floor(double/numeric)不大于参数的最大整数floor(-42.8)-43ln(double/numeric)自然对数In(2.0)0.693147180559945 log(double/numeric)10为底的对数log(100,0)2log(b numeric,x numeric)numeric指定底数的对数log(2.0,64.0) 6.0000000000mod(y,x)取余数mod(9,4)1pi()double"TT"常量pi() 3.14159265358979 power(a double,b double)double求a的b次幂power(9.0,3.0)729Power(a numeric,b numeric求a的b次幂power(9.0,3.0)729numeric)radians(double)double把角度转为弧度radians(45.0)0.785398163397448random()double 0.0到1.0之间的随机数值random()round(double/numeric)圆整为最接近的整数round(42.4)42round(v numeric,s int)numeric 圆整为s位小数数字round(42.438,2)42.44sign(double/numeric)参数的符号(-1,0,+1)sign(-8.4)-1sqrt(double/numeric)平方根sqrt(2.0) 1.4142135623731 trunc(double/numeric)截断(向零靠近)trunc(42.8)42trunc(v numeric,s int)numeric 截断为s小数位置的数字trunc(42.438,2)42.43字符串函数和操作符下面是PostgreSQL中提供的字符串操作符列表函数返回类型说明例子结果string || string text字串连接'Post' || 'greSQL'PostgreSQLbit_length(string)int 字串里二进制位的个数bit_length('netstars')64char_length(string)int 字串中的字符个数char_length('netstars')8lower(string)text 使用指定的转换名字改变编码。
postgre 数据库函数
postgre 数据库函数PostgreSQL数据库函数是一种强大的工具,可以帮助开发人员更高效地处理和管理数据。
使用这些函数,可以轻松地执行各种操作,如数据插入、更新、删除和查询等。
本文将介绍一些常用的PostgreSQL数据库函数,帮助读者更好地理解和应用它们。
一、数据插入函数PostgreSQL提供了多种数据插入函数,可以根据不同的需求选择合适的函数。
其中,最常用的是INSERT INTO函数。
该函数可以将数据插入到指定的表中,并指定相应的字段和值。
例如,我们可以使用以下语句将数据插入到名为"employees"的表中:```INSERT INTO employees (id, name, age, department) VALUES (1, 'John Doe', 30, 'IT');```二、数据更新函数PostgreSQL中的数据更新函数可以帮助我们在数据库中对现有数据进行更新操作。
其中,最常用的是UPDATE函数。
该函数可以根据指定的条件更新表中的数据。
例如,我们可以使用以下语句将名字为"John Doe"的员工的年龄更新为35岁:```UPDATE employees SET age = 35 WHERE name = 'John Doe';```三、数据删除函数PostgreSQL中的数据删除函数可以帮助我们删除数据库中的数据。
其中,最常用的是DELETE函数。
该函数可以根据指定的条件删除表中的数据。
例如,我们可以使用以下语句删除名字为"John Doe"且年龄大于30岁的员工:```DELETE FROM employees WHERE name = 'John Doe' AND age > 30; ```四、数据查询函数PostgreSQL中的数据查询函数可以帮助我们从数据库中检索所需的数据。
pgsql函数语法
pgsql函数语法PostgreSQL (常被称为"pgsql") 是一种强大的开源对象-关系数据库管理系统。
除了SQL 标准语法外,PostgreSQL 还提供了大量的内置函数和操作符,用于处理各种数据操作和转换。
以下是PostgreSQL 中一些常见函数的概述和示例:1. 字符串函数:•length(string): 返回字符串的长度。
sql`SELECT length('PostgreSQL'); -- 返回10`* upper(string): 将字符串转换为大写。
sql`SELECT upper('hello'); -- 返回'HELLO'`* lower(string): 将字符串转换为小写。
sql`SELECT lower('HELLO'); -- 返回'hello'`2. 数值函数:•abs(number): 返回数的绝对值。
sql`SELECT abs(-10); -- 返回10`* ceiling(number): 返回大于或等于给定数的最小整数。
sql`SELECT ceiling(10.75); -- 返回11`* floor(number): 返回小于或等于给定数的最大整数。
sql`SELECT floor(10.25); -- 返回10`3. 日期和时间函数:•now(): 返回当前日期和时间。
sql`SELECT now();`* age(timestamp, timestamp): 返回两个时间戳之间的差异。
sql`SELECT age('2023-10-23 10:00:00', '2023-10-23 09:00:00');`4. 数组函数:•array_append(anyelement, array): 向数组添加一个元素。
sql`SELECT array_append(5, ARRAY[1,2,3]); -- 返回ARRAY[1,2,3,5]`5. 聚合函数: 如sum(), avg(), max(), min(), 和count() 等,常用于对查询结果进行统计。
pgsql 聚合函数
pgsql 聚合函数
PostgreSQL中的聚合函数是一种用于计算一组值的单个值的函数。
它们通常用于对数据进行汇总和分析。
以下是一些常见的聚合函数:1. COUNT:计算行数或非空值的数量。
2. SUM:计算数值列的总和。
3. AVG:计算数值列的平均值。
4. MAX:返回数值列中的最大值。
5. MIN:返回数
值列中的最小值。
6. GROUP BY:将结果按照指定的列进行分组。
7. HAVING:对分组后的结果进行筛选。
聚合函数可以与其他SQL语句一起使用,例如SELECT、FROM、WHERE等。
它们可以用于单个表或多个表的联接
查询。
聚合函数还可以嵌套使用,以便进行更复杂的计算。
需要注意的是,聚合函数只能用于SELECT语句中的SELECT子句和HAVING子句中。
在其
他子句中使用聚合函数会导致错误。
此外,聚合函数还可以与GROUP BY
子句一起使用,以便按照指定的列进行分组计算。
总之,聚合函数是一种
非常有用的工具,可以帮助我们对数据进行汇总和分析。
在使用聚合函数时,需要注意语法和使用限制,以便正确地计算结果。
postgrep 字符串函数
postgrep 字符串函数postgrep 是一个强大的字符串函数库,用于在 PostgreSQL 数据库中进行高效的字符串操作。
它提供了各种函数,用于处理字符串的搜索、替换、截断、连接、转换等操作。
下面是一些常用的 postgrep 字符串函数及其用法:1. `substring(str text, from integer [, to integer])` 函数用于提取字符串的子串。
参数 `str` 是要处理的字符串,`from` 是起始位置,`to` 是可选的结束位置。
下面的示例演示了如何使用该函数:```sqlSELECT substring('Hello World!', 7); -- 输出 'World!' SELECT substring('Hello World!', 7, 9); -- 输出 'Wo'```2. `position(substring text IN str text)` 函数用于查找子串在字符串中的位置。
下面的示例演示了如何使用该函数:```sqlSELECT position('World' IN 'Hello World!'); -- 输出 7```3. `replace(str text, from text, to text)` 函数用于替换字符串中的子串。
参数 `str` 是要处理的字符串,`from` 是需要替换的子串,`to` 是替换后的新子串。
下面的示例演示了如何使用该函数:```sqlSELECT replace('Hello World!', 'World', 'PostgreSQL'); -- 输出'Hello PostgreSQL!'```4. `trim([both] characters FROM str text)` 函数用于去除字符串两侧的指定字符。
postgresql 的 函数
postgresql 的函数PostgreSQL是一种开源的关系型数据库管理系统,它支持多种编程语言,包括C、C++、Java、Perl、Python等。
PostgreSQL的函数是一种可重用的代码块,它们可以接收参数并返回值。
在本文中,我们将深入了解PostgreSQL函数的概念、类型和使用方法。
一、函数概述1. 函数定义PostgreSQL函数是一组SQL语句或PL/SQL代码块,可以接收参数并返回结果。
它们通常用于简化复杂查询或实现自定义业务逻辑。
PostgreSQL支持多种类型的函数,包括内置函数(如数学和字符串函数)、用户自定义函数(UDF)和存储过程。
2. 函数类型PostgreSQL中的函数可以分为以下几类:(1)内置函数:这些是由数据库系统提供的固定功能集合。
这些功能包括数学运算、日期和时间处理、字符串操作等。
(2)用户自定义函数:这些是由用户编写的自定义功能。
它们可以使用PL/SQL或其他编程语言编写,并在需要时被调用。
(3)存储过程:这些是一组预先编译好的SQL语句或PL/SQL代码块,可以在需要时被调用。
存储过程通常用于执行特定任务或实现业务逻辑。
3. 函数用法使用PostgreSQL中的函数有以下几个步骤:(1)定义函数:使用CREATE FUNCTION语句定义函数。
(2)调用函数:使用SELECT语句调用函数。
(3)删除函数:使用DROP FUNCTION语句删除函数。
二、函数定义1. 函数语法PostgreSQL中的函数定义语法如下:CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_type AS $$DECLARE-- 变量声明BEGIN-- 函数体END;$$ LANGUAGE language_name;其中,function_name是函数名称,arguments是参数列表,return_type是返回值类型,$$和$$之间的内容是函数体,language_name是编程语言名称。
pgsql sql标准函数
pgsql sql标准函数一、简介PostgreSQL是一种流行的关系型数据库管理系统,支持SQL语言。
在PostgreSQL中,SQL标准函数是一种常用的工具,用于执行各种操作和计算。
本文档将介绍一些常用的pgsql SQL标准函数,帮助您更好地了解和使用这些函数。
1. 字符串函数(1)STRPOS(字符串,子串):返回子串在字符串中首次出现的位置。
(2)SUBSTRING(字符串,开始位置,长度):返回字符串中指定位置开始的指定长度的子串。
(3)REPLACE(字符串,旧子串,新子串):替换字符串中指定的旧子串为新子串。
(4)LOWER(字符串):将字符串转换为小写。
(5)UPPER(字符串):将字符串转换为大写。
2. 数据类型转换函数(1)CAST(数据类型表达式,表达式):将表达式转换为指定的数据类型。
(2)TO_CHAR(日期时间值):将日期时间值转换为字符串。
(3)TO_DATE(字符串,日期格式):将字符串转换为日期值。
(4)TO_TIMESTAMP(字符串,时间格式):将字符串转换为时间戳值。
3. 数学函数(1)ABS(数值表达式):返回数值表达式的绝对值。
(2)SIN(角度表达式):返回角度表达式的正弦值。
(3)COS(角度表达式):返回角度表达式的余弦值。
(4)TAN(角度表达式):返回角度表达式的正切值。
4. 聚合函数(1)COUNT(列名):返回指定列中非空值的个数。
(2)SUM(列名):返回指定列中所有值的总和。
(3)AVG(列名):返回指定列中所有值的平均值。
(4)MAX(列名):返回指定列中的最大值。
(5)MIN(列名):返回指定列中的最小值。
三、使用示例以下是一些使用pgsql SQL标准函数的示例:1. 使用STRPOS函数查找子串在字符串中的位置:SELECT STRPOS('hello world', 'world'); -- 返回 72. 使用SUBSTRING函数截取子串:SELECT SUBSTRING('hello world', 1, 5); -- 返回 'hello'3. 使用REPLACE函数替换字符串中的子串:SELECT REPLACE('hello world', 'world', 'everyone'); -- 返回 'hello everyone'4. 使用CAST函数将表达式转换为数据类型:SELECT CAST(5 AS INTEGER); -- 返回 55. 使用TO_CHAR函数将日期时间值转换为字符串:SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS'); -- 返回当前日期时间字符串6. 使用聚合函数计算列的总和、平均值等:SELECT SUM(salary) FROM employees; -- 计算员工薪水的总和SELECT AVG(age) FROM customers; -- 计算客户年龄的平均值四、总结本文档介绍了常用的pgsql SQL标准函数,包括字符串函数、数据类型转换函数、数学函数和聚合函数等。
pgsql 标准函数
PostgreSQL (常称为"pgsql") 是一个强大的开源关系数据库管理系统。
它提供了大量的内置函数,用于数据操作、转换、计算、字符串处理等。
以下是一些常用的PostgreSQL 标准函数分类:数学函数:ROUND(): 四舍五入CEIL() or CEILING(): 向上取整FLOOR(): 向下取整ABS(): 绝对值GREATEST() and LEAST(): 返回最大值和最小值日期和时间函数:NOW(): 当前时间CURDATE() or CURRENT_DATE: 当前日期DATEDIFF(): 日期差DATE_PART(): 提取日期部分的函数EXTRACT(): 从日期时间值中提取部分字符串函数:LENGTH() or LEN: 字符串长度UPPER() and LOWER(): 字符串大小写转换TRIM(): 去除字符串前后的空格或其他字符REPLACE(): 替换字符串中的部分内容数组函数:ARRAY_APPEND(): 向数组添加元素ARRAY_LENGTH(): 获取数组长度聚合函数:AVG(): 平均值SUM(): 总和MAX() and MIN(): 最大值和最小值COUNT(): 计数条件函数:CASE: 条件语句,类似于SQL 的CASE 语句。
其他常用函数:COALESCE(): 返回第一个非NULL 值。
NULLIF(): 如果两个值相等,则返回NULL,否则返回第一个值。
类型转换函数:CAST(): 类型转换。
例如, CAST(column_name AS new_type)。
其他常用函数:GREATEST() and LEAST(): 返回一组值中的最大值和最小值。
NULLIF(): 如果两个值相等,则返回NULL,否则返回第一个值。
其他高级功能:LATERAL JOIN: 与子查询一起使用,允许在JOIN 中引用子查询的列。
窗口函数:提供了一种对数据集的分区、排序和聚合的高级功能,而不需要更改数据的物理顺序。
postgresql函数集合
postgresql函数集合1、空间对象字段不建议⼿动创建,建议使⽤语句⽣成空间对象字段,table_name:表名,column_name:⽣成的列名,3857:坐标系 SELECT AddGeometryColumn ('public','table_name', 'column_name', 3857, 'POINT', 2);2、把两个点x,y⽣成point对象函数 st_point(x, y)3、设置point的坐标系函数,point为空间点对象,4326表⽰坐标系 st_setsrid(point,4326) 例:update table_name SET column_name=st_setsrid(st_point(117.4364, 25.9747), 4326) where id='xxx';4、转换坐标系函数,g1:空间⼏何对象,srid:是坐标系4326,3857...等等 st_transform(geometry g1, integer srid)5、点在不在⾯⾥⾯函数g1是空间⼏何⾯对象,g2是空间⼏何点对象 st_contains(geometry g1,geometry g2)其他常⽤⽅法:1、⼏何对象处理函数: 1.1、获取⼏何对象的中⼼ST_Centroid(geometry) 1.2、⾯积量测ST_Area(geometry) 1.3、长度量测ST_Length(geometry) 1.4、返回曲⾯上的⼀个点ST_PointOnSurface(geometry) 1.5、获取边界ST_Boundary(geometry) 1.6、获取缓冲后的⼏何对象ST_Buffer(geometry, double,[integer]) 1.7、获取多⼏何对象的外接对象ST_ConvexHull(geometry) 1.8、获取两个⼏何对象相交的部分ST_Intersection(geometry, geometry) 1.9、将经度⼩于0的值加360使所有经度值在0-360间ST_Shift_Longitude(geometry) 1.10、获取两个⼏何对象不相交的部分(A、B可互换) ST_SymDifference(geometry A,geometry B) 1.11、从A去除和B相交的部分后返回ST_Difference(geometry A, geometryB) 1.12、返回两个⼏何对象的合并结果ST_Union(geometry, geometry) 1.13、返回⼀系列⼏何对象的合并结果ST_Union(geometry set) 1.14、⽤较少的内存和较长的时间完成合并操作,结果和ST_Union相同 ST_MemUnion(geometry set)2、⼏何对象关系函数: 2.1、获取两个⼏何对象间的距离ST_Distance(geometry, geometry) 2.2、如果两个⼏何对象间距离在给定值范围内,则返回TRUEST_DWithin(geometry, geometry, float) 2.3、判断两个⼏何对象是否相等(⽐如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的⼏何对象)ST_Equals(geometry, geometry) 2.4、判断两个⼏何对象是否分离ST_Disjoint(geometry, geometry) 2.5、判断两个⼏何对象是否相交 ST_Intersects(geometry, geometry) 2.6、判断两个⼏何对象的边缘是否接触ST_Touches(geometry, geometry) 2.7、判断两个⼏何对象是否互相穿过ST_Crosses(geometry, geometry) 2.8、判断A是否被B包含ST_Within(geometry A, geometry B) 2.9、判断两个⼏何对象是否是重叠ST_Overlaps(geometry, geometry) 2.10、判断A是否包含B ST_Contains(geometry A, geometry B) 2.11、判断A是否覆盖 B ST_Covers(geometry A, geometry B) 2.12、判断A是否被B所覆盖ST_CoveredBy(geometry A, geometry B) 2.13、通过DE-9IM 矩阵判断两个⼏何对象的关系是否成⽴ST_Relate(geometry, geometry, intersectionPatternMatrix) 2.14、获得两个⼏何对象的关系(DE-9IM矩阵)ST_Relate(geometry, geometry)3、⼏何对象存取函数: 3.1、获取⼏何对象的WKT描述ST_AsText(geometry) 3.2、获取⼏何对象的WKB描述ST_AsBinary(geometry) 3.3、获取⼏何对象的空间参考ID ST_SRID(geometry) 3.4、获取⼏何对象的维数ST_Dimension(geometry) 3.5、获取⼏何对象的边界范围ST_Envelope(geometry) 3.6、判断⼏何对象是否为空ST_IsEmpty(geometry) 3.7、判断⼏何对象是否不包含特殊点(⽐如⾃相交)ST_IsSimple(geometry) 3.8、判断⼏何对象是否闭合ST_IsClosed(geometry) 3.9、判断曲线是否闭合并且不包含特殊点ST_IsRing(geometry) 3.10、获取多⼏何对象中的对象个数ST_NumGeometries(geometry) 3.11、获取多⼏何对象中第N个对象ST_GeometryN(geometry,int) 3.12、获取⼏何对象中的点个数ST_NumPoints(geometry) 3.13、获取⼏何对象的第N个点ST_PointN(geometry,integer) 3.14、获取多边形的外边缘ST_ExteriorRing(geometry) 3.15、获取多边形内边界个数ST_NumInteriorRings(geometry) 3.16、同上ST_NumInteriorRing(geometry) 3.17、获取多边形的第N个内边界ST_InteriorRingN(geometry,integer) 3.18、获取线的终点ST_EndPoint(geometry) 3.19、获取线的起始点ST_StartPoint(geometry) 3.20、获取⼏何对象的类型GeometryType(geometry) 3.21、类似上,但是不检查M值,即POINTM对象会被判断为point ST_GeometryType(geometry) 3.22、获取点的X坐标ST_X(geometry) 3.23、获取点的Y坐标ST_Y(geometry) 3.24、获取点的Z坐标ST_Z(geometry) 3.25、获取点的M值ST_M(geometry)。
