婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PostgreSQL基礎(chǔ)知識之SQL操作符實踐指南

PostgreSQL基礎(chǔ)知識之SQL操作符實踐指南

熱門標簽:合肥公司外呼系統(tǒng)運營商 重慶自動外呼系統(tǒng)定制 辦公外呼電話系統(tǒng) 海豐有多少商家沒有地圖標注 美容工作室地圖標注 漯河外呼電話系統(tǒng) 外呼調(diào)研系統(tǒng) 打電話智能電銷機器人授權(quán) 地圖標注和圖片名稱的區(qū)別

前言

操作符是數(shù)據(jù)庫具有的運算特性,對文本字符和一些標簽字符的處理,使用操作符可以簡化SQL代碼,同時也可以節(jié)省開發(fā)時間和提高開發(fā)效率。

比較操作符

在PostgreSQL中,所有的數(shù)據(jù)類型都可以使用比較操作符,比較操作符運算結(jié)果返回一個布爾值。即 TRUE 或者 FALSE。比較操作符為雙目操作符,因此被比較的兩個值的數(shù)據(jù)類型必須是相同的數(shù)據(jù)類型或者在彼此之間可以進行隱式類型轉(zhuǎn)換。在PostgreSQL中,提供的比較操作符有 > 、 、= 、>= 、= 、> 或者 != 。在 PostgreSQL中,類似 a > b > c的操作是非法的,因為布爾值和數(shù)值之間無法做比較。

示例:

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=> --該謂詞的用法通常發(fā)生在BETWEEN AND之間出現(xiàn)倒序的情況
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中,還有比較函數(shù), num_nonnulls(VARIADIC "any"),表示返回一個非空輸入字符的總個數(shù)。num_nulls(VARIADIC "any"),表示返回一個null值的總個數(shù)。如下:

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

邏輯操作符

在PostgreSQL中,邏輯操作符有 AND、 OR 和 NOT,邏輯操作符返回的結(jié)果通常為一個布爾值或者NULL,即 TRUE、FALSE或者NULL。其中NULL表示運算結(jié)果未知。同時對于邏輯操作符都有優(yōu)先級順序,AND 、OR 和 NOT的優(yōu)先級順序為: NOT > AND >OR。

對于邏輯操作符的之間的運算結(jié)果參考下表:

示例:

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 的結(jié)果為 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 的結(jié)果為 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 的結(jié)果為 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 的結(jié)果為 NULL
hrdb=> SELECT NULL AND NULL AS result;
 result 
--------

關(guān)于 NOT 結(jié)果,在這里不做示例,有興趣的可以下去自行驗證。

算數(shù)操作符

PostgreSQL中的算數(shù)操作符號有 +(加法) 、-(減法) 、* (乘法)、/(除法) 、%(取余)、^(冪運算符)、|/(平方根)、||/(立方根)、!(階乘[后綴])、!!(階乘[前綴])、@(絕對值)、(按位與)、|(按位或)、#(按位異或)、~(按位取反)、(左移)、>>(右移)操作符,這些操作符簡化了數(shù)學運算方式。

示例:

加減乘除示例在此略。此示例重點介紹一下后面的操作符號。

hrdb=> --%取余操作符,5 除以 3 ,返回余數(shù) 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 再轉(zhuǎn)換為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 轉(zhuǎn)換為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 轉(zhuǎn)換為10進制為 13
hrdb=> SELECT 8 # 5 AS result;
 result 
--------
  13
(1 row)

hrdb=> --~按位取反,7 按位取反的值為 16
hrdb=> --計算過程 
hrdb=> --7 用二進制表示 0000 0111
hrdb=> --按位取反,最高位為0 取 1表示符號,其余按位取反
hrdb=> --~7    1000 1000 轉(zhuǎn)換為10進制為-8
hrdb=> SELECT ~7 AS result;
 result 
--------
  -8
(1 row)

hrdb=> --左移,4 左移 2位的值為:
hrdb=> --計算過程
hrdb=> --4用二進制表示 0000 0100
hrdb=> --4左移兩位 000001 0000 位數(shù)不足用 0 補位
hrdb=> --轉(zhuǎn)換為10進制后為 16。因此左移類似于平方操作,但是效率比平方高
hrdb=> SELECT 4  2 AS result;
 result 
--------
  16
(1 row)

