hql中获取前一天的数据_PostgreSql 怎么获取数据库中关键系统信息(一)

3e406f0f1b0870b5a422a1e5b4d51596.png

如何通过SQL 的方式获得数据库中的一些关键信息,是一个DB最正常的工作,如何通过一些SQL来获得PG的一些关键的参数和信息或者是数据库中的一些信息是需要知道的一件事情。以下是部分 1

一般来说每种数据库中都有一个或几个系统的数据库,在PG中schemaname 以 pg_catalog开头都是系统表,通过系统表我们就可以了解的大部分数据库系统所做的事情

1  查看当前所有的表(用户表)

SELECT relname

  FROM pg_class

 WHERE relname !~ '^(pg_|sql_)'

   AND relkind = 'r';

或者

也可以

SELECT table_name

  FROM information_schema.tables

 WHERE table_type = 'BASE TABLE'

   AND table_schema NOT IN

       ('pg_catalog', 'information_schema');

2  查看用户建立的VIEW

SELECT table_name

  FROM information_schema.views

 WHERE table_schema NOT IN ('pg_catalog', 'information_schema')

   AND table_name !~ '^pg_';

3 当前数据库的用户

SELECT usename  FROM pg_user;

4 列出某个表的字段

SELECT a.attname

  FROM pg_class c, pg_attribute a, pg_type t

 WHERE c.relname = '表名'

   AND a.attnum > 0

   AND a.attrelid = c.oid

   AND a.atttypid = t.oid

5 查询表的索引

SELECT relname, indkey

  FROM pg_class, pg_index

 WHERE pg_class.oid = pg_index.indexrelid

   AND pg_class.oid IN (

    SELECT indexrelid

      FROM pg_index, pg_class

     WHERE pg_class.relname='表名'

       AND pg_class.oid=pg_index.indrelid

       AND indisunique != 't'

       AND indisprimary != 't'

);

查询这个表的那些字段,被建立了索引

SELECT t.relname, a.attname, a.attnum

     FROM pg_index c

LEFT JOIN pg_class t

       ON c.indrelid  = t.oid

LEFT JOIN pg_attribute a

       ON a.attrelid = t.oid

      AND a.attnum = ANY(indkey)

    WHERE t.relname = '表名'

     ;

获得当前数据库表的建立索引的语句

SELECT

    tablename,

    indexname,

    indexdef

FROM

    pg_indexes

WHERE

    schemaname = 'public'

ORDER BY

    tablename,

    indexname;

6 系统中指定表建立的约束

SELECT constraint_name, constraint_type

  FROM information_schema.table_constraints

 WHERE table_name = '表名';

7 对某个约束的详细信息的展示

SELECT c.conname AS constraint_name,

          CASE c.contype

            WHEN 'c' THEN 'CHECK'

            WHEN 'f' THEN 'FOREIGN KEY'

            WHEN 'p' THEN 'PRIMARY KEY'

            WHEN 'u' THEN 'UNIQUE'

          END AS "constraint_type",

          CASE WHEN c.condeferrable = 'f' THEN 0 ELSE 1 END AS is_deferrable,

          CASE WHEN c.condeferred = 'f' THEN 0 ELSE 1 END AS is_deferred,

          t.relname AS table_name,

          array_to_string(c.conkey, ' ') AS constraint_key,

          CASE confupdtype

            WHEN 'a' THEN 'NO ACTION'

            WHEN 'r' THEN 'RESTRICT'

            WHEN 'c' THEN 'CASCADE'

            WHEN 'n' THEN 'SET NULL'

            WHEN 'd' THEN 'SET DEFAULT'

          END AS on_update,

          CASE confdeltype

            WHEN 'a' THEN 'NO ACTION'

            WHEN 'r' THEN 'RESTRICT'

            WHEN 'c' THEN 'CASCADE'

            WHEN 'n' THEN 'SET NULL'

            WHEN 'd' THEN 'SET DEFAULT'

          END AS on_delete,

          CASE confmatchtype

            WHEN 'u' THEN 'UNSPECIFIED'

            WHEN 'f' THEN 'FULL'

            WHEN 'p' THEN 'PARTIAL'

          END AS match_type,

          t2.relname AS references_table,

          array_to_string(c.confkey, ' ') AS fk_constraint_key

     FROM pg_constraint c

