1. 程式人生 > >PostgreSQL常用字串函式和操作符:

PostgreSQL常用字串函式和操作符:

一、邏輯操作符:

    常用的邏輯操作符有:ANDORNOT。其語義與其它程式語言中的邏輯操作符完全相同。

二、比較操作符:

    下面是PostgreSQL中提供的比較操作符列表:

操作符 描述
< 小於
> 大於
<= 小於或等於
>= 大於或等於
= 等於
!= 不等於

    比較操作符可以用於所有可以比較的資料型別。所有比較操作符都是雙目操作符,且返回boolean型別。除了比較操作符以外,我們還可以使用BETWEEN語句,如:
    a BETWEEN x AND y 等效於 a >= x AND a <= y    
    a NOT BETWEEN

 x AND y 等效於 a < x OR a > y

三、 數學函式和操作符:

    下面是PostgreSQL中提供的數學操作符列表:

操作符 描述 例子 結果
+ 2 + 3 5
- 2 - 3 -1
* 2 * 3 6
/ 4 / 2 2
% 5 % 4 1
^ 2.0 ^ 3.0 8
|/ 平方根 |/ 25.0 5
||/ 立方根 ||/ 27.0 3
! 階乘 5 ! 120
!! 階乘 !! 5 120
@ 絕對值 @ -5.0 5
& 按位AND 91 & 15 11
| 按位OR 32 | 3 35
# 按位XOR 17 # 5 20
~ 按位NOT
~1 -2
<< 按位左移 1 << 4 16
>> 按位右移 8 >> 2 2

    按位操作符只能用於整數型別,而其它的操作符可以用於全部數值資料型別。按位操作符還可以用於位串型別bit和bit varying,

    下面是PostgreSQL中提供的數學函式列表,需要說明的是,這些函式中有許多都存在多種形式,區別只是引數型別不同。除非特別指明,任何特定形式的函式都返回和它的引數相同的資料型別。

函式 返回型別
描述 例子 
結果
abs(x) 絕對值 abs(-17.4) 17.4
cbrt(double) 立方根
cbrt(27.0) 3
ceil(double/numeric) 不小於引數的最小的整數 ceil(-42.8) -42
degrees(double) 
把弧度轉為角度 degrees(0.5) 28.6478897565412
exp(double/numeric) 自然指數 exp(1.0) 2.71828182845905
floor(double/numeric) 不大於引數的最大整數 floor(-42.8) -43
ln(double/numeric) 自然對數 ln(2.0) 0.693147180559945
log(double/numeric) 10為底的對數 log(100.0) 2
log(b numeric,x numeric) numeric指定底數的對數 log(2.0, 64.0) 6.0000000000
mod(y, x) 取餘數 mod(9,4) 1
pi() 
double "π"常量 pi() 
3.14159265358979
power(a double, b double) double 求a的b次冪 power(9.0, 3.0) 729
power(a numeric, b numeric) numeric 求a的b次冪 power(9.0, 3.0) 729
radians(double) double 把角度轉為弧度 radians(45.0) 0.785398163397448
random() double 0.0到1.0之間的隨機數值 random()
round(double/numeric) 圓整為最接近的整數 round(42.4) 42
round(v numeric, s int) numeric 圓整為s位小數數字 round(42.438,2) 42.44
sign(double/numeric) 引數的符號(-1,0,+1) 
sign(-8.4) -1
sqrt(double/numeric) 平方根 sqrt(2.0) 1.4142135623731
trunc(double/numeric) 截斷(向零靠近) trunc(42.8) 42
trunc(v numeric, s int) numeric 截斷為s小數位置的數字 trunc(42.438,2) 42.43

三角函式列表:

函式 描述
acos(x) 反餘弦
asin(x) 反正弦
atan(x) 反正切
atan2(x, y) 正切 y/x 的反函式
cos(x) 餘弦
cot(x) 餘切
sin(x) 正弦
tan(x) 正切


四、字串函式和操作符:

    下面是PostgreSQL中提供的字串操作符列表:

