--查看表空间 

 select * from pg_tablespace; 


 --查看语言 

 select * from pg_language; 


 --查看角色用户 

 select * from pg_user; 

 select * from pg_shadow; 

 select * from pg_roles; 


 --查看会话进程 

 select * from pg_stat_activity; 


 --查看表 

 SELECT * FROM pg_tables where schemaname = 'public'; 


 --查看表字段 

 select * from information_schema.columns where table_schema = 'public' and table_name = 'pf_vip_org'; 


 --查看视图 

 select * from pg_views where schemaname = 'public'; 

 select * from information_schema.views where table_schema = 'public'; 


 --查看触发器 

 select * from information_schema.triggers; 


 --查看序列 

 select * from information_schema.sequences where sequence_schema = 'public'; 


  --查看约束 

 select * from pg_constraint where contype = 'p'   

 --u unique,p primary,f foreign,c check,t trigger,x exclusion 


 select a.relname as table_name,b.conname as constraint_name,b.contype as constraint_type from pg_class a,pg_constraint b where a.oid = b.conrelid and a.relname = 'cc'; 


 --查看索引 

 select * from pg_index ; 


 --查看表上存在哪些索引以及大小 

 select relname,n.amname as index_type from pg_class m,pg_am n where m.relam = n.oid and m.oid in ( 

 select b.indexrelid from pg_class a,pg_index b where a.oid = b.indrelid and a.relname = 'cc'); 


 SELECT c.relname,c2.relname, c2.relpages*8 as size_kb 

 FROM pg_class c, pg_class c2, pg_index i 

 WHERE c.relname = 'cc' AND 

 c.oid = i.indrelid AND 

 c2.oid = i.indexrelid 

 ORDER BY c2.relname; 


 --查看索引定义 

 select b.indexrelid from pg_class a,pg_index b where a.oid = b.indrelid and a.relname = 'cc'; 

 select pg_get_indexdef(b.indexrelid); 


 --查看过程函数定义 

 select oid,* from pg_proc where proname = 'insert_platform_action_exist'; --oid = 24610 

 select * from pg_get_functiondef(24610); 


 --查看表大小(不含索引等信息) 

 select pg_relation_size('cc');                         --368640 byte 

 select pg_size_pretty(pg_relation_size('cc'))   --360 kB 


 --查看DB大小 

 select pg_size_pretty(pg_database_size('smiletao'));   --12M 


 --查看服务器DB运行状态 

 [postgres@eyar ~]$ pg_ctl status -D $PGDATA 

 pg_ctl: server is running (PID: 2373) 

 /home/postgres/bin/postgres "-D" "/database/pgdata" 


 --查看每个DB的使用情况(读,写,缓存,更新,事务等) 

 select * from pg_stat_database 


 --查看索引的使用情况 

 select * from pg_stat_user_indexes; 


 --查看表所对应的数据文件路径与大小 

 SELECT pg_relation_filepath(oid), relpages FROM pg_class WHERE relname = 'empsalary'; 


 --查看索引与相关字段及大小 

  SELECT n.nspname AS schema_name, 

         r.rolname as table_owner, 

        bc.relname AS table_name, 

        ic.relname AS index_name, 

        a.attname  AS column_name, 

        bc.relpages*8 as index_size_kb      

   FROM pg_namespace n, 

        pg_class bc,             -- base class 

        pg_class ic,             -- index class 

        pg_index i, 

        pg_attribute a,           -- att in base 

        pg_roles r 

   WHERE bc.relnamespace = n.oid 

      and i.indrelid = bc.oid 

      and i.indexrelid = ic.oid 

      and bc.relowner = r.oid 

      and i.indkey[0] = a.attnum 

      and i.indnatts = 1 

      and a.attrelid = bc.oid 

      and n.nspname = 'public' 

      and bc.relname = 'cc' 

   ORDER BY schema_name, table_name, index_name, attname; 


 --查看PG锁 

 select * from pg_locks; 


 备注:relpages*8 是实际所占磁盘大小 


 --查看表空间大小 

 select pg_tablespace_size('pg_default'); 


 --查看序列与表的对应关系 

   WITH fq_objects AS (SELECT c.oid,c.relname AS fqname , 

                            c.relkind, c.relname AS relation 

                     FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace ), 


      sequences AS (SELECT oid,fqname FROM fq_objects WHERE relkind = 'S'), 

      tables    AS (SELECT oid, fqname FROM fq_objects WHERE relkind = 'r' ) 

          SELECT 

        s.fqname AS sequence, 

        '->' as depends, 

        t.fqname AS table 

       FROM 

        pg_depend d JOIN sequences s ON s.oid = d.objid 

                  JOIN tables t ON t.oid = d.refobjid 

           WHERE 

        d.deptype = 'a' and t.fqname = 'cc'; 

         

 1.createdb 数据库名称 

 产生数据库 

 2.dropdb 数据库名称 

 删除数据库 


 3.CREATE USER 用户名称 

 创建用户 

 4.drop User 用户名称 

 删除用户 


 5.SELECT usename FROM pg_user; 

 查看系统用户信息 

 \du 


 7.SELECT version(); 

 查看版本信息 


 8.psql 数据库名 

 打开psql交互工具 


 9.mydb=> \i basics.sql 

 \i 命令从指定的文件中读取命令。 


 10.COPY weather FROM '/home/user/weather.txt'; 

 批量将文本文件中内容导入到wether表 


 11.SHOW search_path; 

 显示搜索路径 


 12.创建用户 

 CREATE USER 用户名 WITH PASSWORD '密码' 


 13.创建模式 

 CREATE SCHEMA myschema; 


 14.删除模式 

 DROP SCHEMA myschema; 


 15.查看搜索模式 

 SHOW search_path; 


 16.设置搜索模式 

 SET search_path TO myschema,public; 


 17.创建表空间 

 create tablespace 表空间名称 location '文件路径'; 


 18.显示默认表空间 

 show default_tablespace; 


 19.设置默认表空间 

 set default_tablespace=表空间名称; 


 20.指定用户登录 

 psql MTPS -u 


 21.显示当前系统时间、 

 now() 


 22.配置plpgsql语言 

 CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler 


 23.删除规则 


 DROP RULE name ON relation [ CASCADE | RESTRICT ] 

 ? 

 输入 

 name 

 要删除的现存的规则. 


 relation 

 该规则应用的关系名字(可以有大纲修饰). 


 CASCADE 

 自动删除依赖于此规则的对象。 


 RESTRICT 

 如果有任何依赖对象,则拒绝删除此规则。这个是缺省。 


 24.日期格式函数 

 select 'P'||to_char(current_date,'YYYYMMDD')||'01' 


 25.产生组 

 Create Group 组名称 


 26.修改用户归属组 

 Alter Group 组名称 add user 用户名称 


 26.为组赋值权限 

 ? 

 grant 操作 On 表名称 to group 组名称: 


 27.创建角色 

 Create Role 角色名称 


 28.删除角色 

 Drop Role 角色名称 


 29.获得当前postgresql版本 

 SELECT version(); 


 30.在linux中执行计划任务 

 通过crontab执行 

 su root -c "psql -p 5433 -U developer MTPS -c'select test()'" 

 developer用户的密码存储于环境变量PGPASSWORD中。 


 31.查询表是否存在 

 select * from pg_statio_user_tables where relname='你的表名'; 


 32.为用户复制SCHEMA权限 

 grant all on SCHEMA 作用域名称 to 用户名称 


 33.整个数据库导出 

 pg_dumpall -D -p 端口号 -h 服务器IP -U postgres(用户名) > /home/xiaop/all.bak 


 34.数据库备份恢复 

 psql -h 192.168.0.48 -p 5433 -U postgres </home/postgres 


 35.当前日期函数 

 current_date 


 36.返回第十条开始的5条记录 

 select * from tabname limit 5 offset 10; 


 37.为用户赋模式权限 

 Grant on schema developer to UDataHouse 


 38.将字符转换为日期时间 

 select to_timestamp('2010-10-21 12:31:22', 'YYYY-MM-DD hh24:mi:ss') 


 39.数据库备份 

 pg_dumpall -h 192.168.0.4 -p 5433 -U postgres >/DataBack/Postgresql2010012201.dmp 

 如8.1以后多次输入密码 


 40.\dn 

 查看schema 


 41.删除schema 

 drop schema _clustertest cascade; 


 42.导出表 


 ./pg_dump -p 端口号 -U 用户 -t 表名称 -f 备份文件位置 数据库 ; 


 43.字符串操作函数 

 select distinct(split_part(ip,'.',1)||'.'||split_part(ip,'.',2)) from t_t_userip order by (split_part(ip,'.',1)||'.'||split_part(ip,'.',2)); 


 44.删除表主键 

 alter table 表名 drop CONSTRAINT 主键名称; 


 45.创建表空间 

 create tablespace 空间名称 location '路径' 


 46.查看表结构 

 select * from information_schema.columns? 


 ? 



 ./postgres -D /usr/local/src/data 

 or 

 ./pg_ctl -D /usr/local/src/data -l logfile start 



 47.查看数据库大小 

 SELECT pg_size_pretty(pg_database_size('MTPS')) As fulldbsize; 


 48.查看数据库表大小 

 SELECT pg_size_pretty(pg_total_relation_size('developer.t_L_collectfile')) As fulltblsize, 

 pg_size_pretty(pg_relation_size('developer.t_L_collectfile')) As justthetblsize 


 49.设置执行超过指定秒数的sql语句输出到日志 

 log_min_duration_statement = 3 


 50.超过一定秒数sql自动执行执行计划 

 shared_preload_libraries = 'auto_explain' 

 custom_variable_classes = 'auto_explain' 

 auto_explain.log_min_duration = 4s 


 51.数据库备份 

 ?select pg_start_backup('backup baseline'); 

 ?select pg_stop_backup(); 


 ?recovery.conf 

 ?restore_command='cp /opt/buxlog/%f %p' 


 52.重建索引 

 ?REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ] 

 ?INDEX 

 ?重新建立声明了的索引。 


 ?TABLE 

 ?重新建立声明的表的所有索引。如果表有个从属的"TOAST"表,那么这个表也会重新索引。 


 ?DATABASE 

 ?重建当前数据库里的所有索引。 除非在独立运行模式下,会忽略在共享系统表上的索引(见下文)。 


 ?SYSTEM 

 ?在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 另外,除了是在单主机模式下,共享的系统表也会被忽略(见下文)。 


 ?name 

 ?需要重建索引的索引,表或者数据库的名称。 表和索引名可以有模式修饰。 目前,REINDEX DATABASE 和 REINDEX SYSTEM 只能重建当前数据库的索引, 因此其参数必须匹配当前数据库的名字。 


 ?FORCE 

 ?这是一个废弃的选项,如果声明,会被忽略。 



 54.数据字典查看表结构 

 SELECT column_name, data_type from information_schema.columns where table_name = 'blog_sina_content_train'; 


 ? 



 52.查看被锁定表 

 SELECT pg_class.relname AS table, pg_database.datname AS database, pid, mode, granted 

 FROM pg_locks, pg_class, pg_database 

 WHERE pg_locks.relation = pg_class.oid 

 AND pg_locks.database = pg_database.oid; 


 53.查看客户端连接情况 

 SELECT client_addr ,client_port,waiting,query_start,current_query FROM pg_stat_activity; 


 54.判断字符是否全部为数字 

 select * from t_c_username where length(username)=11 and substr(username,1,11) SIMILAR TO '[0-9]+'; 



 55.查看客户端编码 

 show client_encoding;