hrdb=> -->>右移,8 右移 3 位的值為1
hrdb=> --8 用二進制表示 0000 1000
hrdb=> --8 >> 3 ,   0 0001000 多出的0去掉轉(zhuǎn)換為10進制,為1
hrdb=> SELECT 8 >> 3 AS result;
 result 
--------
  1
(1 row)

總結(jié)

在PostgreSQL 中,除了以上三種操作符為關(guān)系型數(shù)據(jù)庫中常用的操作符外,還有其它的操作符為PostgreSQL中獨有的操作符,比如文本查找操作符,@@(tsvector類型與tsquery類型字符是否匹配),@>(tsquery類型之間是否包含),@(tsquery類型之間是否被包含)操作符。網(wǎng)絡(luò)地址操作符如=(表示包含于或者等于),>>=(包含或者等于)。幾何操作符如@-@(表示圖形的周長或者長度),@@(表示圓心),->(表示圓心距),(表示圖形是否重疊)等,感興趣的同學下去自行驗證。

到此這篇關(guān)于PostgreSQL基礎(chǔ)知識之SQL操作符實踐的文章就介紹到這了,更多相關(guān)PostgreSQL之SQL操作符實踐內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 解決postgreSql遠程連接數(shù)據(jù)庫超時的問題
  • PostgreSQL 設(shè)置允許訪問IP的操作
  • navicat無法連接postgreSQL-11的解決方案
  • 解決sqoop從postgresql拉數(shù)據(jù),報錯TCP/IP連接的問題
  • sqoop讀取postgresql數(shù)據(jù)庫表格導入到hdfs中的實現(xiàn)
  • PostgreSQL報錯 解決操作符不存在的問題