函式 返回型別 描述 例子 結果
string || string text 字串連線 'Post' || 'greSQL' PostgreSQL
bit_length(string) int 字串裡二進位制位的個數 bit_length('jose') 32
char_length(string) int 字串中的字元個數 char_length('jose') 4
convert(string using conversion_name) text 使用指定的轉換名字改變編碼。 convert('PostgreSQL' using iso_8859_1_to_utf8) 'PostgreSQL'
lower(string) text 把字串轉化為小寫 lower('TOM') tom
octet_length(string) int 字串中的位元組數 octet_length('jose') 4
overlay(string placing string from int [for int]) text 替換子字串 overlay('Txxxxas' placing 'hom' from 2 for 4) Thomas
position(substring in string) int 指定的子字串的位置 position('om' in 'Thomas') 3
substring(string [from int] [for int]) text 抽取子字串 substring('Thomas' from 2 for 3) hom
substring(string from pattern) text 抽取匹配 POSIX 正則表示式的子字串 substring('Thomas' from '...$') mas
substring(string from pattern for escape) text 抽取匹配SQL正則表示式的子字串 substring('Thomas' from '%#"o_a#"_' for '#') oma
trim([leading | trailing | both] [characters] from string) text 從字串string的開頭/結尾/兩邊/ 刪除只包含characters(預設是一個空白)的最長的字串 trim(both 'x' from 'xTomxx') Tom
upper(string) text 把字串轉化為大寫。 upper('tom') TOM
ascii(text) int 引數第一個字元的ASCII碼 ascii('x') 120
btrim(string text [, characters text]) text 從string開頭和結尾刪除只包含在characters裡(預設是空白)的字元的最長字串 btrim('xyxtrimyyx','xy') trim
chr(int) text 給出ASCII碼的字元 chr(65) A
convert(string text, [src_encoding name,] dest_encoding name) text 把字串轉換為dest_encoding convert( 'text_in_utf8', 'UTF8', 'LATIN1') 以ISO 8859-1編碼表示的text_in_utf8
initcap(text) text 把每個單詞的第一個子母轉為大寫,其它的保留小寫。單詞是一系列字母數字組成的字元,用非字母數字分隔。 initcap('hi thomas') Hi Thomas
length(string text) int string中字元的數目 length('jose') 4
lpad(string text, length int [, fill text]) text 通過填充字元fill(預設時為空白),把string填充為長度length。 如果string已經比length長則將其截斷(在右邊)。 lpad('hi', 5, 'xy') xyxhi
ltrim(string text [, characters text]) text 從字串string的開頭刪除只包含characters(預設是一個空白)的最長的字串。 ltrim('zzzytrim','xyz') trim
md5(string text) text 計算給出string的MD5雜湊,以十六進位制返回結果。 md5('abc')
repeat(string text, number int) text 重複string number次。 repeat('Pg', 4) PgPgPgPg
replace(string text, from text, to text) text 把字串string裡出現地所有子字串from替換成子字串to。 replace('abcdefabcdef', 'cd', 'XX') abXXefabXXef
rpad(string text, length int [, fill text]) text 通過填充字元fill(預設時為空白),把string填充為長度length。如果string已經比length長則將其截斷。 rpad('hi', 5, 'xy') hixyx
rtrim(string text [, character text]) text 從字串string的結尾刪除只包含character(預設是個空白)的最長的字 rtrim('trimxxxx','x') trim
split_part(string text, delimiter text, field int) text 根據delimiter分隔string返回生成的第field個子字串(1 Base)。 split_part('[email protected][email protected]~ghi', '[email protected]~', 2) def
strpos(string, substring) text 宣告的子字串的位置。 strpos('high','ig') 2
substr(string, from [, count]) text 抽取子字串。 substr('alphabet', 3, 2) ph
to_ascii(text [, encoding]) text 把text從其它編碼轉換為ASCII。 to_ascii('Karel') Karel
to_hex(number int/bigint) text 把number轉換成其對應地十六進位制表現形式。 to_hex(9223372036854775807) 7fffffffffffffff
translate(string text, from text, to text) text 把在string中包含的任何匹配from中的字元的字元轉化為對應的在to中的字元。 translate('12345', '14', 'ax') a23x5


