学习PostgreSQL的功能

203 阅读5分钟

PostgreSQL是一个强大而易于使用的数据库管理系统,它提供安全、快速和非常直观的功能,让你专注于数据而不是查询语法。

PostgreSQL使其使用非常简单的一种方式是预定义函数的功能。这些函数允许你调用它们并传递所需的参数以获得输出。

在这篇文章中,我们将给你一个最常见的PostgreSQL函数的小抄,甚至告诉你如何在需要时定义自定义的函数。

数学函数

PostgreSQL函数的第一类是数学函数。这些函数允许你对传递的参数进行数学运算。

函数功能
abs(x)返回x的绝对值
pi()返回π的常数值
sqrt(x)返回x的平方根
mod(x,y)返回x和y的模数值
Trunc(x)将x截断为0
exp(x)返回x的指数值
随机()返回0和1.0之间的随机值
pow(a, b)将a提高到b的幂
阶乘(x)返回x的阶乘值
ln()自然对数

这些是你可以在PostgreSQL查询中使用的一些常用数学函数。

聚合函数

另一组标准的PostgreSQL函数是聚合函数。这些类型的函数在一组数值上执行一个动作,并返回一个单一的结果。

流行的PostgreSQL 聚合函数包括

函数功能
avg()返回一组数值的平均数
min()给定一组数值的最小值。
max()一组给定数值的最大值
sum()输入值的总和
count()非空值的行数
count(*)返回输入行的数量

字符串函数

在PostgreSQL中,字符串函数负责处理字符串值并返回一个值。

常见的字符串函数包括

函数功能
lower()将输入的字符串转换为小写字母
upper()将输入的字符串转换为大写字母
char_length()返回字符串中的字符数
****将左边的字符串与右边的字符串连接起来
bit_length()字符串中的比特数
reverse()对输入的字符串进行反转
repeat()重复输入的字符串,重复指定的次数。

日期和时间函数

顾名思义,时间和日期函数是处理日期和时间数据的。

常见的函数包括。

函数功能
now()返回当前日期和时间
current_time()当前的时间
current_date()返回当前的日期
age()以年、月、日的形式返回当前日期的符号化结果
extract()从一个时间戳中提取子字段

几何函数

几何函数对传递的数值集进行几何运算。尽管你可能不会发现自己经常使用这些函数,但它们确实很方便。

这类函数的常见例子包括。

函数函数
面积返回物体的面积。
直径返回圆的直径
长度返回路径的长度
box(circle)转换圆为盒子
box(point)将点转换为一个空盒子
path(polygon)将多边形转换为路径
多边形(路径)将路径转换为多边形

网络地址函数

网络函数在处理inet和cidr类型时非常有用。常见的函数包括。

函数功能
host(inet)以文本形式返回IP地址
masklen(inet)返回网络掩码的长度
network(inet)返回一个地址的网络部分
family(inet)提取地址的家族
netmask()返回地址的网络掩码
inet_same_family(inet, inet)如果两个inet地址是同一族,则返回true

以上的函数只是PostgreSQL支持的函数的一部分。

如何创建PostgreSQL的用户函数

在某些情况下,你需要创建一个自定义函数。PostgreSQL 允许你用名称、参数和返回类型来创建这种函数。

要在PostgreSQL中创建一个函数,请使用CREATE FUNCTION语句。

创建一个自定义函数的一般语法如所示。

CREATE FUNCTION function_name(paramaters)
    RETURNS data_type;
    LANGUAGE procedural_language_type;
AS
$$
DECLARE
    -- declare your variables here
BEGIN
    -- code what the function does
END
$$

让我们一步一步地分解上面的语法。

  1. 我们首先使用CREATE FUNCTION语句,然后是函数名称。函数名称可以是任何有意义的东西。
  2. 接下来,我们在一对圆括号内传递函数参数。参数的数量可以从0到无限大。
  3. 在函数块内(用缩进表示,尽管不是必须的),我们使用RETURN关键字,后面是函数返回的数据类型。
  4. 下一部分定义了函数的程序语言,其中最常见的是PLPGSQL。其他PostgreSQL程序性函数包括PLTCL、PLPERL、PLPYTHON
  5. 最后,我们使用双美元符号来初始化函数。这就是我们声明变量和放在开始和结束块内的函数逻辑的地方。

提示:PostgreSQL中的自定义函数与程序非常相似。然而,与程序不同的是,函数返回一个值。

自定义函数实例

让我们举例说明一个简单的函数,它可以获取符合一个简单标准的项目的数量。

让我们以sakila数据库为例。我们可以得到租值在2到4美元之间的电影的数量。

一个简单的函数是。

CREATE FUNCTION get_films(x int, y int)
    RETURNS int
    LANGUAGE PLPGSQL
AS
$$
DECLARE
num_films integer;
BEGIN
    SELECT count(*)
    INTO num_films
    FROM film
    WHERE rental_rate BETWEEN x AND y;
    RETURN num_films;
END;
$$

一旦我们声明了这个函数,我们就可以调用它,并以如下方式传递数值。

SELECT get_films(2, 4) AS number_of_films;

一旦我们运行上面的查询,我们应该得到符合上述条件的电影数量。

在大多数情况下,你不需要定义这样的函数,因为有其他更简单的内置方法来完成这样的任务。既然如此,上面的函数说明了如何使用函数。

总结

在本教程中,我们说明了常见的PostgreSQL函数,以帮助更有效地执行任务。最后,我们向你展示了如何创建和使用函数来满足自定义需求。

谢谢你的阅读,祝你实验愉快