PostgreSQL:字元——型別及函式

Ryan_Bai發表於2020-11-30

字元型別

字串型別

下表列出了可在 PostgreSQL 通用字元型別。

名稱 描述
character varying(n), varchar(n) 變長,字元最大數有限制
character(n), char(n) 定長,字元數沒有達到最大值則使用空白填充
text 變長,無長度限制

二進位制型別

bytea 資料型別允許儲存二進位制字串。

名稱 儲存長度 描述
bytea 1或4位元組加上實際的二進位制字串 變長二進位制串

字元函式

函式 返回型別 描述 例子 結果
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(' PostgreSQL') postgresql
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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2738198/,如需轉載,請註明出處,否則將追究法律責任。

相關文章