Postgresql从小白到高手 九 : psql高级查询及内部视图使用

Postgresql从小白到高手 九:pgsql 复杂查询及内部表高级查询


文章目录

  • Postgresql从小白到高手 九:pgsql 复杂查询及内部表高级查询
  • 一、多表查询
  • 二、pgsql内部表
    • 1.内部表
    • 2.内部表查询应用


一、多表查询

内联 :inner join ··· on 简写 join ··· on
结果集只有符合 筛选条件的才展现。

外联
left outer join ···· on 简写 – left join ·· on
这个查询是一个左外连接, 因为在连接操作符左部的表中的行在输出中至少要出现一次, 而在右部的表的行只有在能找到匹配的左部表行时才被输出。 如果输出的左部表的行没有对应匹配的右部表的行,那么右部表行的列将填充空值(null)。
左联
左联查询-

右联接
right join ··· on
与左连接相对应,右表展现,左表符合条件展现,无符合数据列展现为null
在这里右描述
在这里插入图片描述

全外连接
full outer join ··· on
同时在查询结果上做左连接和右连接,不满足条件时,值为null 。

在这里插入图片描述

在这里插入图片描述

自连接
select * from test1 t1 join test1 t2 on t1.code = t2.code
自连接在处理 字段细节分析很有效果 。

union all
将结果集合并,不会删除重复行,但要求左右结果集有相同列

二、pgsql内部表

1.内部表

内部表
两个页:
information_schema:
表信息:
information_schema.tables ,相当于Oracle中的all_tables
字段信息:
information_schema.columns,相当于Oracle中的all_tab_cloumns
约束信息:
information_schema.table_constraints
权限信息:
table_privileges中记录了表权限,column_privileges中记录了列上的权限,routine_privileges上记录了function/procedure的权限,role_usage_grants记录了sequence/domain等类型的对象的usage权限,跟usage_privileges类似
视图信息:
Views中记录视图基础信息,view_table_usage记录视图所依赖的表,view_routine_usage记录所依赖的function, view_column_usage记录所涉及的字段
查视图:
select * from information_schema.views
查表列信息:
SELECT
*
FROM
information_schema.columns
WHERE
table_name = ‘employee’
ORDER BY
ordinal_position;

查函数:
select * from information_schema.routines where routine_type = ‘FUNCTION’;
查触发器:
select * from information_schema.triggers;

pg_catalog
查询索引:
select * from pg_catalog.pg_indexes;
查视图:
select * from pg_catalog.pg_views;

表名字用途
pg_aggregate聚集函数
pg_am索引访问方法
pg_amop访问方法操作符
pg_amproc访问方法支持过程
pg_attrdef字段缺省值
pg_attribute表的列(也称为”属性”或”字段”)
pg_authid认证标识符(角色)
pg_auth_members认证标识符成员关系
pg_autovacuum每个关系一个的自动清理配置参数
pg_cast转换(数据类型转换)
pg_class表、索引、序列、视图(“关系”)
pg_constraint检查约束、唯一约束、主键约束、外键约束
pg_conversion编码转换信息
pg_database本集群内的数据库
pg_depend数据库对象之间的依赖性
pg_description数据库对象的描述或注释
pg_index附加的索引信息
pg_inherits表继承层次
pg_language用于写函数的语言
pg_largeobject大对象
pg_listener异步通知
pg_namespace模式
pg_opclass索引访问方法操作符类
pg_operator操作符
pg_pltemplate过程语言使用的模板数据
pg_proc函数和过程
pg_rewrite查询重写规则
pg_shdepend在共享对象上的依赖性
pg_shdescription共享对象上的注释
pg_statistic优化器统计
pg_tablespace这个数据库集群里面的表空间
pg_trigger触发器
pg_type数据类型

2.内部表查询应用

查锁表
SELECT
locktype,
database,
relation::regclass,
mode,
granted
FROM
pg_locks
WHERE
relation IS NOT NULL
AND mode != ‘AccessShareLock’
AND NOT granted;

查询字段在存过中的使用:
select n.nspname as “Schema”,p.proname from pg_proc p
LEFT JOIN pg_namespace n ON n.oid = p.pronamespace
where upper(prosrc) like upper(‘%account_period%’) – 表字段名称
–and n.nspname = ‘public’
and p.proname not in (‘account_period’);

查询库中字段在各个表的信息:
SELECT
table_schema || ‘.’ || table_name AS “table”,
column_name,
data_type,
is_nullable,
column_default,character_maximum_length
FROM
information_schema.columns
where column_name in (‘classcode’,‘policyno’) and table_schema =‘public’
and character_maximum_length not in (‘200’,‘15’)
ORDER BY
table_schema,
table_name,
ordinal_position;

