PostgreSQL 系统表学习

show data_directory;-- 查询配置文件所在位置
show config_file; -- 查询数据储存目录

系统表 :
1)pg_authid表:包含有关数据库认证标识符(角色)的信息。一个角色体现"用户"和"组"的概念。一个用户实际上只是一个设置了 rolcanlogin 标志的角色。任何角色(不管设置了 rolcanlogin)标志)都可以有其它角色做为成员;因为用户标识是集群范围的,pg_authid 在一个集群里所有的数据库之间是共享的:每个集群只有一个 pg_authid 拷贝,而不是每个数据库一个。
字段描述:
    rolname:角色名称
    rolsuper:角色拥有超级用户权限
    rolinherit:角色自动继承其所属角色的权限
    rolcreaterole:角色可以创建更多角色
    rolcreatedb:角色可以创建数据库
    rolcatupdate:角色可以直接更新系统表。如果没有设置这个字段为真,即使超级用户也不能这么做。
    rolcanlogin:角色可以登录,也就是说,这个角色可以给予会话认证标识符。
    rolconnlimit:对于可以登录的角色,限制其最大并发连接数量。-1 表示没有限制。
    rolpassword:口令(可能是加密的);如果没有则为 NULL
    rolvaliduntil:口令失效时间(只用于口令认证);如果没有失效期,则为 NULL

2)pg_auth_members表: 显示角色之间的成员关系。任何非闭环的关系集合都是允许的。因为用户标识是集群范围的,pg_auth_members 是在一个集群里的所有数据库之间共享的:每个集群里只有一个 pg_auth_members 拷贝,而不是每个数据库一个。
字段描述:
    roleid:拥有有成员的角色的 ID[pg_authid.oid]
    member:属于 roleid 角色的一个成员的角色的 ID[pg_authid.oid]
    grantor:赋予此成员关系的角色的 ID[pg_authid.oid]

3)pg_database表:表存储关于可用数据库的信息。和大多数系统表不同,pg_database 是在一个集群里的所有数据库共享的:每个集群只有一份 pg_database 拷贝,而不是每个数据库一份。
字段描述:
    datname:数据库名字
    datdba:数据库所有人,通常为其创建者[pg_authid.oid]

4)pg_class表:表记载表和几乎所有有字段或者是那些类似表的东西。包括索引(不过还要参阅 pg_index)、序列、视图、复合类型和一些特殊关系类型
字段描述:
    relname:表、索引、视图等的名字
    relnamespace:包含这个关系的名字空间(模式)的 OID[pg_namespace.oid]
    relpersistence:p = 永久表,u = 无日志表, t = 临时表
    relkind:r = 普通表, i = 索引, S = 序列, t = TOAST表, v = 视图, m = 物化视图, c = 组合类型, f = 外部表, p = 分区表, I = 分区索引

5)pg_description表:可以给每个数据库对象存储一个可选的描述(注释)。你可以用 COMMENT 命令操作这些描述,并且可以用 psql 的 \d 命令查看。许多内置的系统对象的描述提供了 pg_description 的初始内容
字段描述:
    objoid:这条描述所描述的对象的 OID [任意 oid 属性]
    classoid:这个对象出现的系统表的 OID[pg_class.oid]
    objsubid:对于一个表字段的注释,它是字段号(objoid 和 classoid 指向表自身)。对于其它对象类型,它是零。
    description:作为对该对象的描述的任意文本

6)pg_index表:存储索引的具体信息
字段描述:
    indexrelid:索引在pg_class里记录的oid
    indrelid:使用这个表在pg_class里的记录的oid

7)pg_tablespace表:存储有关可用的表空间的信息。表可以放置在特定的表空间里,以帮助管理磁盘布局。与大多数系统表不同,pg_tablespace 在一个集群中的所有数据库之间共享:每个集群只有一份 pg_tablespace 的拷贝,而不是每个数据库一个。
字段描述:
    spcname:表空间名
    spcowner:表空间的所有者

8)pg_namespace表:模式/存储名字空间。名字空间是 SQL 模式下层的结构:每个名字空间有独立的关系,类型等集合但并不会相互冲突
字段描述:
    nspnamce:名空间名称
    nspowner:名空间的所有者

9)pg_attribute表:存储关于表的字段的信息。数据库里每个表的每个字段都在 pg_attribute 里有一行。还有用于索引,以及所有在 pg_class 里有记录的对象。
字段描述:
    attrelid:字段所属的表oid[pg_class.oid]
    attname:表字段名
    atttypid:字段数据类型oid[pg_type.oid]
    attnum:字段数目。普通字段是从 1 开始计数的。系统字段(比如 oid)有(任意)正数。

10)pg_inherits:存储表的分区关系
字段描述:
    inhrelid:子表的OID[pg_class.oid]
    inhparent:父表的OID[pg_class.oid]
    inhseqno:如果一个子表存在多个直系父表(多重继承),这个数字表明此继承字段的排列顺序。计数从1开始 

11)pg_tables:提供对数据库中每个表的信息的访问
字段描述:
    schemaname:模式名称[pg_namespace.nspname]
    tablename:表名[pg_class.relname]
    tableowner:表拥有者[pg_authid.rolname]
    tablespace:表空间名称

12)pg_type:存储有关数据类型的信息。基本类型和枚举类型(标量类型)是用CREATE TYPE创建的, 域是使用CREATE DOMAIN创建的。同时还为数据库中每个表自动创建一个复合类型, 以表示该表的行结构。还可以用CREATE TYPE AS创建复合类型.
字段描述:
    typname:数据类型名
    typtype:对于基础类型是b,对于复合类型是c(比如,一个表的行类型)。 对于域类型是d,E的枚举类型,对于伪类型是p。
    typrelid:如果是复合类型(参阅typtype)那么这个字段指向pg_class中定义该表的行。对于自由存在的复合类型,pg_class记录并不表示一个表,但是总需要它来查找该类型连接的pg_attribute记录。对于非复合类型为零。[pg_class.oid]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值