LEFT JOIN pg_class t  ON c.conrelid  = t.oid

LEFT JOIN pg_class t2 ON c.confrelid = t2.oid

    WHERE t.relname = '表名'

     AND c.conname = '约束名';

8 列出相关的自增序列

SELECT relname

  FROM pg_class

 WHERE relkind = 'S'

   AND relnamespace IN (

        SELECT oid

          FROM pg_namespace

         WHERE nspname NOT LIKE 'pg_%'

           AND nspname != 'information_schema'

);

9 筛选相关数据库中建立的trigger

SELECT DISTINCT trigger_name

  FROM information_schema.triggers

 WHERE trigger_schema NOT IN

       ('pg_catalog', 'information_schema');

以及关于 trigger 详细的信息

SELECT *

  FROM information_schema.triggers

 WHERE trigger_schema NOT IN

       ('pg_catalog', 'information_schema');

10 查看系统中创建的函数

SELECT routine_name

  FROM information_schema.routines

 WHERE specific_schema NOT IN

       ('pg_catalog', 'information_schema')

   AND type_udt_name != 'trigger';

11 查看当前数据库中表的主键

 SELECT tc.constraint_name,

          tc.constraint_type,

          tc.table_name,

          kcu.column_name,

      tc.is_deferrable,

          tc.initially_deferred,

          rc.match_option AS match_type,

          rc.update_rule AS on_update,

          rc.delete_rule AS on_delete,

          ccu.table_name AS references_table,

          ccu.column_name AS references_field

     FROM information_schema.table_constraints tc

LEFT JOIN information_schema.key_column_usage kcu

       ON tc.constraint_catalog = kcu.constraint_catalog

      AND tc.constraint_schema = kcu.constraint_schema

      AND tc.constraint_name = kcu.constraint_name

LEFT JOIN information_schema.referential_constraints rc

       ON tc.constraint_catalog = rc.constraint_catalog

      AND tc.constraint_schema = rc.constraint_schema

      AND tc.constraint_name = rc.constraint_name

LEFT JOIN information_schema.constraint_column_usage ccu

       ON rc.unique_constraint_catalog = ccu.constraint_catalog

      AND rc.unique_constraint_schema = ccu.constraint_schema

      AND rc.unique_constraint_name = ccu.constraint_name

    WHERE tc.table_name !~ '^(pg_|sql_)'

      AND tc.constraint_type = 'PRIMARY KEY';

12  获得索引与表之间的关系

SELECT a.index_name, b.attname 

  FROM ( 

    SELECT a.indrelid, 

           c.relname index_name, 

           unnest(a.indkey) index_num 

      FROM pg_index a, 

           pg_class b, 

           pg_class c 

     WHERE 

        b.oid=a.indrelid 

       AND a.indisprimary != 't' 

       AND a.indexrelid=c.oid 

       ) a, 

       pg_attribute b 

 WHERE a.indrelid = b.attrelid 

   AND a.index_num = b.attnum and a.index_name !~ '^(pg_|sql_)'

 ORDER BY a.index_name, a.index_num

13  显示VIEW 之间的依赖关系

 SELECT v.relname AS "dependent_view", 

          t.relname AS "referenced_relation"

     FROM pg_depend dv 

LEFT JOIN pg_class v ON v.oid = dv.refobjid 

LEFT JOIN pg_namespace nv ON v.relnamespace = nv.oid

LEFT JOIN pg_depend dt 

       ON dv.classid = dt.classid

      AND dv.objid = dt.objid

      AND dv.refobjid <> dt.refobjid 

      AND dv.refclassid = dt.refclassid

      AND dv.classid = 'pg_catalog.pg_rewrite'::regclass 

      AND dv.refclassid = 'pg_catalog.pg_class'::regclass 

LEFT JOIN pg_class t ON t.oid = dt.refobjid 

LEFT JOIN pg_namespace nt 

       ON t.relnamespace = nt.oid

      AND nv.nspname = 'public'

      AND nt.nspname = 'public' 

    WHERE dv.deptype = 'i' 

      AND v.relkind = 'v' 

      AND t.relkind IN ('r', 'v') 

      AND v.relname = 'testttt' -- VIEW NAME

 GROUP BY v.relname, t.relname; 

8c3b6aa1977ddc7a92776100e247c943.png

共享电子书,需要可以加群自取

