postgresql数据类型怎么定义
在PostgreSQL中,您可以使用以下语法定义各种数据类型:
数值类型:
整数类型:smallint
, integer
, bigint
浮点类型:real
, double precision
, numeric
(可以指定精度和标度)定点类型:decimal
(可以指定精度和标度)数值类型别名:bit
, bit varying
, varbit
(bit varying
可以指定长度,varbit
是bit varying
的别名)日期和时间类型:
日期类型:date
时间类型:time
(可以指定精度)日期时间类型:timestamp
(可以指定时区)时间戳类型:timestamptz
(时区感知的时间戳)日期时间间隔类型:interval
周期类型:interval
(与interval
相同,但用于表示周期)字符串类型:
字符串类型:character varying
(可以指定最大长度,通常简写为varchar
)固定长度字符串类型:char
(可以指定固定长度)文本类型:text
字符串类型别名:citext
(不区分大小写的文本比较)二进制数据类型:
二进制数据类型:bytea
二进制数据类型别名:varbinary
(与bytea
相同,但用于表示可变长度的二进制数据)布尔类型:
布尔类型:boolean
(true
或false
)枚举类型:
枚举类型:enum
(定义一组预定义的字符串值)JSON数据类型:
JSON数据类型:json
JSONB数据类型:jsonb
(存储JSON数据的二进制格式,支持索引和查询优化)数组类型:
数组类型:array
(例如integer[]
, varchar[]
等)元组类型:
元组类型:record
(定义一个记录类型,包含多个字段)元组类型别名:row
(与record
相同,但用于表示行类型)集合类型:
集合类型: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
的表,其中包含各种数据类型的字段。