温馨提示×

postgresql数据类型怎么定义

小樊
81
2024-12-27 01:47:03
栏目: 云计算

在PostgreSQL中,您可以使用以下语法定义各种数据类型:

  1. 数值类型:

    • 整数类型:smallint, integer, bigint
    • 浮点类型:real, double precision, numeric(可以指定精度和标度)
    • 定点类型:decimal(可以指定精度和标度)
    • 数值类型别名:bit, bit varying, varbitbit varying可以指定长度,varbitbit varying的别名)
  2. 日期和时间类型:

    • 日期类型:date
    • 时间类型:time(可以指定精度)
    • 日期时间类型:timestamp(可以指定时区)
    • 时间戳类型:timestamptz(时区感知的时间戳)
    • 日期时间间隔类型:interval
    • 周期类型:interval(与interval相同,但用于表示周期)
  3. 字符串类型:

    • 字符串类型:character varying(可以指定最大长度,通常简写为varchar
    • 固定长度字符串类型:char(可以指定固定长度)
    • 文本类型:text
    • 字符串类型别名:citext(不区分大小写的文本比较)
  4. 二进制数据类型:

    • 二进制数据类型:bytea
    • 二进制数据类型别名:varbinary(与bytea相同,但用于表示可变长度的二进制数据)
  5. 布尔类型:

    • 布尔类型:booleantruefalse
  6. 枚举类型:

    • 枚举类型:enum(定义一组预定义的字符串值)
  7. JSON数据类型:

    • JSON数据类型:json
    • JSONB数据类型:jsonb(存储JSON数据的二进制格式,支持索引和查询优化)
  8. 数组类型:

    • 数组类型:array(例如integer[], varchar[]等)
  9. 元组类型:

    • 元组类型:record(定义一个记录类型,包含多个字段)
    • 元组类型别名:row(与record相同,但用于表示行类型)
  10. 集合类型:

    • 集合类型:hstore(键值对的哈希表)
    • 集合类型:jsonb[](JSONB数组的数组)
    • 集合类型:integer[](整数数组的数组)

以下是一些示例:

CREATE TABLE example_table (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age SMALLINT,
    salary NUMERIC(10, 2),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN NOT NULL,
    hobbies TEXT[],
    address RECORD(
        street VARCHAR(255),
        city VARCHAR(255),
        country VARCHAR(255)
    )
);

在这个示例中,我们定义了一个名为example_table的表,其中包含各种数据类型的字段。

0