日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 立方根函数_PostgreSQL基础知识之SQL操作符实践指南

發布時間:2025/3/21 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 立方根函数_PostgreSQL基础知识之SQL操作符实践指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

操作符是數據庫具有的運算特性,對文本字符和一些標簽字符的處理,使用操作符可以簡化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

邏輯操作符

在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)

hrdb=> --~按位取反,7 按位取反的值為 16

hrdb=> --計算過程

hrdb=> --7 用二進制表示 0000 0111

hrdb=> --按位取反,最高位為0 取 1表示符號,其余按位取反

hrdb=> --~7 1000 1000 轉換為10進制為-8

hrdb=> SELECT ~7 AS result;

result

--------

-8

(1 row)

hrdb=> --<

hrdb=> --計算過程

hrdb=> --4用二進制表示 0000 0100

hrdb=> --4左移兩位 000001 0000 位數不足用 0 補位

hrdb=> --轉換為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去掉轉換為10進制,為1

hrdb=> SELECT 8 >> 3 AS result;

result

--------

1

(1 row)

總結

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

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

總結

以上是生活随笔為你收集整理的mysql 立方根函数_PostgreSQL基础知识之SQL操作符实践指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。