pg中所有的数据类型 postgres=# select * from pg_type ; postgres=# \d pg_type; 增加一个表,会增加一个表类型,这是一个复合类型,数据输入输出接口走的是record_in 和record_out postgres=# \d table1; postgres=# select * from pg_type where typname = 'table1'; oid | typname | typnamespace | typowner | typlen | typbyval | typtype | typcategory | typispreferred | typisdefined | typdelim | typrelid | typelem | typarray | typinput | typoutput | typreceive | typsend | typmodin | typ modout | typanalyze | typalign | typstorage | typnotnull | typbasetype | typtypmod | typndims | typcollation | typdefaultbin | typdefault | typacl -------+---------+--------------+----------+--------+----------+---------+-------------+----------------+--------------+----------+----------+---------+----------+-----------+------------+-------------+-------------+----------+---- -------+------------+----------+------------+------------+-------------+-----------+----------+--------------+---------------+------------+-------- 17314 | table1 | 2200 | 10 | -1 | f | c | C | f | t | , | 17312 | 0 | 17313 | record_in | record_out | record_recv | record_send | - | - | - | d | x | f | 0 | -1 | 0 | 0 | | |
数值 货币 字符串 字节流:二进制的数据叫字节流,单位Byte,可存1GB 时间 布尔 枚举 平面几何:点线面 网络地址:可以用掩码存一串地址 比特串,比特串单位是bit 全文检索 UUID XML JSON 数组 复合类型:record类型 range 域:限制原有数据类型返回 大对象,可存4TB,类似字节流 Itree,树状数据类型 hstore:存若干kv,支持检索,建议用json代替 cube:用于图像向量相似计算 扩展类型 图像:imgsmlr,https://github.com/postgrespro/imgsmlr,类似图像 geometry、geography 轨迹 raster 近似 roaringbitmap:压缩bitmap pair 扩展插件:eg:datasketches使用近似算法,https://pgxn.org/dist/datasketches/
postgres=# create extension ltree CASCADE VERSION WITH SCHEMA postgres=# create extension ltree ; CREATE EXTENSION postgres=# \dT ltree; List of data types Schema | Name | Description --------+-------+------------- public | ltree | (1 row) a.b的层级比a.b.c.d.e的层级要高 postgres=# select ltree 'a.b.c.d' <@ ltree 'a.b'; ?column? ---------- t (1 row) postgres=# select ltree 'a.b.c.d' @> ltree 'a.b'; ?column? ----------[添加链接描述](https://www.postgresql.org/docs/11/cube.html) f (1 row)
hstore
F.16. hstore
cube,多位立方
F.9. cube
SQL Commands
CREATE DATABASE — create a new database 把业务数据放到一个databse,并用不同SCHEMA来区分,公用的schema放在public里面(public也是schema的一个名字); 不同的schema可以创建同名的表 CREATE SCHEMA — define a new schema 每个表空间对应一个文件系统的目录,即物理存储位置 CREATE TABLESPACE — define a new tablespace