01,字符類型
| 名字 | 描述 |
|---|---|
character varying(, varchar( |
有限制的變長 |
character(, char( |
定長,空格填充 |
text |
無限變長 |
02,類型介紹
character_varying(n)存儲的是變長字符類型,n是一個正整數,如果存儲的字符串長度超出n則報錯;如果存儲的字符串長度比n小,charactervarying(n)僅存儲字符串的實際位數。character(n)存儲定長字符,如果存儲的字符串長度超出n則報錯;如果存儲的字符串長度比n小,則用空白填充
kingledb=> create table Kingle_Study_3 (a varchar(4),b character(4)); CREATE TABLE Time: 8.473 ms kingledb=> insert into Kingle_Study_3 values ('c','c'); INSERT 0 1 Time: 0.874 ms kingledb=> select * from Kingle_Study_3 --可以看出明顯的差別 kingledb-> ; a | b ---+------ c | c (1 row) Time: 0.543 ms
charactervarying(n)類型如果不聲明長度,將存儲任意長度的字符串,而character(n)如果不聲明長度則等效於character(1)。text字符類型存儲任意長度的字符串,和沒有聲明字符長度的charactervarying字符類型幾乎沒有差別。
03,字符類型函數
kingledb=> select char_length('Kingle') --查看字符數 kingledb-> ; char_length ------------- 6 (1 row) Time: 0.801 ms
kingledb=> select octet_length('Kingle'); --占用字節數 octet_length -------------- 6 (1 row) Time: 0.567 ms
kingledb=> select position('l' in 'kingle'); --字符串位置 position ---------- 5 (1 row) Time: 0.628 ms
kingledb=> select substring('kingle' from 3 for 4); --字符串截取 substring ----------- ngle (1 row) Time: 0.455 ms
