网站seo置顶 乐云践新专家,家政公司简介模板,好的企业管理网站,抖音小程序变现教程Postgresql从小白到高手 九:pgsql 复杂查询及内部表高级查询 文章目录 Postgresql从小白到高手 九:pgsql 复杂查询及内部表高级查询一、多表查询二、pgsql内部表1.内部表2.内部表查询应用 一、多表查询
内联 #xff1a;inner join on 简写 join on 结果集只有符合 筛选条件…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;