postgre 数据类型--字符类型
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
人生就像一滴水,非要落下才后悔!
--kingle