PostgreSQL | 您所在的位置:網(wǎng)站首頁 › 屬羊的孩子今年幾周歲了 › PostgreSQL |
前言
PostgreSQL的表一般都是建立在public這個schema下的,假如現(xiàn)在有個數(shù)據(jù)表t_student,可以用以下幾種方式來查詢表結(jié)構(gòu)和索引信息。 使用\d元命令查看表字段信息和索引信息在cmd界面使用psql連接db后,輸入\d加上表名即可: \d t_student 通過系統(tǒng)數(shù)據(jù)字典查詢表結(jié)構(gòu) select col.table_schema, col.table_name, col.ordinal_position, col.column_name, col.data_type, col.character_maximum_length, col.numeric_precision, col.numeric_scale, col.is_nullable, col.column_default, des.description from information_schema.columns col left join pg_description des on col.table_name::regclass = des.objoid and col.ordinal_position = des.objsubid where table_schema = 'public' and table_name = 't_student' order by ordinal_position;或者簡單點: select * from information_schema.columns where table_schema='public' and table_name='t_student'; 通過系統(tǒng)數(shù)據(jù)字典查詢索引信息 select A.SCHEMANAME, A.TABLENAME, A.INDEXNAME, A.TABLESPACE, A.INDEXDEF, B.AMNAME, C.INDEXRELID, C.INDNATTS, C.INDISUNIQUE, C.INDISPRIMARY, C.INDISCLUSTERED, D.DESCRIPTION from PG_AM B left join PG_CLASS F on B.OID = F.RELAM left join PG_STAT_ALL_INDEXES E on F.OID = E.INDEXRELID left join PG_INDEX C on E.INDEXRELID = C.INDEXRELID left outer join PG_DESCRIPTION D on C.INDEXRELID = D.OBJOID, PG_INDEXES A where A.SCHEMANAME = E.SCHEMANAME and A.TABLENAME = E.RELNAME and A.INDEXNAME = E.INDEXRELNAME and E.SCHEMANAME = 'public' and E.RELNAME = 't_student'; 查詢所有的表名 select n.nspname, relname from pg_class c, pg_namespace n where c.relnamespace = n.oid and nspname = 'public' and relkind = 'r' order by relname; 可視化工具DBeaver對于上述的sql語句只需要修改要查詢的table name,可以根據(jù)需要自行修改想要查詢的column。如果是通過DBeaver來連接數(shù)據(jù)庫,還可以直接在當(dāng)前的數(shù)據(jù)庫實例下打開schema里的public選項,接著選中table,選中你想查看的表,可以很直觀地看到該表的各種信息:column、index等等。 參考鏈接 PostgreSQL:如何查詢表的字段信息? |
今日新聞 |
推薦新聞 |
專題文章 |
CopyRight 2018-2019 實驗室設(shè)備網(wǎng) 版權(quán)所有 |