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

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

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

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

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

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

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

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

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

查詢示例

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

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

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

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

關(guān)鍵說明

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

查詢示例:

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

-- 查看 users 表的所有字段及類型
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存儲所有約束信息(主鍵、外鍵、唯一約束、檢查約束、默認(rèn)值約束)
pg_index存儲索引的詳細(xì)信息(所屬表、索引字段、是否唯一、是否主鍵、索引類型)

關(guān)鍵說明:

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

查詢示例

-- 查看 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. 用戶與權(quán)限相關(guān)

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

查詢示例:

-- 查看所有用戶
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存儲表空間信息(數(shù)據(jù)庫物理存儲位置)
pg_stat_user_tables存儲用戶表的統(tǒng)計信息(如行數(shù)、讀寫次數(shù)、掃描次數(shù),用于性能分析)
pg_locks存儲當(dāng)前數(shù)據(jù)庫的鎖信息(排查鎖等待、死鎖問題)
pg_stat_activity存儲當(dāng)前數(shù)據(jù)庫連接 / 會話信息(誰在連接、執(zhí)行什么 SQL、狀態(tài))

查詢示例:

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

-- 查看表的行數(shù)和讀寫統(tǒng)計
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ù)查詢方式

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

常用的信息模式視圖:

  • information_schema.tables:查詢表信息
  • information_schema.columns:查詢字段信息
  • information_schema.table_constraints:查詢約束信息
  • information_schema.indexes:查詢索引信息

示例

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

總結(jié)

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

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

相關(guān)文章

  • PostgreSQL忘記postgres賬號密碼的解決方法

    PostgreSQL忘記postgres賬號密碼的解決方法

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

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

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

    PostgreSQL定期驗證備份的有效性的完整方案

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

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

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

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

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

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

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

    PotgreSQL?基于時間點恢復(fù)過程

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

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

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

    postgreSQL自動生成隨機數(shù)值的實例

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

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

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

最新評論

惠来县| 青河县| 同德县| 青河县| 达孜县| 县级市| 商都县| 资阳市| 宾阳县| 潜山县| 湘西| 讷河市| 罗城| 景德镇市| 崇明县| 班戈县| 新建县| 布尔津县| 宜宾县| 龙岩市| 阿拉善盟| 理塘县| 凌海市| 十堰市| 惠水县| 浦东新区| 佛山市| 乌鲁木齐市| 北辰区| 南皮县| 杭州市| 靖宇县| 封丘县| 淮阳县| 松江区| 阿拉善左旗| 修文县| 肥城市| 柏乡县| 西吉县| 丰都县|