查询表占用空间:
SELECT nspname || ‘.’ || relname AS “relation”,
pg_size_pretty(pg_total_relation_size(C.oid)) AS “total_size”
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN (‘pg_catalog’, ‘information_schema’)
AND C.relkind <> ‘i’
AND nspname !~ ‘^pg_toast’
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 5;

查数据库占用空间:
SELECT
pg_database.datname AS “database_name”,
pg_size_pretty(pg_database_size (pg_database.datname)) AS size_in_mb
FROM
pg_database
ORDER BY
size_in_mb DESC;

清理表空间:
VACUUM (VERBOSE, FULL, FREEZE);
VACUUM (VERBOSE, FULL, FREEZE, TABLE_NAME);

pg_repack 扩展包需安装
pg_repack-- 打包整理表空间 – pg_repack table_name;

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

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

相关文章

Android U Settings 应用中 APN 菜单实现的代码逻辑

功能简介 MobileNetwork移动网络设置页面下有【接入点设置】(APN)。 问题:为什么Controller初始化找不到pref,然后报错。 Note:什么时候切换成Controller的呢?在Android T&U 上还没有更新成kt实现 ,但是已经有Controller的方案。 流程逻辑 1、界面“telephony_a…

群晖系统百度网盘套件卸载之后无法再次安装 ContainerManager项目无法删除

前言 最近重新组了个NAS&#xff0c;在套件迁移的时候遇到个头疼的问题。在用矿神的百度网盘在迁移的时候出错了&#xff0c;于是我自己删掉baiduapp得容器和镜像然后卸载套件。不知道中间出了啥问题&#xff0c;套件是已经卸载了&#xff0c;但是群晖ContainerManager套件中的…

Adobe Indesign 操作

页面设计 页面设置 版面&#xff1a;图文和空白部分的总和。 版心&#xff1a;规划在版面中排印文本和图片的部分。 开本&#xff1a;单个页面的宽度和高度。 如图所示&#xff0c;新建文件&#xff0c;自定义是210297毫米。这个数据是开本大小。 点击“边距和分栏”&#…

Vue3学习笔记<->创建第一个vue项目

新建一个项目目录 找一个盘新建一个目录&#xff0c;我这里在D盘创建一个vuedemo目录作为项目存放的目录。使用idea打开目录。   单击ieda底部的按钮“Terminal”&#xff0c;打开命令行窗口&#xff0c;如果命令行窗口当前目录不是“vuedemo”&#xff0c;就切换到“vuedem…

抖音营销新策略:MessageBox与HubSpot集成,引领企业获客新潮流

在全球数字化浪潮中&#xff0c;抖音以其独特的短视频形式、庞大的用户群体和高度互动性&#xff0c;成为了企业出海战略中不可或缺的一环。抖音营销不仅仅是简单的内容发布和互动&#xff0c;它更是一种深度策略和创新思维的体现。今天将深入探讨抖音营销的核心价值、应用场景…

了解和解决“vcruntime140_1.dll”相关问题,有效修复vcruntime140_1.dll错误弹窗问题

在Windows操作系统中&#xff0c;经常会遇到各种DLL&#xff08;动态链接库&#xff09;错误&#xff0c;它们是Windows应用运行不可或缺的一部分。其中&#xff0c;“vcruntime140_1.dll”是一个常见的DLL文件&#xff0c;这个文件与Microsoft Visual Studio C 运行时相关联。…

使用Python Selenium,动态网页不再是难题!

目录 1、直接执行JS代码 🌐 1.1 execute_script基础用法 1.2 带参数执行JS函数 1.3 获取执行结果 2、使用execute_async_script异步执行 🔄 2.1 适用场景分析 2.2 实现异步操作示例 2.3 错误处理与调试技巧 3、JS与页面元素交互 👤 3.1 修改DOM属性 3.2 触发事…

C# 23设计模式备忘

创建型模式&#xff1a;单例&#xff08;Singleton&#xff09;模式&#xff1a;某个类只能生成一个实例&#xff0c;该类提供了一个全局访问点供外部获取该实例&#xff0c;其拓展是有限多例模式。 原型&#xff08;Prototype&#xff09;模式&#xff1a;将一个对象作为原型&…

下载和使用SLUN数据集

