探索PostgreSQL:字段类型及其实际应用

发表时间: 2023-08-06 22:35

PostgreSQL提供了多种字段类型,以适应不同的数据存储需求。

常见的字段类型:

整数类型:

  1. integer(整数)
  2. smallint(短整数)
  3. bigint(长整数)

浮点数类型:

  1. real(单精度浮点数)
  2. double precision(双精度浮点数)

字符串类型:

  1. character varying(n)(可变长度字符串,最多n个字符)
  2. character(n)(定长字符串,恰好n个字符)
  3. text(可变长度字符串,无长度限制)

日期和时间类型:

  1. date(日期)
  2. time(时间)
  3. timestamp(日期和时间)
  4. interval(时间间隔)

布尔类型:

  1. boolean(布尔值,true或false)

数组类型:

  1. integer[](整数数组)
  2. text[](字符串数组)
  3. 多维数组等

JSON和JSONB类型:

  1. json(JSON格式数据)
  2. jsonb(二进制JSON格式数据)

其他类型:

  1. bytea(二进制数据)
  2. uuid(UUID)
  3. 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的表,其中包含了不同的字段类型。您可以根据自己的需要修改表名、字段名和示例数据。