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

news2024/11/16 4:31:52

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.coloradmin.cn/o/1869577.html

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

相关文章

Github 2024-06-21 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-06-21统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3Python项目3Java项目2非开发语言项目2JavaScript项目1Rust项目1Dart项目1HTML项目1Vue项目1C++项目1TensorFlow: 机器学习的开源…

用Python制作一个简单的计算器(加减乘除)

简易计算器 写在前面 小编用python实现了一个简单的计算器&#xff0c;一起来看看吧~ 需要环境&#xff1a; pycharm python 一、需求分析 1.1 功能分析 使用Python的Tkinter界面设计实现一个简单的计算器&#xff0c;主要功能按钮包括数字键、四则运算符、等于号和清除…

fpga bitstream userid

fpga version register # xdc 文件 set_property BITSTREAM.CONFIG.USERID "0xDEADC0DE" [current_design] set_property BITSTREAM.CONFIG.USR_ACCESS 0x66669999 [current_design]ug908 在bit下载之后的property可以看到 &#xff0c;GUI里面Tools → Edit Devic…

Centos安装redis(附:图形化管理工具)

第一步&#xff1a;下载redis wget http://download.redis.io/releases/redis-6.2.7.tar.gz 第二步&#xff1a;解压 tar zxvf redis-6.2.7.tar.gz 第三步&#xff1a;安装依赖环境 yum -y install gcc-c第四步&#xff1a;安装依赖环境 make install第五步&#xff1a;修…

一种PCB外壳设计方法的尝试

一个异性PCB的板框&#xff0c;外壳&#xff0c;PCB设计&#xff1a; 正常情况下先由机械工程师用CAD设计出板框导出DXF文件&#xff0c;之后基于此DXF文件作为板框进行PCB设计和外壳设计&#xff0c;但对硬件工程师来讲有时候直接在PCB软件上进行简单的板框设计显得更方便&am…

揭秘!这款电路设计工具让学校师生都爱不释手——SmartEDA的魔力何在?

随着科技的飞速发展&#xff0c;电子设计已成为学校师生们不可或缺的技能之一。而在众多的电路设计工具中&#xff0c;有一款名为SmartEDA的工具&#xff0c;凭借其强大的功能和友好的用户体验&#xff0c;迅速赢得了广大师生的青睐。今天&#xff0c;就让我们一起探索SmartEDA…

Linux 交叉编译工具链格式 sqlite3编译示例

1、交叉编译工具链 1.1 定义 交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发工具集&#xff0c;它允许开发者在一个平台上&#xff08;例如高性能的PC或服务器&#xff09;编译生成另一个平台&#xff08;例如嵌入式系统或不同的操作系统和硬件架构&#xff09…

【教程】DPW 325T FPGA板卡程序下载与固化全攻略

到底什么是固化&#xff1f;&#xff1f;&#xff1f; 在开发板领域&#xff0c;"固化"通常指的是将软件或操作系统的镜像文件烧录&#xff08;Flash&#xff09;到开发板的存储介质上&#xff0c;使其成为开发板启动时加载的系统。这个过程可以确保开发板在启动时能…

2024年8月 PMP认证考试 7月9日正式开始报考

尊敬的各位考生&#xff1a; 经PMI和中国国际人才交流基金会研究决定&#xff0c;中国大陆地区2024年第三期PMI认证考试定于8月31日举办。 7月9日正式开始中文报考&#xff0c;在此之前需要完成英文资料注册&#xff0c;如果您想参加8月考试&#xff0c;还有最后10天报名即截止…

鸿蒙智慧监控解决方案:由Al视觉盒、网络摄像头、管理后台、手机端、NVR等组成

方案架构 整体技术架构由Al视觉盒、网络摄像头、管理后台、手机端、NVR等组成&#xff0c;提供从前端智能监控到后端数据处理的完整闭环。 方案价值 01/节约人力成本 ①AI算法对监控内容进行实时的智能检测&#xff0c;准确率高&#xff0c;有效减少错漏&#xff0c;无需多个…

免费可视化工具为何成为数据分析新宠?

免费可视化工具为何越来越受欢迎&#xff1f;在当今数据驱动的时代&#xff0c;数据分析和展示已成为各行各业不可或缺的核心能力。然而&#xff0c;传统的数据处理和可视化工具往往价格昂贵&#xff0c;且使用门槛较高&#xff0c;这为许多中小企业和个人用户带来了不小的困扰…

java 简单零钱通

目标 面向过程版 代码 package new_pluse;import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;public class change_common{public static void main(String arg[]){//定义相关变量Scanner scanner new Scanner(System.in);String key&qu…

智能巡检平台建设,减轻一线巡检员负担

智能巡检系统平台的建设&#xff0c;通过技术手段减轻一线巡检员的工作负担&#xff0c;提高巡检工作的效率和质量。以下是该平台建设的几个关键点和效果归纳&#xff1a; 一、自动化规划与分配 智能巡检系统能够自动规划巡检路线、分配巡检任务&#xff0c;从而减少了巡检员在…

@城规人快来抄作业!转GIS开发月薪12000+

从性价比极低的时薪&#xff0c;到相对稳定的月薪过万&#xff0c;我做对了哪些事情&#xff1f; 今天分享的是城乡规划专业的L拿到GIS开发高薪offer的故事。 初识新中地 该同学是城乡规划专业本科&#xff0c;下面称他为L同学。 L同学是今年夏天在网络上了解了GIS开发和新…

小程序发布必须进行软件测试吗?测试内容有哪些?

在如今移动互联网时代&#xff0c;小程序已成为许多企业广泛采用的一种营销手段&#xff0c;然而&#xff0c;发布小程序之前进行充分的软件测试是至关重要的&#xff0c;因为它不仅可以确保小程序的质量&#xff0c;还可以避免潜在的风险和损失。 在进行小程序发布前进行软件…

ELK日志集成

https://www.bilibili.com/video/BV1x94y1674x/?buvidXY705117E90F73A790429C9CFBD5F70F22168&vd_source939ea718db29535a3847d861e5fe37ef

SKYDROID-C12—— 让美景近在眼前

C12是一款小型高清双光吊舱&#xff0c;使用新一代影像芯片&#xff0c;搭配高清无畸变摄像头&#xff0c;有效像素达到500万&#xff0c;拥有强悍的2K视频录制和拍照能力&#xff0c;支持数字变倍&#xff0c;随时随地捕捉清晰的图像&#xff0c;让远处美景近在眼前。

UI(三)布局

文章目录 1、Colum和Row——垂直方向容器和水平方向容器2、ColumnSplit和RowSplit——子组件之间插入一条分割线3、Flex——弹性布局子组件的容器4、Grid和GridItem——网格容器和网格容器单元格5、GridRow和GridCol——栅格容器组件和栅格子组件6、List、ListItem、ListItemGr…

“一站式企业服务平台”全景解析

在当今市场竞争日益激烈、商业环境瞬息万变的大经济环境下&#xff0c;企业在经营过程中常常面临政策不知道摸不清、资源获取困难、融资渠道狭窄、市场开拓不畅、政务办理繁琐等诸多问题&#xff0c;为了解决这些问题&#xff0c;帮扶企业发展&#xff0c;同时优化区域营商环境…

JavaWeb系列三: JavaScript学习 下

文章目录 js数组定义方式数组遍历 js函数函数入门函数使用方式使用方式一使用方式二 函数注意事项函数练习题 定义对象使用object定义使用{}定义 事件onload事件onclick事件失去焦点事件内容发生改变事件表单提交事件静态注册动态注册表单作业 dom对象文档对象模型document对象…