五、位串函式和操作符:

    對於型別bit和bit varying,除了常用的比較操作符之外,還可以使用以下列表中由PostgreSQL提供的位串函式和操作符,其中&、|和#的位串運算元必須等長。在移位的時候,保留原始的位串的的長度。

操作符 描述 例子 結果
|| 連線 B'10001' || B'011' 10001011
& 按位AND B'10001' & B'01101' 00001
| 按位OR B'10001' | B'01101' 11101
# 按位XOR B'10001' # B'01101' 11100
~ 按位NOT ~ B'10001' 01110
<< 按位左移 B'10001' << 3 01000
>> 按位右移 B'10001' >> 2 00100

    除了以上列表中提及的操作符之外,位串還可以使用字串函式:length, bit_length, octet_length, position, substring。此外,我們還可以在整數和bit之間來回轉換,如:
    MyTest=# SELECT 44::bit(10);
        bit
    ------------
     0000101100
    (1 row)
    MyTest=# SELECT 44::bit(3);
     bit
    -----
     100
    (1 row)
    MyTest=# SELECT cast(-44 as bit(12));
         bit
    --------------
     111111010100
    (1 row)
    MyTest=# SELECT '1110'::bit(4)::integer;
     int4
    ------
       14
    (1 row)
    注意:如果只是轉換為"bit",意思是轉換成bit(1),因此只會轉換成整數的最低位。

    該部落格中提供的所有資訊均源自PostgreSQL官方文件,編寫該篇部落格的主要目的是便於今後的查閱,特此宣告。



相關推薦

PostgreSQL常用字串函式操作符

一、邏輯操作符:     常用的邏輯操作符有:AND、OR和NOT。其語義與其它程式語言中的邏輯操作符完全相同。二、比較操作符:     下面是PostgreSQL中提供的比較操作符列表: 操作符 描述 < 小於 > 大於 <= 小於或等於 >

PL/SQL字串宣告、字串函式操作符例項原始碼說明

            PL/SQL字串實際上是一個可選的尺寸規格字元序列。字元可以是數字,字母,空白,特殊字元或全部的組合。 PL/SQL提供了三種類型的字串:固定長度字串:在這樣的字串,程式設計師指定的長度,同時宣告該字串。該字串是右填充空格以達到指定的長度。變長字串:在

