pg常用命令
在网上看到的PG命令,非常齐全,做个笔记平时自己用的时候方便查,也分享给大家。 1.createdb 数据库名称 产生数据库 2.dropdb数据库名称 删除数据库 3.CREATE USER 创建用户 4.drop User 删除用户 5.SELECT usename FROM pg_user; 查看系统用户信息 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 35.当前日期函数 current_date 36.返回第十条开始的5条记录 select*fromtabnamelimit5offset10; 37.为用户赋模式权限 Granton schema developerto UDataHouse 38.将字符转换为日期时间 selectto_timestamp('2010-10-21 12:31:22','YYYY-MM-DD hh24:mi:ss') 39.数据库备份 pg_dumpall-h 192.168.0.4 -p 5433 -U 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,2)); 44.删除表主键 alter table 表名 drop CONSTRAINT 主键名称; 45.创建表空间 create tablespace 空间名称 location '路径'; 46.查看表结构 d 表名 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.常看数据库.conf配置 show all 55.修改数据库postgresql.conf参数 修改postgresql.conf内容 pg_ctl reload 56.回滚日志强制恢复 pg_resetxlog -f 数据库文件路径 idvalue| remark ----------+-------- 33953557 | inser 57.当前日期属于一年中第几周 select EXTRACT(week from TIMESTAMP '2010-10-22'); 58.显示最近执行命令 s I. SQL 命令 ABORT — 退出当前事务 ALTER AGGREGATE — 修改一个聚集函数的定义 ALTER CONVERSION — 修改一个编码转换的定义 ALTER DATABASE — 修改一个数据库 ALTER DOMAIN — 改变一个域的定义 ALTER FUNCTION — 修改一个函数的定义 ALTER GROUP — 修改一个用户组 ALTER INDEX — 改变一个索引的定义 ALTER LANGUAGE — 修改一个过程语言的定义 ALTER OPERATOR — 改变一个操作符的定义 ALTER OPERATOR CLASS — 修改一个操作符表的定义 ALTER ROLE — 修改一个数据库角色 ALTER SCHEMA — 修改一个模式的定义 ALTER SEQUENCE — 更改一个序列生成器的定义 ALTER TABLE — 修改表的定义 ALTER TABLESPACE — 改变一个表空间的定义 ALTER TRIGGER — 改变一个触发器的定义 ALTER TYPE — 改变一个类型的定义 ALTER USER — 改变数据库用户帐号 ANALYZE — 收集与数据库有关的统计 BEGIN — 开始一个事务块 CHECKPOINT — 强制一个事务日志检查点 CLOSE — 关闭一个游标 CLUSTER — 根据一个索引对某个表集簇 COMMENT — 定义或者改变一个对象的评注 COMMIT — 提交当前事务 COMMIT PREPARED — 提交一个早先为两阶段提交准备好的事务 COPY — 在表和文件之间拷贝数据 CREATE AGGREGATE — 定义一个新的聚集函数 CREATE CAST — 定义一个用户定义的转换 CREATE CONSTRAINT TRIGGER — 定义一个新的约束触发器 CREATE CONVERSION — 定义一个新的的编码转换 CREATE DATABASE — 创建新数据库 CREATE DOMAIN — 定义一个新域 CREATE FUNCTION — 定义一个新函数 CREATE GROUP — 定义一个新的用户组 CREATE INDEX — 定义一个新索引 CREATE LANGUAGE — 定义一种新的过程语言 CREATE OPERATOR — 定义一个新的操作符 CREATE OPERATOR CLASS — 定义一个新的操作符表 CREATE ROLE — define a new database role CREATE RULE — 定义一个新的重写规则 CREATE SCHEMA — 定义一个新的模式 CREATE SEQUENCE — 创建一个新的序列发生器 CREATE TABLE — 定义一个新表 CREATE TABLE AS — 从一条查询的结果中定义一个新表 CREATE TABLESPACE — 定义一个新的表空间 CREATE TRIGGER — 定义一个新的触发器 CREATE TYPE — 定义一个新的数据类型 CREATE USER — 创建一个新的数据库用户帐户 CREATE VIEW — 定义一个视图 DEALLOCATE — 删除一个准备好的查询 DECLARE — 定义一个游标 DELETE — 删除一个表中的行 DROP AGGREGATE — 删除一个用户定义的聚集函数 DROP CAST — 删除一个用户定义的类型转换 DROP CONVERSION — 删除一个用户定义的编码转换 DROP DATABASE — 删除一个数据库 DROP DOMAIN — 删除一个用户定义的域 DROP FUNCTION — 删除一个函数 DROP GROUP — 删除一个用户组 DROP INDEX — 删除一个索引 DROP LANGUAGE — 删除一个过程语言 DROP OPERATOR — 删除一个操作符 DROP OPERATOR CLASS — 删除一个操作符表 DROP ROLE — 删除一个数据库角色 DROP RULE — 删除一个重写规则 DROP SCHEMA — 删除一个模式 DROP SEQUENCE — 删除一个序列 DROP TABLE — 删除一个表 DROP TABLESPACE — 删除一个表空间 DROP TRIGGER — 删除一个触发器定义 DROP TYPE — 删除一个用户定义数据类型 DROP USER — 删除一个数据库用户帐号 DROP VIEW — 删除一个视图 END — 提交当前的事务 EXECUTE — 执行一个准备好的查询 EXPLAIN — 显示语句执行规划 FETCH — 用游标从查询中抓取行 GRANT — 定义访问权限 INSERT — 在表中创建新行 LISTEN — 监听一个通知 LOAD — 装载或重载一个共享库文件 LOCK — 明确地锁定一个表 MOVE — 重定位一个游标 NOTIFY — 生成一个通知 PREPARE — 创建一个准备好的查询 PREPARE TRANSACTION — 为当前事务做两阶段提交的准备 REINDEX — 重建索引 RELEASE SAVEPOINT — 删除一个前面定义的保存点 RESET — 把一个运行时参数值恢复为缺省值 REVOKE — 删除访问权限 ROLLBACK — 退出当前事务 ROLLBACK PREPARED — 取消一个早先为两阶段提交准备好的事务 ROLLBACK TO — 回滚到一个保存点 SAVEPOINT — 在当前事务里定义一个新的保存点 SELECT — 从表或视图中取出若干行 SELECT INTO — 从一个查询的结果中定义一个新表 SET — 改变运行时参数 SET CONSTRAINTS — 设置当前事务的约束检查模式 SET ROLE — set the current user identifier of the current session SET SESSION AUTHORIZATION — 为当前会话设置会话用户标识符和当前用户标识符 SET TRANSACTION — 设置当前事务的特性 SHOW — 显示运行时参数的数值 START TRANSACTION — 开始一个事务块 TRUNCATE — 清空一个或者一堆表 UNLISTEN — 停止监听通知信息 UPDATE — 更新一个表中的行 VACUUM — 垃圾收集以及可选地分析一个数据库 II. 客户端应用 clusterdb — 对一个PostgreSQL数据库进行建簇 createdb — 创建一个新的 PostgreSQL 数据库 createlang — 定义一种新的 PostgreSQL 过程语言 createuser — 定义一个新的 PostgreSQL 用户帐户 dropdb — 删除一个现有 PostgreSQL 数据库 droplang — 删除一种 PostgreSQL 过程语言 dropuser — 删除一个 PostgreSQL 用户帐户 ecpg — 嵌入的 SQL C 预处理器 pg_config — 检索已安装版本的 PostgreSQL 的信息 pg_dump — 将一个PostgreSQL数据库抽出到一个脚本文件或者其它归档文件中 pg_dumpall — 抽出一个 PostgreSQL 数据库集群到脚本文件中 pg_restore — 从一个由 pg_dump 创建的备份文件中恢复 PostgreSQL 数据库 psql — PostgreSQL 交互终端 vacuumdb — 收集垃圾并且分析一个PostgreSQL 数据库 III. PostgreSQL 服务器应用 initdb — 创建一个新的 PostgreSQL数据库集群 ipcclean — 从失效的PostgreSQL服务器中删除共享内存和信号灯 pg_controldata — 显示一个 PostgreSQL 集群的控制信息 pg_ctl — 启动,停止和重起 PostgreSQL pg_resetxlog — 重置一个 PostgreSQL 数据库集群的预写日志以及其它控制内容 postgres — 以单用户模式运行一个 PostgreSQL服务器 postmaster — PostgreSQL多用户数据库服务器 59.导出数据库角色 /data/pgsql/bin/pg_dumpall -p 5432 -U postgres -r >/tmp/postgres_8.3_role.bak 60.修改sequence所有者 grant all on sequence名称 to 所有者; 61.修改sequence初始值 AlterSEQUENCEsequencenameSTARTvalue; 62.查看sequence当前值 SELECTcurrval('sequencename'); 63.查看sequence下一值 SELECT nextval('sequencename'); 64.设置sequence当前值 alter SEQUENCEsequencenamerestart withstartvalue; SELECT nextval('sequencename'); 65.查询表结构 SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a .atttypmod AS lengthvar,a.attnotnull AS notnull FROM pg_class c,pg_attribute a,pg_type t WHERE c.relname=表名称anda.attnum > 0anda.attrelid = c.oid and a .atttypid = t.oid 66.将查询结果直接输出到文件 在psql中 o 文件路径 select datname,rolname from pg_databasea left outer join pg_roles b on a.datdba=b.oid ; o 67.查询数据库所有则 select datname,rolname from pg_databasea left outer join pg_roles b on a.datdba=b.oid ; 68.结束正在执行的事务 SELECT* from pg_stat_activity; select pg_cancel_backend('procpid'); 60.结束session SELECT* from pg_stat_activity; selectpg_terminate_backend('procpid'); 61.postgresql取消转义字符功能 将postgresql.conf文件中的standard_conforming_strings设置为on 62.查询正在执行SQL SELECT procpid,start,now() - start AS lap,current_query FROM (SELECT backendid,pg_stat_get_backend_pid(S.backendid) AS procpid,pg_stat_get_backend_activity_start(S.backendid) AS start,pg_stat_get_backend_activity(S.backendid) AS current_query FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS S ) AS S WHERE current_query <> '' ORDER BY lap DESC; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |