加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

PostgreSQL操作符实践技巧分享

发布时间:2020-10-18 23:14:22 所属栏目:创业 来源:网络整理
导读:这篇文章主要给大家介绍了关于PostgreSQL基础知识之SQL操作符实践的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PostgreSQL具有一定的参考学

在PostgreSQL中,逻辑操作符有 AND、 OR 和 NOT,逻辑操作符返回的结果通常为一个布尔值或者NULL,即 TRUE、FALSE或者NULL。其中NULL表示运算结果未知。同时对于逻辑操作符都有优先级顺序,AND 、OR 和 NOT的优先级顺序为: NOT > AND >OR。

对于逻辑操作符的之间的运算结果参考下表:

示例:

hrdb=> --2 > 1 为 TRUE, 'a' < 'b' 为TRUE,那么 AND 返回TRUE
hrdb=> SELECT 2 > 1 AND 'a' < 'b' AS result;
 result
--------
 t
(1 row)

hrdb=> --1 < 2 为 TRUE, 2 > 1为FALSE,那么 AND 的结果为 FALSE
hrdb=> SELECT 1 < 2 AND 2 > 1 AS result;
 result
--------
 t
(1 row)

hrdb=> -- NULL 和 2 > 1 为TRUE做比较,那么 AND 返回NULL
hrdb=> SELECT NULL AND 2 > 1 AS result;
 result
--------
 
(1 row)

hrdb=> --2 < 1 为 FALSE,'b' < 'a' 为FALSE,那么 AND 返回 FALSE
hrdb=> SELECT 2 < 1 AND 'b' < 'a' AS result;
 result
--------
 f
(1 row)

hrdb=> -- NULL 和 1 > 2 为FALSE做比较,那么 AND 返回FALSE
hrdb=> SELECT NULL AND 1 > 2 AS result;
 result
--------
 f
(1 row)

hrdb=> --NULL 和 NULL AND 的结果为 NULL
hrdb=> SELECT NULL AND NULL AS result;
 result
--------
 
(1 row)
hrdb=> --2 > 1 为 TRUE, 'a' < 'b' 为TRUE,那么 OR 返回TRUE
hrdb=> SELECT 2 > 1 AND 'a' < 'b' AS result;
 result
--------
 t
(1 row)

hrdb=> --1 < 2 为 TRUE, 2 > 1为FALSE,那么 OR 的结果为 TRUE
hrdb=> SELECT 1 < 2 AND 2 > 1 AS result;
 result
--------
 t
(1 row)

hrdb=>
hrdb=> -- NULL 和 2 > 1 为TRUE做比较,那么 OR 返回 TRUE
hrdb=> SELECT NULL AND 2 > 1 AS result;
 result
--------
 
(1 row)

hrdb=> --2 < 1 为 FALSE,'b' < 'a' 为FALSE,那么 OR 返回 FALSE
hrdb=> SELECT 2 < 1 AND 'b' < 'a' AS result;
 result
--------
 f
(1 row)

hrdb=> -- NULL 和 1 > 2 为FALSE做比较,那么 OR 返回 NULL
hrdb=> SELECT NULL AND 1 > 2 AS result;
 result
--------
 f
(1 row)

hrdb=> --NULL 和 NULL 那么 OR 的结果为 NULL
hrdb=> SELECT NULL AND NULL AS result;
 result
--------

关于 NOT 结果,在这里不做示例,有兴趣的可以下去自行验证。

算数操作符

PostgreSQL中的算数操作符号有 +(加法) 、-(减法) 、* (乘法)、/(除法) 、%(取余)、^(幂运算符)、|/(平方根)、||/(立方根)、!(阶乘[后缀])、!!(阶乘[前缀])、@(绝对值)、&(按位与)、|(按位或)、#(按位异或)、~(按位取反)、<<(左移)、>>(右移)操作符,这些操作符简化了数学运算方式。

示例:

加减乘除示例在此略。此示例重点介绍一下后面的操作符号。

hrdb=> --%取余操作符,5 除以 3 ,返回余数 2
hrdb=> SELECT 5 % 3 AS result;
 result
--------
  2
(1 row)

hrdb=> --^求幂操作,3 的 4次方为81
hrdb=> SELECT 3^4 AS result;
 result
--------
  81
(1 row)

hrdb=> --|/平方根,25的平方根为 5
hrdb=> SELECT |/ 25 AS result;
 result
--------
  5
(1 row)

hrdb=> --||/立方根,27 的立方根为 3
hrdb=> SELECT ||/ 27 AS result;
  result 
--------------------
 3.0000000000000004
(1 row)

hrdb=> --!阶乘后缀,5的阶乘为 120
hrdb=> SELECT 5 ! AS result;
 result
--------
 120
(1 row)

hrdb=> --!!阶乘前缀,5的阶乘为 120
hrdb=> SELECT !! 5 AS result;
 result
--------
 120
(1 row)

hrdb=> --@绝对值,-1的绝对值为 1
hrdb=> SELECT @ -1 AS result;
 result
--------
  1
(1 row)

hrdb=> --& 按位与,5 & 3的值为 1
hrdb=> --计算过程
hrdb=> --5 用二进制表示 0000 0101
hrdb=> --3 用二进制表示 0000 0011
hrdb=> --按位与操作,同时为1则为1,否则为0
hrdb=> --按位与操作,同时为1则为1,否则为0
hrdb=> -- 5 & 3   0000 0001 再转换为10进制为 1
hrdb=> SELECT 5 & 3 AS result;
 result
--------
  1
(1 row)

hrdb=> --| 按位或,6 | 3 的值为 7
hrdb=> --计算过程
hrdb=> --6 用二进制表示 0000 0110
hrdb=> --3 用二进制表示 0000 0011
hrdb=> --按位或操作,只要有一个为1则为1
hrdb=> --6 | 3   0000 0111 转换为10进制为7
hrdb=> SELECT 6 | 3 AS result;
 result
--------
  7
(1 row)

hrdb=> --# 按位异或,8 # 5 的值为13
hrdb=> --计算过程
hrdb=> --8 用二进制表示 0000 1000
hrdb=> --5 用二进制表示 0000 0101
hrdb=> --按位异或操作,不同为1,相同为0
hrdb=> --8 # 5   0000 1101 转换为10进制为 13
hrdb=> SELECT 8 # 5 AS result;
 result
--------
  13
(1 row)

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读