PostgreSQL常用字串函式和操作符:
一、邏輯操作符:
常用的邏輯操作符有:AND、OR和NOT。其語義與其它程式語言中的邏輯操作符完全相同。
二、比較操作符:
下面是PostgreSQL中提供的比較操作符列表:
操作符 | 描述 |
< | 小於 |
> | 大於 |
<= | 小於或等於 |
>= | 大於或等於 |
= | 等於 |
!= | 不等於 |
比較操作符可以用於所有可以比較的資料型別。所有比較操作符都是雙目操作符,且返回boolean型別。除了比較操作符以外,我們還可以使用BETWEEN語句,如:
a BETWEEN x AND y 等效於 a >= x AND a <= y
a NOT BETWEEN
三、 數學函式和操作符:
下面是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