文章目录
1.数据类型、操作符
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 | | |
2.内置数据类型
数值
货币
字符串
字节流:二进制的数据叫字节流,单位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/
- Itree,树状数据类型,F.21. ltree
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
2.数据库对象
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