80e7382b0beeec94930137b0d702ea35.png

c60014aff9b3bb94b163e1a5c82c3267.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机信息技术为教育带来的变化,信息技术对课堂教学带来的变化

信息技术对课堂教学带来的变化谈一谈信息技术对教育教学的影响以及给课堂教学带来的变化龙川县培英学校 骆俊武在信息技术迅速发展的今天&#xff0c;计算机的应用、网络技术应用&#xff0c;直接影响着学校的的教育教学系统、学校的教育模式、教第一文库网师的教学方法。与传统…

abd shell关闭所有程序_一个 Shell 脚本逆袭的规范,拿走不谢

指定一个默认脚本解释器“#!” 是一个约定的标记&#xff0c;它告诉系统这个脚本需要什么解释器来执行&#xff0c;即使用哪一种Shell。他指明了当我们没有指定解释器的时候默认的解释器。为什么建议要在首行加上脚本默认解释器&#xff0c;因为有的操作系统的默认解释器不是sh…

unity 是厘米还是米_1种“竹节参”,植株有40厘米高,能挂果,果子成熟后变红,珍贵...

很多顽强的野生植物会在竹林里生长&#xff0c;我们都知道价值比较高的七叶一枝花、金线莲等植物&#xff0c;就会生长在湿润的竹林里&#xff0c;它们喜欢湿度比较高的环境&#xff0c;所以在其它比较潮湿的地方也有。不过还有1种“竹节参”&#xff0c;它在竹林里也是常见的&…

JS中的三种弹框

1.alert();"弹框提示" 2.confirm();“确认信息”3.prompt();"输入信息"转载于:https://www.cnblogs.com/hr2014/p/3637692.html

python 窗口 网页 访问_同事用Python操控浏览器运行,引的妹子围观不止!

Python可以做的事情很多&#xff0c;小编也正在奋力挖掘中&#xff0c;今天给大家分享一下&#xff0c;如何用Python来控制浏览器的运行及操作&#xff01;嗯 关于这个&#xff0c;大体有两种方式&#xff0c;且听小编一一列举&#xff1a;一、使用系统自带库 os这个方法的话任…

8g可用 安装内存16g_同样是16g内存,为啥都选两条8G,不选16G单条,这难道有啥讲究?...

相信大家在看一些大神的配置&#xff0c;或者蜗牛这种装机小编的配置的时候&#xff0c;发现内存经常是两条8G&#xff0c;而不是一条16G,很多小伙伴也发出了疑问&#xff0c;难道这里面有什么讲究&#xff1f;这就要扯到双通道&#xff0c;一般来说CPU或者主板的内存控制器有两…

Generate GUID using vbscript

在 .msi 中 的 Component table&#xff0c;查看 ComponentId 列&#xff0c;是一个16进制数的字符串&#xff0c; 用 InstallShield IDE 添加一个 component &#xff0c;ComponentId 会自动生成&#xff0c;点击“Generate GUID” 会重新生成一个新的 ComponentId&#xff0c…

ps怎么对比原图快捷键_PS教程:P图前后,你还能认出这是同一个人吗?

编按&#xff1a;PS一直被誉为亚洲四大邪术之一&#xff0c;比如下图你敢相信这是同一个人吗&#xff1f;是不是隐隐约约回忆起了乔碧萝殿下的辉煌&#xff1f;但话说回来&#xff0c;谁不想看到最好的自己呢&#xff1f;今天我们就看看PS如何将人脱胎换骨&#xff0c;学会这招…

第一个被赋予公明身份的机器人_一文读懂机器人的“眼睛”

看过漫威电影的同学都知道&#xff0c;钢铁侠在装甲里一眨眼&#xff0c;就通过眼球追踪操控人机互动&#xff0c;集黑科技于一身的装备简直不要太炫酷。如今&#xff0c;我们再回头看钢铁侠的AI识别系统&#xff0c;不禁思考这背后的视觉技术。如何让机器人像人类一样获取视觉…

太和二中计算机考试,安徽省太和二中高二数学下册期末考试试题精选

安徽省太和二中高二数学下册期末考试试题精选一.选择题(50分)1.设 是两条不同的直线, 是两个不同的平面,下列命题中正确的是( D )A . 若 , , ,则 B.若 , , ,则C.若 , , ,则 D.若 , , ,则2. 若 &#xff0c;则函数 的两个零点分别位于区间( A )A. 和 内 B. 和 内 C. 和 内 D. 和…

