最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Postgresql 系統(tǒng)表作用解釋

 更新時(shí)間:2026年06月03日 09:29:57   作者:逍遙德  
這篇文章主要介紹了Postgresql 系統(tǒng)表作用解釋,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

?postgresql 系統(tǒng)表有哪些,作用是什么

了解 PostgreSQL 的系統(tǒng)表(System Catalogs)有哪些,以及它們各自的核心作用。PostgreSQL 的系統(tǒng)表是存儲(chǔ)數(shù)據(jù)庫(kù)元數(shù)據(jù)(如表、字段、索引、約束、用戶(hù)等信息)的核心表,所有數(shù)據(jù)庫(kù)對(duì)象的定義都記錄在這里,我會(huì)按功能分類(lèi)梳理核心系統(tǒng)表,并說(shuō)明它們的作用和常用場(chǎng)景。

一、核心系統(tǒng)表分類(lèi)及作用

PostgreSQL 的系統(tǒng)表都位于 pg_catalog 模式下(可省略模式名直接查詢(xún)),以下是最常用的核心表,按功能分組:

1. 數(shù)據(jù)庫(kù)與模式相關(guān)

系統(tǒng)表名核心作用
pg_database存儲(chǔ)數(shù)據(jù)庫(kù)實(shí)例中所有數(shù)據(jù)庫(kù)的信息(如數(shù)據(jù)庫(kù)名、OID、所有者、編碼、表空間)
pg_namespace存儲(chǔ)數(shù)據(jù)庫(kù)中的所有模式(Schema) 信息(如模式名、OID、所有者、權(quán)限)

查詢(xún)示例

-- 查看所有數(shù)據(jù)庫(kù)
SELECT datname, datowner, encoding FROM pg_database;

-- 查看當(dāng)前數(shù)據(jù)庫(kù)的所有模式
SELECT nspname, nspowner FROM pg_namespace;

2. 表 / 視圖 / 索引等對(duì)象相關(guān)

系統(tǒng)表名核心作用
pg_class存儲(chǔ)所有關(guān)系型對(duì)象(表、視圖、索引、序列、物化視圖等)的核心信息,是最核心的系統(tǒng)表之一
pg_attribute存儲(chǔ)所有字段(列) 的信息(如字段名、所屬表 OID、數(shù)據(jù)類(lèi)型、是否可為空、默認(rèn)值)
pg_type存儲(chǔ)所有數(shù)據(jù)類(lèi)型的信息(內(nèi)置類(lèi)型如 int/text,自定義類(lèi)型都在這里)

關(guān)鍵說(shuō)明

  • pg_class.relkind 字段區(qū)分對(duì)象類(lèi)型:r= 普通表,v= 視圖,i= 索引,s= 序列,m= 物化視圖。
  • pg_attribute.attnum 為字段編號(hào)(>0 是普通字段,0 是表 oid,-1/-2 是系統(tǒng)隱藏字段)。

查詢(xún)示例:

-- 查看 public 模式下的所有普通表
SELECT relname AS table_name 
FROM pg_class 
WHERE relkind = 'r' 
AND relnamespace = (SELECT oid 
            FROM pg_namespace 
            WHERE nspname = 'public');

-- 查看 users 表的所有字段及類(lèi)型
SELECT 
    a.attname AS column_name,
    t.typname AS data_type,
    a.attnotnull AS is_not_null
FROM pg_attribute a
JOIN pg_type t ON a.atttypid = t.oid
WHERE a.attrelid = (SELECT oid 
            FROM pg_class WHERE relname = 'users') 
    AND a.attnum > 0;

3. 約束與索引相關(guān)

系統(tǒng)表名核心作用
pg_constraint存儲(chǔ)所有約束信息(主鍵、外鍵、唯一約束、檢查約束、默認(rèn)值約束)
pg_index存儲(chǔ)索引的詳細(xì)信息(所屬表、索引字段、是否唯一、是否主鍵、索引類(lèi)型)

關(guān)鍵說(shuō)明:

  • pg_constraint.contype 區(qū)分約束類(lèi)型:p= 主鍵,u= 唯一約束,f= 外鍵,c= 檢查約束,d= 默認(rèn)值約束。
  • pg_index.indisunique = true 表示唯一索引,indisprimary = true 表示主鍵索引。

查詢(xún)示例

-- 查看 users 表的所有約束
SELECT conname, contype, conkey 
FROM pg_constraint 
WHERE conrelid = (SELECT oid FROM pg_class WHERE relname = 'users');

-- 查看 users 表的所有唯一索引
SELECT indexrelname AS index_name 
FROM pg_index 
JOIN pg_class t ON pg_index.indrelid = t.oid 
WHERE t.relname = 'users' AND indisunique = true;

4. 用戶(hù)與權(quán)限相關(guān)