【資料庫】【SQL高階】*MySQL資料庫之“函式操作符”(數值函式部分#常用#方便查閱使用)#資料庫SQL知識彙總#(四)-2018.11.27- #轉載#

四、數值函式 4.1 算數操作符 DIV整數除法。 類似於 FLOOR(),然而使用BIGINT 演算法也是可靠的。 4.2 數學函式 若發生錯誤,所有數學函式會返回 NULL 。 ABS(X):返回X 的絕對值。該函式支援使用BIGINT值。

PostgreSql函式操作符一之時間函式

PostgreSql常用的時間函式 1.時間間隔age函式 函式描述:計算兩個日期之間相隔多少天,單個引數時表示與當前日期(current_date)相比 引數:age(timestamp,timestamp),age(timestamp) 返回值:interval,兩個

PostgreSQL函式操作符

一、邏輯操作符:     常用的邏輯操作符有:AND、OR和NOT。其語義與其它程式語言中的邏輯操作符完全相同。二、比較操作符:     下面是PostgreSQL中提供的比較操作符列表: 操作符 描述 < 小於 > 大於 <= 小於或等於 >= 大

python字串格式化%{}操作符

python字串格式化 %操作符 {}操作符---總結 Python字串格式化 (%佔位操作符) 在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作 %。 模板 格式化字串時,Python使用一個字串作為

php常用字串函式大全

  1.strstr(string $str,mixed $needle[, bool $before_needle = FALSE ]) 引數 $str 輸入的字串 ,$needle 查詢的字串,$before_needle 布林值 $str = '[email pr

Mysql-12章-函式操作符 (翻譯+理解)

文章目錄 12.1 函式和操作符一覽   表示式可以在SQL語句中的某些地方使用,SELECT中的ORDER BY和HAVING子句內, SELECT, DELETE,UPDATE這些語句中的WHERE內,SET語句內。 表示式可以使用文字值,列值,N

Postgresql資料庫的函式操作符

六、模式匹配:     PostgreSQL中提供了三種實現模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-風格正則表示式。     1. LIKE:     string LIKE pattern [ ESCAPE escape-

JS正則表示式--正則表示式常用字串函式

一.正則常用字串函式 var str="haaaaaaaaa"; //建立正則表示式 var reg=/a/; (1) reg.test()函式:判斷字串中是否有符合正則規則的內容,返回值為boolean型別 var value=reg.test(s

Hive常用字串函式

Hive內部提供了很多操作字串的相關函式,本文將對其中部分常用的函式進行介紹。 下表為Hive內建的字串函式,具體的用法可以參見本文的下半部分。 返回型別 函式名 描述 int ascii(string str) 返回str第一個字串的數值

100多個基礎常用JS函式語法集合大全

網站特效離不開指令碼,javascript是最常用的指令碼語言,我們歸納一下常用的基礎函式和語法: 1.輸出語句:document.write(""); 2.JS中的註釋為//3.傳統的HTML文件順序是:document->html->(head,body)4.一個瀏覽器視窗中的DOM順序是:w

PHP常用字串函式總結

1查詢字元位置函式: strpos($str,search,[int]):查詢search在$str中的第一次位置從int開始; stripos($str,search,[int]):函式返回字串在另一個字串中第一次出現的位置。該函式對大小寫不敏感 strrpos($str,search,[int]):查

淺談Opencv Mat類(常用建構函式成員函式整理)

在Opencv1代的時候,是使用lplImage 和 CvMat 資料結構來表示影象的。他們都是C語言的結構,申請的記憶體需要自己手動管理。從Opencv2.3往後就引入了Mat類,他可以自動管理記憶體,而我接觸opencv開始,用的就是Mat類,再之後在學習o

ACM中常用字串函式

語法:replace(char str[],char key[],char swap[]); 引數: str[]: 在此源字串進行替換操作 key[]: 被替換的字串,不能為空串 swap[]: 替換的字串,可以為空串,為空串表示在源字元中刪除key[]

glib常用函式一些定義

glib庫是Linux平臺下最常用的C語言函式庫,它具有很好的可移植性和實用性。glib是Gtk +庫和Gnome的基礎。glib可以在多個平臺下使用,比如Linux、Unix、Windows等。glib為許多標準的、常用的C語言結構提供了相應的替代物。 使用glib庫的程式都應該包含glib的標頭檔案gl

VB常用字串函式

1. ASC(X),Chr(X):轉換字元字元碼   [格式]:   P=Asc(X) 返回字串X的第一個字元的字元碼   P=Chr(X) 返回字元碼等於X的字元   [範例]:   (1)P=Chr(65)   ‘ 輸出字元A,因為A的ASCII碼等於65   (2)P=

函式常用模組【day04】函式介紹(一)

本節內容 1、函式介紹 2、函式定義 3、為什麼要使用函式 一、介紹   在我們以往的學習程式設計的過程當中,碰到的最多的兩張程式設計方式或者說程式設計方法:面向過程和麵向物件。其實不管是哪一種,其實都是程式設計的方法論而已。但是現在有一種更古老的程式設計方式:函數語言程式設計,以它的不儲存的狀態,

函式常用模組【day04】遞迴(五)

本節內容 作用域、區域性和全域性變數 遞迴 函數語言程式設計 高階函式和eval()函式 一、概述 在函式內部,可以呼叫其他函式。但是一個函式在內部呼叫自身,這個函式被稱為遞迴函式。 二、簡單介紹 那遞迴具體是怎麼實現的吶?下面我們就來看看如下程式碼:

函式常用模組【day04】內建函式(十)

一、36-40 36、isinstance(object, classinfo) 功能:用於判斷,物件是否是某個類的例項 # s = "alex" # 物件,"alex" => str s = [11,11,11] # 用於判斷,物件是否是某個類的例項 r = isinsta