標簽:烏海 晉城 蚌埠 衡陽 株洲 珠海 來賓 錦州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《PostgreSQL基礎(chǔ)知識之SQL操作符實踐指南》,本文關(guān)鍵詞  PostgreSQL,基礎(chǔ)知識,之,SQL,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PostgreSQL基礎(chǔ)知識之SQL操作符實踐指南》相關(guān)的同類信息!
  • 本頁收集關(guān)于PostgreSQL基礎(chǔ)知識之SQL操作符實踐指南的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美综合在线视频| 欧美精品一区二区久久婷婷| www.欧美日韩国产在线| 色婷婷精品大在线视频| 在线视频你懂得一区二区三区| 99精品久久只有精品| 在线观看免费一区| 丰满岳乱妇一区二区三区| 99r国产精品| 欧美午夜精品一区二区蜜桃| 欧美日韩aaaaaa| 欧美电影免费观看高清完整版在线| 日韩三级在线免费观看| 欧美成人bangbros| 中国色在线观看另类| 国产精品一区二区x88av| 99vv1com这只有精品| 91理论电影在线观看| 欧美日韩dvd在线观看| 国产蜜臀97一区二区三区| 一级做a爱片久久| 蜜桃av一区二区在线观看| 狠狠色丁香婷综合久久| 色婷婷久久99综合精品jk白丝| 欧美成人一区二区三区片免费| 亚洲欧美另类在线| 国产精品亚洲午夜一区二区三区 | 国产日韩欧美麻豆| 一区二区三区不卡视频| 国产激情视频一区二区三区欧美 | 色综合久久久久综合99| 亚洲精品在线免费播放| 性欧美大战久久久久久久久| 99视频有精品| 国产欧美日韩视频在线观看| 免费观看久久久4p| 欧美色涩在线第一页| 国产精品国产a级| 国产激情精品久久久第一区二区| 欧美一区二区三区四区高清| 亚洲一级电影视频| 色综合天天性综合| 中文字幕一区二区不卡| youjizz久久| 国产精品免费丝袜| 国产成人午夜视频| 久久综合狠狠综合久久激情 | 喷水一区二区三区| 欧美视频日韩视频| 亚洲精选视频在线| 99re这里都是精品| 亚洲欧洲日韩av| 91网站在线观看视频| 国产精品卡一卡二| 国产白丝网站精品污在线入口| 欧美成人精品二区三区99精品| 免费看欧美美女黄的网站| 欧美一级二级三级乱码| 蜜桃av噜噜一区二区三区小说| 欧美一级专区免费大片| 免费高清在线视频一区·| 日韩欧美亚洲国产精品字幕久久久| 日本视频一区二区| 欧美一级久久久| 激情国产一区二区| 国产欧美日韩另类视频免费观看| 成人激情校园春色| 亚洲黄色小说网站| 欧美日韩另类国产亚洲欧美一级| 亚洲一区二区三区视频在线播放 | 亚洲r级在线视频| 欧美一区永久视频免费观看| 精品亚洲欧美一区| 国产精品久久久久影视| 欧洲av在线精品| 日本成人在线网站| 国产日韩v精品一区二区| hitomi一区二区三区精品| 亚洲一区二区在线免费观看视频| 91精品国产一区二区人妖| 国产成人午夜视频| 亚洲午夜久久久久| 精品精品国产高清a毛片牛牛 | 国产精品亲子伦对白| 欧美影视一区二区三区| 奇米色一区二区| 国产精品乱码一区二区三区软件 | 夜夜精品视频一区二区| 欧美精品久久天天躁| 国产乱码精品一区二区三| 一区二区三区在线播放| 日韩精品一区二区三区视频在线观看 | 制服丝袜日韩国产| 国产一区二区中文字幕| 亚洲色图欧洲色图| 日韩一级免费观看| aaa亚洲精品| 精品一区二区影视| 亚洲午夜久久久| 中文字幕 久热精品 视频在线| 欧美性色欧美a在线播放| 蜜臀av一级做a爰片久久| 久久精品亚洲乱码伦伦中文| 欧美日韩国产高清一区二区三区 | 另类调教123区| 国产精品乱人伦一区二区| 欧美精品第1页| 91视频.com| 国产乱一区二区| 三级成人在线视频| 亚洲女同ⅹxx女同tv| 欧美精品一区二区在线播放| 欧美日韩国产欧美日美国产精品| 99视频在线观看一区三区| 国产美女在线观看一区| 奇米精品一区二区三区在线观看一| 亚洲人一二三区| 亚洲国产高清不卡| 精品国产三级a在线观看| 欧美浪妇xxxx高跟鞋交| 91在线porny国产在线看| 成人一区在线观看| 韩国午夜理伦三级不卡影院| 日韩av中文字幕一区二区三区| 亚洲精品视频一区| 国产农村妇女精品| 久久久综合精品| 精品国精品国产| 精品国产污污免费网站入口| 日韩欧美高清一区| 欧美一级午夜免费电影| 欧美男同性恋视频网站| 欧美日韩视频第一区| 色狠狠av一区二区三区| 色8久久人人97超碰香蕉987| 日本精品一区二区三区四区的功能| 91污片在线观看| 色猫猫国产区一区二在线视频| 91蝌蚪porny九色| 色激情天天射综合网| 在线免费av一区| 欧美亚洲国产bt| 777午夜精品免费视频| 日韩一二三区视频| 2020日本不卡一区二区视频| 国产亚洲精久久久久久| 国产精品第一页第二页第三页| 亚洲视频一二三| 亚洲一二三区视频在线观看| 亚洲第一在线综合网站| 日韩综合一区二区| 免费高清在线一区| 国产精品123| 99久久精品国产麻豆演员表| 在线亚洲免费视频| 欧美色图免费看| 日韩欧美中文一区二区| 精品国产乱码久久久久久浪潮| 久久久久国产精品麻豆ai换脸| 国产日韩在线不卡| 国产精品欧美综合在线| 亚洲制服丝袜av| 日本中文字幕一区二区视频| 九九**精品视频免费播放| 成人美女视频在线观看| 色偷偷成人一区二区三区91| 欧美日韩亚洲高清一区二区| 日韩欧美美女一区二区三区| 国产日本欧洲亚洲| 亚洲综合清纯丝袜自拍| 美女爽到高潮91| av电影一区二区| 欧美一区二区三区在线| 久久午夜色播影院免费高清| 亚洲欧洲日韩一区二区三区| 日韩精品每日更新| 成人性生交大片免费看视频在线| 色噜噜久久综合| 亚洲精品一区二区三区99| 中文字幕人成不卡一区| 麻豆传媒一区二区三区| 99久久免费视频.com| 日韩欧美资源站| 亚洲精品水蜜桃| 国产乱码一区二区三区| 欧美性受极品xxxx喷水| 日本一区二区三区国色天香 | 一区二区三区久久| 精品一区二区免费看| 99久久精品免费看| 日韩欧美一二三四区| 亚洲综合色视频| 成人午夜视频免费看| 日韩欧美国产午夜精品| 亚洲一区在线观看视频| 粉嫩一区二区三区性色av| 91精品欧美一区二区三区综合在 | 亚洲丝袜另类动漫二区| 国产一区激情在线| 欧美久久久久久久久|