一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - PostgreSQL - PostgreSQL教程(五):函數和操作符詳解(1)

PostgreSQL教程(五):函數和操作符詳解(1)

2020-04-27 16:07PostgreSQL教程網 PostgreSQL

這篇文章主要介紹了PostgreSQL教程(五):函數和操作符詳解(1),本文講解了邏輯操作符、比較操作符、數學函數和操作符、三角函數列表、字符串函數和操作符等內容,需要的朋友可以參考下

一、邏輯操作符:

    常用的邏輯操作符有:AND、OR和NOT。其語義與其它編程語言中的邏輯操作符完全相同。

二、比較操作符:

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

PostgreSQL教程(五):函數和操作符詳解(1)

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

三、 數學函數和操作符:

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

PostgreSQL教程(五):函數和操作符詳解(1)

按位操作符只能用于整數類型,而其它的操作符可以用于全部數值數據類型。按位操作符還可以用于位串類型bit和bit varying,

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

PostgreSQL教程(五):函數和操作符詳解(1)

三角函數列表:

PostgreSQL教程(五):函數和操作符詳解(1)

四、字符串函數和操作符:

    下面是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('abc~@~def~@~ghi', '~@~', 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提供的位串函數和操作符,其中&、|和#的位串操作數必須等長。在移位的時候,保留原始的位串的的長度。

PostgreSQL教程(五):函數和操作符詳解(1)

除了以上列表中提及的操作符之外,位串還可以使用字符串函數: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官方文檔,編寫該篇博客的主要目的是便于今后的查閱,特此聲明。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 我的美女奴隶 | 精品福利视频一区二区三区 | 四虎884aa永久播放地址http | 韩国美女主播在线 | 高h生子双性美人受 | 日本漫画大全之工之口 | 国产成人h视频在线播放网站 | sss在线观看免费视频 | 啊啊啊好大视频 | 蘑菇香蕉茄子绿巨人丝瓜草莓 | 成年人在线视频免费观看 | 久久婷婷五月综合色丁香 | 午夜剧场1000 | 日本五十路六十30人8时间 | 激情综 | 扒开胸流出吃奶 | 午夜影院0606免费 | 3d动漫美女物被遭强视频 | 2021精品国夜夜天天拍拍 | 俄罗斯妈妈k8影院在线观看 | 久久黄色精品视频 | 外国黄色软件 | 国产日韩欧美综合一区二区三区 | 无人区大片免费播放器 | 日韩欧美成末人一区二区三区 | 色交视频 | 午夜视频一区 | 奇米影视久久777中文字幕 | 91大神在线精品视频一区 | 色多多幸福宝 | 亚洲免费在线视频 | 天天做天天爱天天操 | 涩涩成人 | 四虎国产免费 | 国产视频一区二 | 无码乱人伦一区二区亚洲一 | 国产精品一在线观看 | 高清一级片 | 双性受合不垅腿攻np | 深夜福利影院 | chinese456老年gay china外卖员gay帮口 |