系統(tǒng)表名核心作用
pg_roles存儲(chǔ)數(shù)據(jù)庫(kù)中所有角色 / 用戶(hù) / 組的信息(用戶(hù)名、密碼哈希、權(quán)限、是否超級(jí)用戶(hù))
pg_authid與 pg_roles 類(lèi)似,但包含敏感信息(如密碼),僅超級(jí)用戶(hù)可訪問(wèn)
pg_permissions存儲(chǔ)對(duì)象的權(quán)限分配信息(哪些用戶(hù)對(duì)哪些對(duì)象有哪些權(quán)限)

查詢(xún)示例:

-- 查看所有用戶(hù)
SELECT rolname, rolsuper, rolcreaterole FROM pg_roles;

-- 查看 users 表的權(quán)限分配
SELECT grantee, privilege_type 
FROM information_schema.table_privileges 
WHERE table_name = 'users';

5. 其他常用系統(tǒng)表

系統(tǒng)表名核心作用
pg_tablespace存儲(chǔ)表空間信息(數(shù)據(jù)庫(kù)物理存儲(chǔ)位置)
pg_stat_user_tables存儲(chǔ)用戶(hù)表的統(tǒng)計(jì)信息(如行數(shù)、讀寫(xiě)次數(shù)、掃描次數(shù),用于性能分析)
pg_locks存儲(chǔ)當(dāng)前數(shù)據(jù)庫(kù)的鎖信息(排查鎖等待、死鎖問(wèn)題)
pg_stat_activity存儲(chǔ)當(dāng)前數(shù)據(jù)庫(kù)連接 / 會(huì)話信息(誰(shuí)在連接、執(zhí)行什么 SQL、狀態(tài))

查詢(xún)示例:

-- 查看當(dāng)前所有活躍會(huì)話
SELECT usename, datname, query, state 
FROM pg_stat_activity 
WHERE state = 'active';

-- 查看表的行數(shù)和讀寫(xiě)統(tǒng)計(jì)
SELECT relname, n_live_tup AS row_count, seq_scan AS full_scan_count 
FROM pg_stat_user_tables 
WHERE relname = 'users';

二、信息模式(Information Schema):更友好的元數(shù)據(jù)查詢(xún)方式

除了原生系統(tǒng)表,PostgreSQL 還提供了 Information Schema(信息模式),它是符合 SQL 標(biāo)準(zhǔn)的視圖集合,封裝了底層系統(tǒng)表,語(yǔ)法更通用、更易讀,適合跨數(shù)據(jù)庫(kù)兼容場(chǎng)景。

常用的信息模式視圖:

  • information_schema.tables:查詢(xún)表信息
  • information_schema.columns:查詢(xún)字段信息
  • information_schema.table_constraints:查詢(xún)約束信息
  • information_schema.indexes:查詢(xún)索引信息

示例

-- 用信息模式查詢(xún) users 表的字段
SELECT column_name, data_type, is_nullable 
FROM information_schema.columns 
WHERE table_name = 'users' AND table_schema = 'public';

三、系統(tǒng)表使用建議

  1. 新手優(yōu)先用信息模式:語(yǔ)法更通用,無(wú)需記憶系統(tǒng)表的 OID 關(guān)聯(lián)邏輯,降低學(xué)習(xí)成本。
  2. 高級(jí)場(chǎng)景用原生系統(tǒng)表:如需獲取更底層的信息(如索引物理屬性、鎖詳情),原生系統(tǒng)表更全面。
  3. 避免直接修改系統(tǒng)表:系統(tǒng)表由 PostgreSQL 自動(dòng)維護(hù),手動(dòng)修改可能導(dǎo)致數(shù)據(jù)庫(kù)損壞,管理對(duì)象應(yīng)使用 CREATE/ALTER/DROP 命令。
  4. 常用元數(shù)據(jù)查詢(xún)可封裝函數(shù):比如封裝 “查詢(xún)表的所有約束”“查詢(xún)表的索引” 等函數(shù),簡(jiǎn)化日常使用。

總結(jié)

  1. 核心系統(tǒng)表分類(lèi):數(shù)據(jù)庫(kù) / 模式(pg_database/pg_namespace)、表 / 字段(pg_class/pg_attribute)、約束 / 索引(pg_constraint/pg_index)、用戶(hù) / 權(quán)限(pg_roles/pg_permissions)、監(jiān)控 / 鎖(pg_stat_activity/pg_locks)是最常用的幾類(lèi)。
  2. 信息模式優(yōu)勢(shì):基于系統(tǒng)表封裝的標(biāo)準(zhǔn)視圖,語(yǔ)法通用、易讀,適合新手和跨數(shù)據(jù)庫(kù)場(chǎng)景。
  3. 使用原則:系統(tǒng)表用于查詢(xún)?cè)獢?shù)據(jù),禁止手動(dòng)修改;優(yōu)先用信息模式,底層需求用原生系統(tǒng)表。

