数据库

 首页 > 数据库 > postgresql > PostgreSQL数据库相关命令的使用

PostgreSQL数据库相关命令的使用

分享到:
【字体:
导读:
         摘要:PostgreSQL在后台运行的是一个叫做postmaster的程序,缺省的TCP/IP端口为5432。在启动psql之前,当然要求psql在你的PATH路径上,所以我们需要指定:$exportPATH$PATH:/usr/local/pgsql/bin然后我们就可以进入了:[user@hostuser]$psql...

PostgreSQL数据库相关命令的使用

PostgreSQL 在后台运行的是一个叫做 postmaster 的程序,缺省的 TCP/IP 端口为 5432。

在启动 psql 之前,当然要求 psql 在你的 PATH 路径上,所以我们需要指定:

$ export PATH=$PATH:/usr/local/pgsql/bin

然后我们就可以进入了:

[user@host user]$ psql testdb
Welcome to psql, the PostgreSQL interactive terminal.

Type: copyright for distribution terms
h for help with SQL commands
? for help on internal slash commands
g or terminate with semicolon to execute query
q to quit

testdb=#

所有的 psql 相关的命令都必须以 开头,如果不知道某个命令的用法,可以用 ? 来找到帮助。

因此,综合上面的说明,我们可以知道:
dt 命令是显示表
di 显示索引
ds 显示序列
dv 显示视图
dp 显示权限
dS 显示系统表
dl 显示 lobjects
d tablename 显示表的结构/索引/序列
d indexname 显示索引的详细信息

执行过的查询语句可以用 s i 分别存盘和调入。

psql 中 SQL 语句的输入和 MySQL 类似,一直到分号才结束,但是不同的是,在分号结束前的换行,在 MySQL 里面是 > 符号,而在 psql 里是 -# 符号。

列出当前用户(跟系统帐号同名的数据库帐号)
$ psql -l
可以使用 -U 参数指定帐号
$ psql -l -U postgres

使用postgres帐号登录数据库(不指定数据库时,访问postgres这个库):
$ psql -U postgres [-d DBName]
查看用户能访问的数据库:
postgres=# l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
 test      | postgres | UTF8
 test1     | postgres | UTF8
(5 rows)
可以用 c DBName 来连接和切换数据库
test1=# c test1
查看表:
test1=# d
                    List of relations
 Schema |           Name           |   Type   |  Owner  
--------+--------------------------+----------+----------
 public | acol_statusstring        | table    | postgres
 public | acol_sys_displst_setting | table    | postgres
 public | hibernate_sequence       | sequence | postgres
 public | jbpm_action              | table    | postgres
 public | jbpm_bytearray           | table    | postgres
查看某一个表的结构:
test1=# d jbpm_action
                  Table "public.jbpm_action"
         Column         |          Type           | Modifiers
------------------------+-------------------------+-----------
 id_                    | bigint                  | not null
 class                  | character(1)            | not null
 name_                  | character varying(255)  |
 ispropagationallowed_  | boolean                 |
 actionexpression_      | character varying(255)  |
 isasync_               | boolean                 |
 referencedaction_      | bigint                  |
 actiondelegation_      | bigint                  |
 event_                 | bigint                  |
 processdefinition_     | bigint                  |
 timername_             | character varying(255)  |
 duedate_               | character varying(255)  |
 repeat_                | character varying(255)  |
 transitionname_        | character varying(255)  |
 timeraction_           | bigint                  |
 expression_            | character varying(4000) |
 eventindex_            | integer                 |
 exceptionhandler_      | bigint                  |
 exceptionhandlerindex_ | integer                 |
Indexes:
    "jbpm_action_pkey" PRIMARY KEY, btree (id_)
    "idx_action_actndl" btree (actiondelegation_)
    "idx_action_event" btree (event_)
    "idx_action_procdf" btree (processdefinition_)
Foreign-key constraints:
    "fk_action_actndel" FOREIGN KEY (actiondelegation_) REFERENCES jbpm_delegation(id_)
    "fk_action_event" FOREIGN KEY (event_) REFERENCES jbpm_event(id_)
    "fk_action_expthdl" FOREIGN KEY (exceptionhandler_) REFERENCES jbpm_exceptionhandler(id_)
    "fk_action_procdef" FOREIGN KEY (processdefinition_) REFERENCES jbpm_processdefinition(id_)
    "fk_action_refact" FOREIGN KEY (referencedaction_) REFERENCES jbpm_action(id_)
    "fk_crtetimeract_ta" FOREIGN KEY (timeraction_) REFERENCES jbpm_action(id_)

