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

PostgreSQL操作符实践技巧分享

发布时间:2020-10-20 23:51:20 所属栏目:创业 来源:网络整理
导读:这篇文章首要给各人先容了关于PostgreSQL基本常识之SQL操纵符实践的相干资料,文中通过示例代码先容的很是具体,对各人进修可能行使PostgreSQL具有必然的参考学
副问题[/!--empirenews.page--]

  短视频,自媒体,达人种草一站处事

这篇文章首要给各人先容了关于PostgreSQL基本常识之SQL操纵符实践的相干资料,文中通过示例代码先容的很是具体,对各人进修可能行使PostgreSQL具有必然的参考进修代价,必要的伴侣们下面来一路进修进修吧

媒介

操纵符是数据库具有的运算特征,对文本字符和一些标具名符的处理赏罚,行使操纵符可以简化SQL代码,同时也可以节减开拓时刻和进步开拓服从。

较量操纵符

在PostgreSQL中,全部的数据范例都可以行使较量操纵符,较量操纵符运算功效返回一个布尔值。即 TRUE 可能 FALSE。较量操纵符为双目操纵符,因此被较量的两个值的数据范例必需是沟通的数据范例可能在互相之间可以举办隐式范例转换。在PostgreSQL中,提供的较量操纵符有 > 、< 、<= 、>= 、= 、<> 可能 != 。在 PostgreSQL中,相同 a > b > c的操纵是犯科的,由于布尔值和数值之间无法做较量。

示例:

hrdb=# SELECT 2 > 1 AS result; result -------- t(1 row)
hrdb=# SELECT 'a' = 'a' AS result; result -------- t(1 row)
hrdb=# SELECT 'a' <> 'b' AS result; result -------- t(1 row)
hrdb=# SELECT 'a' != 'b' AS result; result -------- t(1 row)
hrdb=# SELECT '@' > '!' AS result; result -------- t(1 row)
hrdb=# SELECT ascii('@'),ascii('!'); ascii | ascii -------+------- 64 | 33(1 row)
hrdb=# SELECT '@' > 'a' AS result; result -------- f(1 row)
hrdb=# SELECT ascii('@'),ascii('a'); ascii | ascii -------+------- 64 | 97

在PostgreSQL中,除了较量的操纵符以外,尚有较量的谓词。有如下。

hrdb=> --BETWEEN AND谓词,暗树模畴。用法为某个指定的字符是否在此之间
hrdb=> SELECT 5 BETWEEN 1 AND 6 AS result;
 result
--------
 t
(1 row)

hrdb=> --上述等价于
hrdb=> SELECT 5 > 1 AND 5 < 6 AS result;
 result
--------
 t
(1 row)

hrdb=> --NOT BETWEEN AND ,暗示不在某个范畴
hrdb=> SELECT 5 NOT BETWEEN 7 AND 10 AS result;
 result
--------
 t
(1 row)

hrdb=> --BETWEEN SYMMETRIC AND,暗示排序后较量
hrdb=> --该谓词的用法凡是产生在BETWEEN AND之间呈现倒序的环境
hrdb=> --如行使 SELECT 5 BETWEEN 10 AND 10; 将会返回FALSE
hrdb=> --因此要想返回TRUE必要凭证如下行使
hrdb=> SELECT 5 BETWEEN SYMMETRIC 10 AND 1 AS result;
 result
--------
 t
(1 row)

hrdb=> --NOT BETWEEN SYMMETRIC AND与上述 BETWEEN SYMMETRIC AND 相反
hrdb=> --IS DISTINCT FROM 不便是,null 返回TRUE
hrdb=> SELECT 'a' IS DISTINCT FROM 'b' AS result;
 result
--------
 t
(1 row)

hrdb=> SELECT null IS DISTINCT FROM 'b' AS result;
 result
--------
 t
(1 row)

hrdb=> --IS NOT DISTINCT FROM 便是,null返回FALSE
hrdb=> SELECT 'a' IS NOT DISTINCT FROM 'b' AS result;
 result
--------
 f
(1 row)

hrdb=> SELECT null IS NOT DISTINCT FROM 'b' AS result;
 result
--------
 f
(1 row)

hrdb=> --IS NULL 判定为空
hrdb=> SELECT 'a' IS NULL AS result;
 result
--------
 f
(1 row)

hrdb=> SELECT '' IS NULL AS result;
 result
--------
 f
(1 row)

hrdb=> --IS NOT NULL 判定不为空
hrdb=> SELECT 'a' IS NOT NULL AS result;
 result
--------
 t
(1 row)

hrdb=> SELECT '' IS NOT NULL AS result;
 result
--------
 t
(1 row)

hrdb=> --ISNULL 判定为空 (非尺度语法)
hrdb=> --NOTNULL 判定不为空(非尺度语法)
hrdb=> SELECT 'a' ISNULL as result;
 result
--------
 f
(1 row)

hrdb=> SELECT '' NOTNULL AS result;
 result
--------
 t
(1 row)

hrdb=> --IS TRUE 判定是否为TRUE
hrdb=> SELECT 'A' > 'B' IS TRUE AS result;
 result
--------
 f
(1 row)

hrdb=> --IS NOT TRUE 判定是否为FALSE
hrdb=> SELECT 'A' > 'B' IS NOT TRUE AS result;
 result
--------
 t
(1 row)

hrdb=> --IS FALSE 判定是否为 FALSE
hrdb=> SELECT 'A' > 'B' IS FALSE AS result;
 result
--------
 t
(1 row)

hrdb=> --IS NOT FALSE 判定是否不为FALSE
hrdb=> SELECT 'A' > 'B' IS NOT FALSE AS result;
 result
--------
 f
(1 row)
--IS UNKNOWN 未知
hrdb=> SELECT NULL IS UNKNOWN AS result;
 result
--------
 t
--IS NOT UNKNOWN
SELECT 'a' > 'b' IS NOT UNKNOWN AS result;

温馨提醒

字符之间的较量凡是行使ascii值较量巨细。同时,UNKNOWN 和 NOT UNKNOWN 凡是和IS NULL 和IS NOT NULL相同。在PostgreSQL中,尚有较量函数, num_nonnulls(VARIADIC "any"),暗示返回一个非空输入字符的总个数。num_nulls(VARIADIC "any"),暗示返回一个null值的总个数。如下:

hrdb=> SELECT num_nonnulls(1,null,2) AS total_nonnulls;
 total_nonnulls
----------------
    2
(1 row)

hrdb=> SELECT num_nonnulls('PostgreSQL','MySQL','','null',null) AS total_nonnulls;
 total_nonnulls
----------------
    4
(1 row)

hrdb=> SELECT num_nulls(1,null,2) AS total_nulls;
 total_nulls
-------------
   1
(1 row)

hrdb=> SELECT num_nulls('PostgreSQL','MySQL','','null',null) AS total_nulls;
 total_nulls
-------------
   1

逻辑操纵符

(编辑:湖南网)

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

热点阅读