PostgreSQL学习笔记(五):查询函数、谓词、case表达式、集合运算、VACUUM

PostgreSQL学习笔记(五):查询函数、谓词、case表达式、集合运算、VACUUM

查询函数

  1. 常用函数
  • 聚合函数
  • 数学函数
  • 三角函数
  • 字符处理函数
  • 数据类型转换函数
  1. 可以在SELECT 语句以及WHERE中使用,包括
  • String Functions
  • Format Functions
  • Date & Time Fuctions
  • Aggregate Functions
  1. 通用 PostgreSQL内置函数的列表:
  • COUNT 函数:用于计算数据库表中的行数。
  • MAX函数:用于查询某一特定列中最大值。
  • MIN函数:用于查询某一特定列中最小值。
  • AVG 函数:用于计算某一特定列中平均值。
  • SUM函数:用于计算数字列所有值的总和。
  • ARRAY 函数:用于输入值(包括null)添加到数组中。
  • Numeric 函数:完整列出一个SQL中所需的操作数的函数。
  • String 函数:完整列出一个SQL中所需的操作字符的函数。

谓词

我们在SQL中接触的BETWEENLIKEINIS NULL=<、**>**等关键词都可以

称之为SQL中的谓词,它是一种返回值只为真值(true、false或者unknown)的特殊

函数。它的目的是为了给SQL命题提供判断真假的手段,谓词逻辑的出现对SQL而言具有

划时代的意义。

非空判断:IS NULL / IS NOT NUNLL

case表达式

SQL CASE表达式是一种通用的条件表达,类似于其它语言中的if/else语句。

CASE WHEN condition THEN result

​ [WHEN … ]
​ [ELSE result]
END

SELECT adate,
       CASE WHEN temp > 15 THEN '暖和'
            WHEN temp < 15 THEN '微凉'
            ELSE 'other'
       END
    FROM test;

集合运算

PostgreSQL 同样支持集合论中的集合操作,包括

  • 并集(UNION)

    UNION操作符用于将两个查询结果合并成一个结果集,返回出现在第一个查询或者出现在
    第二个查询中的数据:

    SELECT column1, column2
    FROM table1
    UNION [DISTINCT | ALL]
    SELECT col1, col2
    FROM table2;

    其中,DISTINCT表示将合并后的结果集进行去重;ALL表示保留结果集中的重复记录;如果省
    略,默认为DISTINCT。

  • 交集(INTERSECT)

    INTERSECT操作符用于返回两个查询结果中的共同部分,即同时出现在第一个查询结果和
    第二个查询结果中的数据:

    SELECT column1, column2
    FROM table1
    INTERSECT [DISTINCT | ALL]
    SELECT col1, col2
    FROM table2;

    其中,DISTINCT表示将合并后的结果集进行去重;ALL表示保留结果集中的重复记录;如果省
    略。默认为DISTINCT。

  • 差集(EXCEPT)

​ EXCEPT操作符用于返回出现在第一个查询结果中,但不在第二个查询结果中的数据:

SELECT column1, column2
FROM table1
EXCEPT [DISTINCT | ALL]
SELECT col1, col2
FROM table2;

​ 其中,DISTINCT表示将合并后的结果集进行去重;ALL表示保留结果集中的重复记录;如
​ 果省略,默认为DISTINCT。

表连接

PostgreSQL 支持各种类型的SQL连接查询:

  • 内连接(INNER JOIN)
  • 左外连接(LEFT OUTER JOIN)
  • 右外连接(RIGHT OUTER JOIN)
  • 全外连接(FULL OUTER JOIN)
  • 交叉连接(CROSS JOIN)
  • 自然连接(NATURAL JOIN)
  • 自连接(Self Join)

VACUUM

主要作用
磁盘清理(清理dead tuple);更新统计信息;重组数据;解决事务ID回卷问题
语法结构
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, … ] ) ] ]
◆说明:
vacuum :不要求获得排它锁,找到那些旧的“死”数据,标记为可用状态,不进行空间合并;
vacuum full:就是除了vacuum,进行空间合并,它需要lock table;
vacuum analyze:更新统计信息,使得优化器能够选择更好的方案执行sql;
vacuum freeze:表记录冻结,可解决事务id回卷的问题;

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数据的分组6.     PostgreSQL合集的操作7.   PostgreSQL 合集的分组
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值