执行查询SQL:
test1=# select * from jbpm_action limit 1;

查看当前执行的查询(类似mysql的show processlist):
test1=# SELECT pg_stat_get_backend_pid(s.backendid) AS procpid,pg_stat_get_backend_activity(s.backendid) AS current_query FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s;

查看当前用户:
test1=# du
                               List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
 postgres  | yes       | yes         | yes       | no limit    |
(1 row)

 a             在非对齐和对齐的输出模式之间切换
 c[onnect] [数据库名|- [用户名]]
                联接到新的数据库 (当前为 "rftdatabase")
 C [字串]      设置表标题, 如果参数空则取消标题
 cd [目录名]   改变当前的工作目录
 copy ...      执行 SQL COPY, 数据流指向客户端主机
 copyright     显示 PostgreSQL 用法和发布信息
 d [名字]      描述表, 索引, 序列, 或者视图
                列出表/索引/序列/视图/系统表
 d{t|i|s|v|S} [模式]    (加 "+" 获取更多信息)
                列出表/索引/序列/视图/系统表
 da [模式]     列出聚集函数
 dd [模式]     显示目标的注释
 dD [模式]     列出域
 df [模式]     列出函数 (加 "+" 获取更多的信息)
 do [名字]     列出操作符
 dl            列出大对象, 和 lo_list 一样
 dp [模式]     列出表访问权限
 dT [模式]     列出数据类型 (加 "+" 获取更多的信息)
 du [模式]     列出用户
 e [文件名]    用一个外部编辑器编辑当前查询缓冲区或者文件
 echo [字串]   向标准输出写出文本
 encoding [编码]      设置客户端编码
 f [字串]      设置域分隔符
 g 文件名      向服务器发送 SQL 命令 (并且把结果写到文件或者 |管道)
 h [名字]      SQL 命令的语法帮助, 用 * 可以看所有命令的帮助
 H             在 HTML 输出模式之间切换 (当前是 关闭)
 i 文件名      执行来自文件的命令
 l             列出所有数据库
 lo_export, lo_import, lo_list, lo_unlink
                大对象操作
 o 文件名      向文件或者 |管道 发送所有查询结果
 p             显示当前查询缓冲区的内容
 pset 名字 [值]     设置表的输出选项 (NAME := {foramt|border|expaned|
                (名字 := {foramt|border|expanded|fieldsep|null|recordsep|
                tuples_only|title|tableattr|pager})
 q             退出 psql
 qecho [字串]    向查询输出流写出文本 (见 o)
 r             重置 (清理) 查询缓冲区
 s [文件名]    打印历史或者将其保存到文件
 set [名字 [值]]     设置内部变量, 如果没有参数就列出所有
 t             只显示行 (当前是 关闭)
 T [字串]      设置 HTML <表>标记属性, 如果没有参数就取消设置
 timing        查询计时开关切换 (目前是 关闭)
 unset 名字    取消(删除)内部变量
 w [文件名]    将当前查询缓冲区写出到文件
 x             在扩展输出之间切换 (目前是 关闭)
 z [模式]      列出表访问权限 (和 dp 一样)
 ! [命令]      在 shell 里执行命令或者开始一个交互的 shell

copy host_performance from '/home/maoquan/loaddata/t-15-youxiangyunyingbu' with DELIMITER ','

PostgreSQL数据库相关命令的使用
分享到:
postgresql系统表解释说明
postgresql系统表解释说明 系统表是关系型数据库存放结构元数据的地方,比如表和字段以及内部登记信息等。PostgreSQL 的系统表就是普通表。你可以删除然后重建这些表、增加列、插入和更新数值,然后彻底把系统搞垮。不应该手工修改系统表,通常总有 SQL 命令可以做这些事情。比如,CREATE DATABASE 向 pg_database 表插入...
Windows系统中postgreSQL数据库命令的使...
Windows系统中postgreSQL数据库命令的使用方法 本文主要是在windows系统下用psql进行的。 注意:如果以缺省的用户postgres进入系统,为安全考虑,是不能执行某些操作的;如果要执行SQL等一些操作,必须要以另外的用户进入才行。 一、进入PostgreSQL的命令       可以用安装目录下的/scripts中的runpslq.bat...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……