?到此這篇關(guān)于Postgresql 系統(tǒng)表作用解釋的文章就介紹到這了,更多相關(guān)Postgresql 系統(tǒng)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL忘記postgres賬號(hào)密碼的解決方法

    PostgreSQL忘記postgres賬號(hào)密碼的解決方法

    這篇文章主要介紹了PostgreSQL忘記postgres賬號(hào)的密碼的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • PostgreSQL 實(shí)現(xiàn)定時(shí)job執(zhí)行(pgAgent)

    PostgreSQL 實(shí)現(xiàn)定時(shí)job執(zhí)行(pgAgent)

    這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)定時(shí)job執(zhí)行(pgAgent),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • PostgreSQL定期驗(yàn)證備份的有效性的完整方案

    PostgreSQL定期驗(yàn)證備份的有效性的完整方案

    在 PostgreSQL 的高可用與災(zāi)備體系中, 備份本身不是目標(biāo),可恢復(fù)才是,本文將系統(tǒng)闡述如何設(shè)計(jì)并執(zhí)行一套完整的 PostgreSQL 備份有效性驗(yàn)證方案,涵蓋邏輯備份、物理備份、WAL 歸檔、PITR 恢復(fù)、自動(dòng)化驗(yàn)證及最佳實(shí)踐,需要的朋友可以參考下
    2026-02-02
  • postgresql數(shù)據(jù)添加兩個(gè)字段聯(lián)合唯一的操作

    postgresql數(shù)據(jù)添加兩個(gè)字段聯(lián)合唯一的操作

    這篇文章主要介紹了postgresql數(shù)據(jù)添加兩個(gè)字段聯(lián)合唯一的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • PostgreSQL如何修改默認(rèn)端口號(hào)

    PostgreSQL如何修改默認(rèn)端口號(hào)

    文章主要內(nèi)容是關(guān)于在升級(jí)PostgreSQL過(guò)程中遇到的問(wèn)題,以及解決這些問(wèn)題的方法,升級(jí)過(guò)程中,由于端口號(hào)設(shè)置不正確,導(dǎo)致psql連接到舊版本的服務(wù)器,從而引發(fā)語(yǔ)法錯(cuò)誤,解決方法是在連接數(shù)據(jù)庫(kù)時(shí)指定正確的端口號(hào),或者修改默認(rèn)端口號(hào)
    2024-12-12
  • Postgresql 動(dòng)態(tài)統(tǒng)計(jì)某一列的某一值出現(xiàn)的次數(shù)實(shí)例

    Postgresql 動(dòng)態(tài)統(tǒng)計(jì)某一列的某一值出現(xiàn)的次數(shù)實(shí)例

    這篇文章主要介紹了Postgresql 動(dòng)態(tài)統(tǒng)計(jì)某一列的某一值出現(xiàn)的次數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • PotgreSQL?基于時(shí)間點(diǎn)恢復(fù)過(guò)程

    PotgreSQL?基于時(shí)間點(diǎn)恢復(fù)過(guò)程

    本篇文章介紹?PostgreSQL?基于時(shí)間點(diǎn)恢復(fù)(point-in-time-recover)需要的條件及恢復(fù)過(guò)程,屬于操作說(shuō)明,對(duì)PotgreSQL?時(shí)間點(diǎn)恢復(fù)相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • PostgreSQL12同步流復(fù)制搭建及主備切換方式

    PostgreSQL12同步流復(fù)制搭建及主備切換方式

    這篇文章主要介紹了PostgreSQL12同步流復(fù)制搭建及主備切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • postgreSQL自動(dòng)生成隨機(jī)數(shù)值的實(shí)例

    postgreSQL自動(dòng)生成隨機(jī)數(shù)值的實(shí)例

    這篇文章主要介紹了postgreSQL自動(dòng)生成隨機(jī)數(shù)值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Mac?OS上安裝PostgreSQL完整圖文教程

    Mac?OS上安裝PostgreSQL完整圖文教程

    這篇文章主要介紹了Mac?OS上安裝PostgreSQL的完整圖文教程,問(wèn)文中通過(guò)代碼詳細(xì)介紹了如何設(shè)置密碼、允許遠(yuǎn)程連接、常用命令、備份與恢復(fù)、卸載以及常見(jiàn)問(wèn)題解決方法,需要的朋友可以參考下
    2026-01-01

最新評(píng)論

墨竹工卡县| 浦北县| 鲁山县| 临泽县| 卫辉市| 水城县| 介休市| 清原| 白玉县| 鹤山市| 兴仁县| 江门市| 平江县| 北安市| 依安县| 永宁县| 兰州市| 通渭县| 久治县| 耿马| 若羌县| 扎囊县| 孟津县| 保亭| 泸水县| 同江市| 麻阳| 麻城市| 潜山县| 奈曼旗| 肇庆市| 滦南县| 武陟县| 尼木县| 高平市| 铅山县| 汉阴县| 兴宁市| 景宁| 凤城市| 永泰县|