postgres 系统表

本文详细介绍了PostgreSQL的几个核心系统表,包括pg_class(记录数据表元数据)、pg_attribute(存储表字段信息)、pg_attrdef(存储字段默认值)、pg_authid(存储角色信息)、pg_auth_members(记录角色间成员关系)、pg_constraint(存储约束信息)、pg_tablespace(存储表空间信息)、pg_namespace(存储命名空间信息)和pg_database(存储数据库信息)。通过示例展示了如何查询和使用这些系统表。
摘要由CSDN通过智能技术生成

一、pg_class:

    该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。

名字 类型 引用 描述
relname name   数据类型名字。
relnamespace oid pg_namespace.oid 包含这个对象的名字空间(模式)的OI。
reltype oid pg_type.oid 对应这个表的行类型的数据类型。
relowner oid pg_authid.oid 对象的所有者。
relam oid pg_am.oid 对于索引对象,表示该索引的类型(B-tree,hash)。
relfilenode oid   对象存储在磁盘上的文件名,如果没有则为0。
reltablespace oid pg_tablespace.oid 对象所在的表空间。如果为零,则表示使用该数据库的缺省表空间。(如果对象在磁盘上没有文件,这个字段就没有什么意义)
relpages int4   该数据表或索引所占用的磁盘页面数量,查询规划器会借助该值选择最优路径。
reltuples float4   表中行的数量,该值只是被规划器使用的一个估计值。
reltoastrelid oid pg_class.oid 与此表关联的TOAST表的OID,如果没有为0。TOAST表在一个从属表里"离线"存储大字段。
reltoastidxid oid pg_class.oid 如果是TOAST表,该字段为它索引的OID,如果不是TOAST表则为0。
relhasindex bool    如果这是一个数据表而且至少有(或者最近有过)一个索引,则为真。它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM发现一个表没有索引,那么它清理 relhasindex。
relisshared bool    如果该表在整个集群中由所有数据库共享,则为真。 
relkind char   r = 普通表,i = 索引,S = 序列,v = 视图, c = 复合类型,s = 特殊,t = TOAST表
relnatts int2   数据表中用户字段的数量(除了系统字段以外,如oid)。在pg_attribute里肯定有相同数目的数据行。见pg_attribute.attnum.
relchecks int2   表中检查约束的数量,参阅pg_constraint表。
reltriggers int2   表中触发器的数量;参阅pg_trigger表。
relhasoids bool   如果我们为对象中的每行都生成一个OID,则为真。
relhaspkey bool   如果该表存在主键,则为真。
relhasrules  bool   如表有规则就为真;参阅pg_rewrite表。
relhassubclass bool    如果该表有子表,则为真。
relacl aclitem[]   访问权限。

    见如下应用示例:
    #查看指定表对象testtable的模式
    postgres=# SELECT relname,relnamespace,nspname FROM pg_class c,pg_namespace n WHERE relname = 'testtable' AND relnamespace = n.oid;

      relname   | relnamespace | nspname
    -------------+--------------+---------
     testtable   |         2200    | public
    (1 row)
    #查看指定表对象testtable的owner(即role)。
    postgres=# select relname,rolname from pg_class c,pg_authid au where relname = 'testtable' and relowner = au.oid;

      relname   | rolname
    -------------+----------
     testtable   | postgres
    (1 row)

二、pg_attribute:

    该系统表存储所有表(包括系统表,如pg_class)的字段信息。数据库中的每个表的每个字段在pg_attribute表中都有一行记录。

### 回答1: 要在Euler操作系统中安装PostgreSQL,可以按照以下步骤进行操作: 1. 打开终端窗口,并以管理员身份登录。 2. 使用包管理器安装PostgreSQL软件包。在Euler系统中,可以使用yum或者dnf命令来安装。例如,可以使用以下命令来安装PostgreSQL 13版本: ``` sudo yum install postgresql13-server ``` 3. 安装完成后,需要初始化数据库。使用以下命令进行初始化: ``` sudo postgresql-13-setup initdb ``` 4. 启动PostgreSQL服务。使用以下命令来启动服务: ``` sudo systemctl start postgresql-13 ``` 5. 设置PostgreSQL服务开机自启动。使用以下命令来设置自启动: ``` sudo systemctl enable postgresql-13 ``` 6. 配置数据库用户和密码。默认情况下,新安装的PostgreSQL没有配置任何数据库用户和密码。为了创建一个数据库用户和密码,可以使用以下命令登录到PostgreSQL管理界面: ``` sudo -u postgres psql ``` 然后,可以使用SQL语句创建新的数据库用户,并设置密码: ``` CREATE USER your_username WITH PASSWORD 'your_password'; ``` 7. 创建新的数据库。在上一步的基础上,为新的数据库用户创建一个新的数据库。在PostgreSQL管理界面执行以下SQL语句: ``` CREATE DATABASE your_database OWNER your_username; ``` 8. 最后,退出PostgreSQL管理界面,并重启PostgreSQL服务以使配置生效: ``` \q sudo systemctl restart postgresql-13 ``` 至此,PostgreSQL已成功安装并配置完成,可以使用新的数据库用户和密码来访问和管理数据库。 ### 回答2: 要在Euler操作系统上安装PostgreSQL,按照以下步骤进行操作: 1. 首先,确保你已经具备安装和管理软件包的权限。 2. 执行以下命令来更新软件包列:sudo apt-get update 3. 接下来,安装PostgreSQL软件包。执行以下命令:sudo apt-get install postgresql 4. 在安装过程中,系统会提示你设置一个postgres用户的密码。输入一个安全且容易记住的密码,并确认。 5. 安装完成后,PostgreSQL会自动启动并运行在系统的后台。 6. 使用以下命令来检查PostgreSQL是否正在运行:sudo systemctl status postgresql 7. 如果你看到"active (running)"的字样,PostgreSQL已成功安装并正在运行。 8. 执行以下命令来切换到postgres用户:sudo su - postgres 9. 接下来,创建一个新的数据库用户。执行以下命令:createuser --interactive 10. 系统会提示你输入一个新用户的名称。输入一个你喜欢的名称,然后按照提示进行设置。 11. 创建用户完成后,使用以下命令来创建一个新的数据库:createdb <database_name> 12. 将"<database_name>"替换为你想要创建的数据库的名称。 13. 完成以上步骤后,你已成功安装并配置PostgreSQL数据库。 希望这些步骤能够帮助你在Euler操作系统上成功安装PostgreSQL。如果遇到任何问题,请在安装过程中参考相关文档或寻求帮助。 ### 回答3: 将Euler操作系统安装PostgreSQL数据库非常简单。以下是详细的步骤: 1. 首先,在Euler操作系统上打开终端。 2. 输入命令sudo apt-get update并按Enter键,以确保您的系统已更新到最新版本。 3. 接下来,输入sudo apt-get install postgresql并按Enter键。系统将自动开始下载和安装PostgreSQL。 4. 安装程序将提示您设置PostgreSQL的密码。请键入您想要的密码并按Enter键确认。 5. 安装程序还将询问是否要配置默认用户postgres的身份验证方法。选择“是”,然后选择“密码”。 6. 输入密码并按Enter键。然后系统将自动完成剩余的配置。 7. 接下来,您可以运行psql命令以验证PostgreSQL是否已成功安装。键入psql并按Enter键。如果您看到一个以postgres=#开头的提示符,则说明PostgreSQL已经安装成功。 现在,您已经成功在Euler操作系统上安装了PostgreSQL数据库。您可以使用psql命令来创建和管理数据库以及执行SQL查询。希望这些步骤对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值