zoukankan      html  css  js  c++  java
  • psql工具使用(二)

    所有psql命令都以      开头

    一、使用psql -l查看有哪些数据库:

    -bash-4.2$ psql -l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     test      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
    (4 rows)
    

      创建数据库的时候默认是hi从template克隆出来的。

    l  同psql -l

    d  查看表

    c  连接数据库

    postgres=# create database testdb;
    CREATE DATABASE
    postgres=# c testdb;
    You are now connected to database "testdb" as user "postgres".
    testdb=# d
    No relations found.
    testdb=# create table t(id int primary key, name varchar(40));
    CREATE TABLE
    testdb=# d
            List of relations
     Schema | Name | Type  |  Owner
    --------+------+-------+----------
     public | t    | table | postgres
    (1 row)
    

    psql -h <hostname or ip> -p <port> [数据库名称] [用户名称] 

    二、d

    2.1  d 列出当前数据库所有表;

    2.2  d table_name,显示表结构定义;

    testdb=# d t
                  Table "public.t"
     Column |         Type          | Modifiers
    --------+-----------------------+-----------
     id     | integer               | not null
     name   | character varying(40) |
    Indexes:
        "t_pkey" PRIMARY KEY, btree (id)
    

      d 显示索引信息。

    testdb=# d t_pkey
         Index "public.t_pkey"
     Column |  Type   | Definition
    --------+---------+------------
     id     | integer | id
    primary key, btree, for table "public.t"
    

      d+ table_name  显示比d更详细的信息。

    如果只想显示匹配的表  dt

    如果只想显示索引    di

    如果只想显示序列   ds

    如果只想显示视图    dv

    如果只想显示函数    df

    显示SQL执行的时间 iming on

    列出所有schema   

    显示所有表空间  db

    显示数据库中所有角色或者用户   du   或者   dg

    显示表的权限分配情况    dp   或者    z

    三、使用encoding 命令指定字符集   encoding utf8;

    四、pset命令---用于设置输出的格式

    pset border0:  表示输出内容无表框;

    pset border1:   表示内部显示边框

    pset border2:   表示内部都有边框

    testdb=# select * from t;
     id | name
    ----+------
    (0 rows)
    
    Time: 0.522 ms
    testdb=# pset border 2;
    Border style is 2.
    testdb=# select * from t;
    +----+------+
    | id | name |
    +----+------+
    +----+------+
    (0 rows)
    
    Time: 0.585 ms
    testdb=#
    

     

    五、x命令,把表中每一行的每列数据都拆分为单行显示;同mysql  /G

    六、执行存储在外部文件的SQL命令;

    1、 i <文件名> 执行存储在外部文件中的sql语句或者命令;

    2、echo 显示数据一行信息;

    testdb=# echo hello word
    hello word
    

    3、更多命令使用   ?  查看;

    七、自动提交方面的技巧。

      在psql中事物是自动提交的。如果不想自动提交,方法有两种

      方法一:运行begin;命令,然后执行dml语句,最后再执行commit或rollback语句。

    testdb=# begin;
    BEGIN
    Time: 0.428 ms
    testdb=# update t set name='xxx' where id=1;
    UPDATE 1
    Time: 0.743 ms
    testdb=# select * from t;
    +----+------+
    | id | name |
    +----+------+
    |  2 | haha |
    |  1 | xxx  |
    +----+------+
    (2 rows)
    
    Time: 0.507 ms
    testdb=# rollback;
    ROLLBACK
    Time: 0.317 ms
    testdb=# select * from t;
    +----+--------+
    | id |  name  |
    +----+--------+
    |  1 | steven |
    |  2 | haha   |
    +----+--------+
    (2 rows)
    
    Time: 0.584 ms
    testdb=#
    

     方法二:直接使用psql中的命令关闭自动提交的功能。

    set AUTOCOMMIT off       \AUTOCOMMIT必须大写
    

      八、如何得到psql中命令实际执行的SQL

    如果在启动psql的命令行中加  -E  ,就可以把pslq中执行的命令实际SQL打印出来:

    临时起作用打印SQL的命令:set ECHO_HIDDEN on | off

     

  • 相关阅读:
    负载均衡器部署方式和工作原理
    Android 有关于* daemon not running.starting it now on port 5037 *ADB
    微信开发常用文档及参考资料
    XML解析之sax解析案例(二)使用sax解析把 xml文档封装成对象
    XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
    XML解析之SAX解析过程代码详解
    通过PHP current()函数获取未知字符键名数组第一个元素的值
    PHP检测链接是否是SSL连接 ,也就是判断HTTPS
    PHP反射ReflectionClass、ReflectionMethod 入门教程
    PHP 反射API说明
  • 原文地址:https://www.cnblogs.com/sunshine-long/p/9050677.html
Copyright © 2011-2022 走看看