PostgreSQL提供了多种字段类型,以适应不同的数据存储需求。
常见的字段类型:
整数类型:
- integer(整数)
- smallint(短整数)
- bigint(长整数)
浮点数类型:
- real(单精度浮点数)
- double precision(双精度浮点数)
字符串类型:
- character varying(n)(可变长度字符串,最多n个字符)
- character(n)(定长字符串,恰好n个字符)
- text(可变长度字符串,无长度限制)
日期和时间类型:
- date(日期)
- time(时间)
- timestamp(日期和时间)
- interval(时间间隔)
布尔类型:
- boolean(布尔值,true或false)
数组类型:
- integer[](整数数组)
- text[](字符串数组)
- 多维数组等
JSON和JSONB类型:
- json(JSON格式数据)
- jsonb(二进制JSON格式数据)
其他类型:
- bytea(二进制数据)
- uuid(UUID)
- money(货币金额)
此外,PostgreSQL还支持自定义数据类型和范围类型,以满足特定需求。你可以查阅官方文档以了解更多关于字段类型的详细信息。
代码示例:
CREATE TABLE example_table (
smallint_column smallint,
integer_column integer,
bigint_column bigint,
real_column real,
double_column double precision,
numeric_column numeric(10,2),
char_column char(10),
varchar_column varchar(255),
text_column text,
date_column date,
time_column time,
timestamp_column timestamp,
interval_column interval,
boolean_column boolean,
enum_column my_enum_type,
integer_array_column integer[],
text_array_column text[],
json_column json,
uuid_column uuid
);
-- 创建一个枚举类型
CREATE TYPE my_enum_type AS ENUM ('option1', 'option2', 'option3');
-- 插入示例数据
INSERT INTO example_table VALUES (
1, -- smallint_column
123, -- integer_column
1234567890, -- bigint_column
3.14, -- real_column
3.14159265359, -- double_column
1234.56, -- numeric_column
'ABC', -- char_column
'Hello World', -- varchar_column
'This is a long text...', -- text_column
'2021-01-01', -- date_column
'12:34:56', -- time_column
'2021-01-01 12:34:56', -- timestamp_column
'1 day', -- interval_column
TRUE, -- boolean_column
'option1', -- enum_column
'{1, 2, 3}', -- integer_array_column
'{"apple", "banana", "orange"}', -- text_array_column
'{"key": "value"}', -- json_column
'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11' -- uuid_column
);
以上示例创建了一个名为example_table的表,其中包含了不同的字段类型。您可以根据自己的需要修改表名、字段名和示例数据。