通过 pgAdmin "character varying" 和 "character varying[]" 之间的 PostgreSQL 区别
PostgreSQL difference between "character varying" and "character varying[]" via pgAdmin
下面两种数据类型有什么区别?
我认为当我们还想使用长度约束时使用character varying[]
。但是,从我在 pgAdmin 中看到的情况来看,我们也可以将此约束与 character varying
.
一起使用
“字符变化”(或简称为 varchar)是一个长度可变的字符串(文本)字段(在您的情况下最多 100 个字符)。 []
表示一个数组。即,“字符变化[]”是此类“字符变化”字符串的数组。
文本与文本数组。它表示单个用户名,可能有多个电子邮件存储为 VARCHAR(100)
.
类型的数组
CREATE TABLE tab(
username character varying(100),
email character varying(100)[]
);
INSERT INTO tab(username, email) VALUES ('user', '{"a@domain.com", "b@domain.com"}');
SELECT *, email[1], email[2]
FROM tab;
输出:
+-----------+------------------------------+---------------+--------------+
| username | email | email | email |
+-----------+------------------------------+---------------+--------------+
| user | {a@domain.com,b@domain.com} | a@domain.com | b@domain.com |
+-----------+------------------------------+---------------+--------------+
下面两种数据类型有什么区别?
我认为当我们还想使用长度约束时使用character varying[]
。但是,从我在 pgAdmin 中看到的情况来看,我们也可以将此约束与 character varying
.
“字符变化”(或简称为 varchar)是一个长度可变的字符串(文本)字段(在您的情况下最多 100 个字符)。 []
表示一个数组。即,“字符变化[]”是此类“字符变化”字符串的数组。
文本与文本数组。它表示单个用户名,可能有多个电子邮件存储为 VARCHAR(100)
.
CREATE TABLE tab(
username character varying(100),
email character varying(100)[]
);
INSERT INTO tab(username, email) VALUES ('user', '{"a@domain.com", "b@domain.com"}');
SELECT *, email[1], email[2]
FROM tab;
输出:
+-----------+------------------------------+---------------+--------------+
| username | email | email | email |
+-----------+------------------------------+---------------+--------------+
| user | {a@domain.com,b@domain.com} | a@domain.com | b@domain.com |
+-----------+------------------------------+---------------+--------------+