pgsql 常用查询汇总(查询数据表字段) | 您所在的位置:网站首页 › 查询表内容 › pgsql 常用查询汇总(查询数据表字段) |
pgsql 查询表中字段信息
1.查询数据库表中字段(1)查询数据库表中字段及类型 (这种方式没有字段备注信息)(2)查询字段类型及备注(这种表中没有数据查不出来)(3)查询字段类型及备注
2.常用空间查询语句积累(1)判断点是否在要素内(2)数据表转为geojson(3)获取要素中心点
3. 将数据表转为json4.查看数据库数据占用大小(1)查询数据占用磁盘空间(2)查询数据库单表的大小
5.查询语句常见问题5.1 查询条件 not like '%%' 查询不出数据为null的数据。5.2 查询条件 not in (null) 查询不出数据。5.3 查询条件 !='' 查询不出null的数据。
6.锁表处理7.查询正在执行的sql8.清理pg WAL 归档文件 pg_archivecleanup9.强制修改数据库名
1.查询数据库表中字段
(1)查询数据库表中字段及类型 (这种方式没有字段备注信息)
SELECT table_catalog,table_schema,column_name,ordinal_position,is_nullable,data_type,character_maximum_length,numeric_precision,udt_name
FROM information_schema.columns As c
WHERE table_name = '表名'
查询结果: 查询结果 对(2)的基础上,解决了表中无数据无法查出字段的问题 SELECT A.attname AS field_name,-- 字段名 t.typname as typename, --字段类型 NULLIF(information_schema._pg_char_max_length(A.atttypid, A.atttypmod), -1) AS maxlen, -- 字符串最大长度 col_description ( A.attrelid, A.attnum ) AS COMMENT, -- 字段备注 format_type ( A.atttypid, A.atttypmod ) AS TYPE, A.attnotnull AS NOTNULL , -- 是否非空 A.atthasdef , --是否存在默认值 A.atttypmod FROM pg_class AS C, pg_attribute AS A , pg_type as T WHERE C.relname = 'aaa' AND A.attrelid = C.oid AND A.atttypid= T.oid AND A.attnum > 0 AND NOT A.attisdropped AND NOT A.attisdropped 过滤掉已删除的字段查询结果: geoc_data为数据库的名 SELECT pg_size_pretty( pg_database_size('geoc_data') );查询结果: data_11001000031为表名 SELECT pg_size_pretty( pg_total_relation_size('data_11001000031') );查询结果: 如果想查出所有不为某个值的条件,需要考虑null的情况: eg: and (field!=‘1’ or field is null) 6.锁表处理 select oid from pg_class where relname='xzq_statistic' select pid from pg_locks where relation='oid' -- 上个查询出来的oid 如果存在锁表,能查询出来pid select pg_cancel_backend(pid) -- 上个查询出来的pid 7.查询正在执行的sql SELECT pid, datname, usename, client_addr, application_name, STATE, backend_start, xact_start, xact_stay, query_start, query_stay, REPLACE ( query, chr( 10 ), ' ' ) AS query FROM ( SELECT pid, pgsa.datname AS datname, pgsa.usename AS usename, pgsa.client_addr client_addr, pgsa.application_name AS application_name, pgsa.STATE AS STATE, pgsa.backend_start AS backend_start, pgsa.xact_start AS xact_start, EXTRACT ( epoch FROM ( now() - pgsa.xact_start )) AS xact_stay, pgsa.query_start AS query_start, EXTRACT ( epoch FROM ( now() - pgsa.query_start )) AS query_stay, pgsa.query AS query FROM pg_stat_activity AS pgsa WHERE pgsa.STATE != 'idle' AND pgsa.STATE != 'idle in transaction' AND pgsa.STATE != 'idle in transaction (aborted)' ) idleconnections ORDER BY query_stay DESC LIMIT 50; 8.清理pg WAL 归档文件 pg_archivecleanup 查看上次检查点的 pg_controldata $PGDATA 查询到 Latest checkpoint’s REDO WAL file 0000000100000391000000B9清理归档 pg_archivecleanup -d $PGDATA/pg_wal 0000000100000391000000B9 9.强制修改数据库名 -- 首先断开正在的连接(可多执行几次) SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='db_name' AND pidpg_backend_pid(); ALTER DATABASE db_name RENAME TO db_name_new; |
CopyRight 2018-2019 实验室设备网 版权所有 |