git获取本地版本号_Git使用小结

Git1.Git介绍Git是一个开源的分布式版本控制系统&#xff0c;是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件&#xff0c;Git可以使用本地创建仓库与网络仓库&#xff0c;解决了集中管理型版本控制软件存在的一些问题(CVS、VSS、SVN)。2.Gi…

sql server2008如何创建外键

原文地址&#xff1a;http://blog.csdn.net/zuozuo1245/article/details/8644115 以前创建数据库时就是有主键的创建了主键&#xff0c;但是表之间的关系没有联系&#xff0c;要建数据库关系图只有主键没有外键时不行的。 建外键的前提是此外键必须是另外一个表的主键。建外键的…

字符集_第07期:有关 MySQL 字符集的 SQL 语句

本篇为理清字符集的续篇(上一篇&#xff1a;第06期&#xff1a;梳理 MySQL 字符集的相关概念)&#xff0c;重点讲述字符集涉及到的 sql 语句用法。一、character introducer翻译过来就是字符引导。也就是针对字符串&#xff0c;显式的给定一个字符编码和排序规则&#xff0c;不…

怎么调整计算机显示屏,电脑显示器怎样调大屏幕

电脑显示器怎样调大屏幕你们知道怎么调整电脑显示器的屏幕吗?下面是应届毕业生小编带来的关于电脑显示器怎样调大屏幕的内容&#xff0c;欢迎阅读!电脑显示器怎样调大屏幕?以前的xp系统是在桌面点击右键然后选择属性&#xff0c;在属性里设置分辨率的。而win7则有点不同&…

win7打开计算机死机,win7系统进入桌面总是死机或者卡死怎么办

??最近有位深度技术win7旗舰版用户的电脑总是在进入桌面的时候莫名其妙的死机或者卡死&#xff0c;遇到这种情况我们应该怎么办呢&#xff1f;我们可以通重启资源管理器来解决屏幕卡死的问题&#xff0c;首先我们要打开任务管理器&#xff0c;下面由小编来跟大家介绍一下win7…

以太网例程_开关量转以太网的应用

由于工业以太网的快速冗余自愈能力以及实时性方面问题的逐步解决&#xff0c;工业以太网技术正在逐步深入至工业控制网络的现场设备层应用&#xff0c;即直接基于工业以太网通信来控制现场设备的运行&#xff0c;利用开关量控制模块提供的以太网转开关量功能&#xff0c;计算机…

CPU缓存越大计算机的性能越好,CPU缓存真的越大越好?小心你的钱包

除了内存和硬盘&#xff0c;电脑还有一种超快速的存储设备&#xff0c;就是CPU缓存当你想到你电脑当中的存储设备时&#xff0c;你可能想到的是DDR内存、显卡上的显存、或者更有可能只是机械硬盘和SSD。但其实还有一种超快速的存储设备&#xff0c;对我们习以为常的、现代电脑的…

jvm 参数-server_JVM选项:-client vs -server

jvm 参数-server您是否曾经在运行Java应用程序时想知道-client或-server开关是什么&#xff1f; 例如&#xff1a; javaw.exe -client com.blogspot.sdoulger.LoopTest也显示在java.exe的“帮助”中&#xff0c;例如&#xff0c;其中的选项包括&#xff1a; -client选择“客户…

小米3显示sim卡无服务器,小米手机无服务怎么解决

原标题&#xff1a;小米手机无服务怎么解决方法一&#xff1a;1.第一步是检查电话卡是否正确插入卡槽中。这种情况也会发生很长时间。如果未正确插入卡插槽&#xff0c;则将导致无法维修。2.要注意的第二件事是&#xff0c;如果所购买的小米手机是电信版的&#xff0c;那么插入…

cad服务器手动改自动,几百块就能手动改自动? 怎样省钱换来方便

现在市场上可以手动改自动挡是真的吗?今日市场上出现的手动挡升级自动挡的技术&#xff0c;不少网友询问这个手动挡改自动挡技术&#xff0c;手动改自动挡真的吗?记者带着疑问进行各方面搜索和调查。经过调查&#xff0c;记者终于了解到市场上真的有这种技术&#xff0c;可以…