我經歷了PostgreSQL字符類型的文檔。但仍然有一些問題需要PostgreSQL中字符類型的說明
「char」是固定長度i,e 1 如果是這樣,什麼是「char []」的長度,因爲我無法在pgadmin中更改它我認爲它用於可變長度字符數組。那麼,實際的默認大小是多少?
與「char」[]相比,字符有什麼用?現在我假設字符用於定義大小的固定長度字符數組。
爲什麼使用character []?
字符變化和字符變化有什麼區別?
我經歷了PostgreSQL字符類型的文檔。但仍然有一些問題需要PostgreSQL中字符類型的說明
「char」是固定長度i,e 1 如果是這樣,什麼是「char []」的長度,因爲我無法在pgadmin中更改它我認爲它用於可變長度字符數組。那麼,實際的默認大小是多少?
與「char」[]相比,字符有什麼用?現在我假設字符用於定義大小的固定長度字符數組。
爲什麼使用character []?
字符變化和字符變化有什麼區別?
如果您來自C背景,PostgreSQL中的字符串類型是而不是字符數組。
對於PostgreSQL中的每種類型foo
,都有一個對應的數組類型foo[]
,它表示foo
類型的值的數組。只有在不打算在數據庫中操縱它們的情況下才使用數組類型;如果你這樣做,通常最好將數組規範化爲一個單獨的表。
撇開數組類型,有不同的字符類型:
"char"
(需要雙引號):單個字符。主要用於目錄表。除非你知道你在做什麼,否則不要使用這種類型。
character(n)
或char(n)
:固定長度的字符串。無論您在那裏存儲什麼,它總是會在右側填充空格。行爲,如SQL標準所規定的,有時令人驚訝,所以你很少需要這種類型。
text
:任意長度的字符串。這是字符串所需的類型,除非您希望數據庫施加長度限制。
character varying(n)
或varchar(n)
:這與具有附加長度限制的text
相同。
要與例如圓形其關閉:
CREATE TABLE strtest(
id serial PRIMARY KEY,
sc "char",
c character(10),
vc character varying(10),
vca character varying(10)[]
);
INSERT INTO strtest (sc, c, vc, vca)
VALUES (
'x',
'short',
'short',
ARRAY['short1', 'short2', 'short3']
);
SELECT sc, c, vc, vca[2] FROM strtest;
sc | c | vc | vca
----+------------+-------+--------
x | short | short | short2
(1 row)
'[]'表示** **陣列,而不是一個單一的值:https://www.postgresql.org/docs/電流/靜態/ arrays.html –