1. 下载数据集 网址在https://opendatalab.com/OpenDataLab/lsun/tree/main/raw/scenes 下载bedroom_val_lmdb.zip 然后解压后会又两个文件&#xff0c;一个data.mdb&#xff0c;另一个lock.mdb。 2. 使用torchvison使用LSUN数据集 我把解压后的bedroom_val_lmdb放在/home/…

iOS 其他应用的文件如何在分享中使用自己的应用打开

废话少说 一、第一步&#xff1a;先配置好plist文件 右击info.plist如下图文件打开 根据自己需要配置支持的文件类型&#xff0c;也可使用property List中配置&#xff0c;一样的 其他的文件可是参考文档&#xff1a;System-Declared Uniform Type Identifiers 可复制的代码&am…

我只有一点Python基础,对学习WebGIS开发有帮助吗?

经常有人后台私信问&#xff0c;我只有一点Python基础&#xff0c;对学习GIS开发有帮助吗&#xff1f; 关于这个问题的答案是&#xff0c;当然有&#xff01;Python适用于WebGIS开发。WebGIS是地理信息系统&#xff08;GIS&#xff09;技术与Web技术的结合&#xff0c;而Pytho…

第1章 框架学习的基石与实战策略

第1章框架学习的基石与实战策略 1.1 框架学习的引路人&#xff1a;权威教程的重要性 在编程的世界里&#xff0c;掌握一个框架就像是装备了一套精良的工具&#xff0c;这不仅能显著提升开发速度&#xff0c;还能展现一个程序员的专业水平。对于那些刚刚踏入编程领域的初学者来…

使用sorted对字典排序

有时我们需要按照字典数据的键值对进行排序&#xff0c;这个时候就可以用到sorted函数。 import operator dic{"testA":3,"testC":1,"testB":4,"testD":2} dicnsorted(dic.items(),keyoperator.itemgetter(0)) print(dicn) 比如我们要…

MYSQL 四、mysql进阶 5(InnoDB数据存储结构)

一、数据库的存储结构&#xff1a;页 索引结构给我们提供了高效的索引方式&#xff0c;不过索引信息以及数据记录都是保存在文件上的&#xff0c;确切说时存储在页结构中&#xff0c;另一方面&#xff0c;索引是在存储引擎中实现的&#xff0c;Mysql服务器上的存储引擎负责对表…

World of Warcraft [CLASSIC] Level 70 Dire Maul (DM)

[月牙钥匙] [大型爆盐炸弹] World of Warcraft [CLASSIC] Level 70 厄运之槌&#xff0c;完美贡品&#xff0c;Dire Maul &#xff08;DM&#xff09; Foror‘s Compendium of Dragon Slaying 佛洛尔的屠龙技术纲要 因为不是兽王宝宝&#xff0c;而且开始位置放的不对&am…

mybatisplus自带的雪花算法(IdType.ASSIGN_ID)无法自动生成弊端缺点,以及改进方法

前言 今日在使用mybatisplus的雪花算法自动给id赋值时发现怎么都是null的情况&#xff0c;这尼玛测了半天&#xff0c;终于发现巨坑&#xff0c;废话不多说&#xff0c;直接上干货 IService.save 只有调用IService中的save方法才能正常生成id&#xff0c;像IService.saveBatc…

Vue移动端动态表单生成组件

FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持6个UI框架&#xff0c;适配移动端&#xff0c;并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件&#xff0c;再复杂的表单都可以轻松搞定。 帮助文档 | 源码下载…

Day35:2734. 执行字串操作后的字典序最小字符串

Leetcode 2734. 执行字串操作后的字典序最小字符串 给你一个仅由小写英文字母组成的字符串 s 。在一步操作中&#xff0c;你可以完成以下行为&#xff1a; 选择 s 的任一非空子字符串&#xff0c;可能是整个字符串&#xff0c;接着将字符串中的每一个字符替换为英文字母表中的前…

视频技术朝着8K超高清方向发展,安防监控领域将迎来怎样变化?

一、背景 随着科技的日新月异&#xff0c;视频技术已逐渐成为我们日常生活中不可或缺的一部分。从娱乐、教育到安全监控&#xff0c;视频技术无处不在&#xff0c;并以其独特的方式影响着我们的生活方式。本文将探讨视频技术的发展趋势&#xff0c;并重点关注其在监控领域的应…

【ai】李沐 动手深度学学v2 环境安装:anaconda3、pycharm、d2

cuda-toolkit cuda_12.5.0_windows_network.exe 官方课程网站 第二版资源下载release版本 pycharm版本 李沐 【动手学深度学习v2 PyTorch版】 课程笔记 CUDA 选择11, 实际下载 12.5.0