暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL的psql工具

DBA随笔记 2024-12-23
83
psql 是 PostgreSQL 数据库的命令行界面,允许用户与数据库交互、管理数据库、执行 SQL 语句等。它提供了许多内部命令以及能力来执行复杂的查询和数据库操作。以下是一些常用的 psql 命令:
连接和断开数据库
• 连接到数据库: psql -d database_name -U user_name
• 断开当前数据库连接: \q
查看数据库对象
• 列出所有数据库:\l 或 \list
• 切换当前数据库:\c database_name
• 列出当前数据库中的所有表:\dt
• 列出特定模式中的所有表:\dt schema_name.*
• 显示表的结构:\d table_name
• 列出所有模式:\dn
• 列出所有可用的命令和系统视图:\?
执行 SQL 语句
• 执行 SQL 文件: psql -d database_name -f file.sql
• 执行 SQL 语句(在 psql 内部):SELECT * FROM table_name;
调整 psql 行为
设置输出格式为垂直格式而不是默认的横向格式: \x
脚本和自动化
• 执行 psql 命令而不进入交互界面:psql -d database_name -c "SELECT * FROM table_name;"
• 在 psql 命令行中执行系统命令:  \! ls
• 将查询结果导出到文件: 
    \o output_file.txt 
    SELECT * FROM table_name; 
    \o
    显示当前 psql 版本: \! psql -V
    获取帮助信息:
    对于 SQL 命令的帮助:\h 或 \h COMMAND_NAME
    对于 psql 命令的帮助:\?
      [postgres@pgserver ~]$ psql -d postgres -U postgres
      psql (16.4)
      Type "help" for help.


      postgres=# help
      You are using psql, the command-line interface to PostgreSQL.
      Type:  \copyright for distribution terms
             \h for help with SQL commands
             \? for help with psql commands
             \g or terminate with semicolon to execute query
             \q to quit


      postgres=# \h
      Available help:
        ABORT                            CLOSE                            CREATE VIEW                      DROP USER MAPPING
        ALTER AGGREGATE                  CLUSTER                          DEALLOCATE                       DROP VIEW
        ALTER COLLATION                  COMMENT                          DECLARE                          END
        ALTER CONVERSION                 COMMIT                           DELETE                           EXECUTE
        ALTER DATABASE                   COMMIT PREPARED                  DISCARD                          EXPLAIN
        ALTER DEFAULT PRIVILEGES         COPY                             DO                               FETCH
        ALTER DOMAIN                     CREATE ACCESS METHOD             DROP ACCESS METHOD               GRANT
        ALTER EVENT TRIGGER              CREATE AGGREGATE                 DROP AGGREGATE                   IMPORT FOREIGN SCHEMA
        ALTER EXTENSION                  CREATE CAST                      DROP CAST                        INSERT
        ALTER FOREIGN DATA WRAPPER       CREATE COLLATION                 DROP COLLATION                   LISTEN
        ALTER FOREIGN TABLE              CREATE CONVERSION                DROP CONVERSION                  LOAD
        ALTER FUNCTION                   CREATE DATABASE                  DROP DATABASE                    LOCK
        ALTER GROUP                      CREATE DOMAIN                    DROP DOMAIN                      MERGE
        ALTER INDEX                      CREATE EVENT TRIGGER             DROP EVENT TRIGGER               MOVE
        ALTER LANGUAGE                   CREATE EXTENSION                 DROP EXTENSION                   NOTIFY
        ALTER LARGE OBJECT               CREATE FOREIGN DATA WRAPPER      DROP FOREIGN DATA WRAPPER        PREPARE
        ALTER MATERIALIZED VIEW          CREATE FOREIGN TABLE             DROP FOREIGN TABLE               PREPARE TRANSACTION
        ALTER OPERATOR                   CREATE FUNCTION                  DROP FUNCTION                    REASSIGN OWNED
        ALTER OPERATOR CLASS             CREATE GROUP                     DROP GROUP                       REFRESH MATERIALIZED VIEW
        ALTER OPERATOR FAMILY            CREATE INDEX                     DROP INDEX                       REINDEX
        ALTER POLICY                     CREATE LANGUAGE                  DROP LANGUAGE                    RELEASE SAVEPOINT
        ALTER PROCEDURE                  CREATE MATERIALIZED VIEW         DROP MATERIALIZED VIEW           RESET
        ALTER PUBLICATION                CREATE OPERATOR                  DROP OPERATOR                    REVOKE
        ALTER ROLE                       CREATE OPERATOR CLASS            DROP OPERATOR CLASS              ROLLBACK
        ALTER ROUTINE                    CREATE OPERATOR FAMILY           DROP OPERATOR FAMILY             ROLLBACK PREPARED
        ALTER RULE                       CREATE POLICY                    DROP OWNED                       ROLLBACK TO SAVEPOINT
        ALTER SCHEMA                     CREATE PROCEDURE                 DROP POLICY                      SAVEPOINT
        ALTER SEQUENCE                   CREATE PUBLICATION               DROP PROCEDURE                   SECURITY LABEL
        ALTER SERVER                     CREATE ROLE                      DROP PUBLICATION                 SELECT
        ALTER STATISTICS                 CREATE RULE                      DROP ROLE                        SELECT INTO
        ALTER SUBSCRIPTION               CREATE SCHEMA                    DROP ROUTINE                     SET
        ALTER SYSTEM                     CREATE SEQUENCE                  DROP RULE                        SET CONSTRAINTS
        ALTER TABLE                      CREATE SERVER                    DROP SCHEMA                      SET ROLE
        ALTER TABLESPACE                 CREATE STATISTICS                DROP SEQUENCE                    SET SESSION AUTHORIZATION
        ALTER TEXT SEARCH CONFIGURATION  CREATE SUBSCRIPTION              DROP SERVER                      SET TRANSACTION
        ALTER TEXT SEARCH DICTIONARY     CREATE TABLE                     DROP STATISTICS                  SHOW
        ALTER TEXT SEARCH PARSER         CREATE TABLE AS                  DROP SUBSCRIPTION                START TRANSACTION
        ALTER TEXT SEARCH TEMPLATE       CREATE TABLESPACE                DROP TABLE                       TABLE
        ALTER TRIGGER                    CREATE TEXT SEARCH CONFIGURATION DROP TABLESPACE                  TRUNCATE
        ALTER TYPE                       CREATE TEXT SEARCH DICTIONARY    DROP TEXT SEARCH CONFIGURATION   UNLISTEN
        ALTER USER                       CREATE TEXT SEARCH PARSER        DROP TEXT SEARCH DICTIONARY      UPDATE
        ALTER USER MAPPING               CREATE TEXT SEARCH TEMPLATE      DROP TEXT SEARCH PARSER          VACUUM
        ALTER VIEW                       CREATE TRANSFORM                 DROP TEXT SEARCH TEMPLATE        VALUES
        ANALYZE                          CREATE TRIGGER                   DROP TRANSFORM                   WITH
        BEGIN                            CREATE TYPE                      DROP TRIGGER
        CALL                             CREATE USER                      DROP TYPE
        CHECKPOINT                       CREATE USER MAPPING              DROP USER




        postgres=# \?
      General
        \bind [PARAM]...       set query parameters
        \copyright             show PostgreSQL usage and distribution terms
        \crosstabview [COLUMNS] execute query and display result in crosstab
        \errverbose            show most recent error message at maximum verbosity
        \g [(OPTIONS)] [FILE]  execute query (and send result to file or |pipe);
                               \g with no arguments is equivalent to a semicolon
        \gdesc                 describe result of query, without executing it
        \gexec                 execute query, then execute each value in its result
        \gset [PREFIX]         execute query and store result in psql variables
        \gx [(OPTIONS)] [FILE] as \g, but forces expanded output mode
        \q                     quit psql
        \watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times


      Help
        \? [commands]          show help on backslash commands
        \? options             show help on psql command-line options
        \? variables           show help on special variables
        \h [NAME]              help on syntax of SQL commands, * for all commands


      Query Buffer
        \e [FILE] [LINE]       edit the query buffer (or file) with external editor
        \ef [FUNCNAME [LINE]]  edit function definition with external editor
        \ev [VIEWNAME [LINE]]  edit view definition with external editor
        \p                     show the contents of the query buffer
        \r                     reset (clear) the query buffer
        \s [FILE]              display history or save it to file
        \w FILE                write query buffer to file


      Input/Output
        \copy ...              perform SQL COPY with data stream to the client host
        \echo [-n] [STRING]    write string to standard output (-n for no newline)
        \i FILE                execute commands from file
        \ir FILE               as \i, but relative to location of current script
        \o [FILE]              send all query results to file or |pipe
        \qecho [-n] [STRING]   write string to \o output stream (-n for no newline)
        \warn [-n] [STRING]    write string to standard error (-n for no newline)


      Conditional
        \if EXPR               begin conditional block
        \elif EXPR             alternative within current conditional block
        \else                  final alternative within current conditional block
        \endif                 end conditional block


      Informational
        (options: S = show system objects, + = additional detail)
        \d[S+]                 list tables, views, and sequences
        \d[S+]  NAME           describe table, view, sequence, or index
        \da[S]  [PATTERN]      list aggregates
        \dA[+]  [PATTERN]      list access methods
        \dAc[+] [AMPTRN [TYPEPTRN]]  list operator classes
        \dAf[+] [AMPTRN [TYPEPTRN]]  list operator families
        \dAo[+] [AMPTRN [OPFPTRN]]   list operators of operator families
        \dAp[+] [AMPTRN [OPFPTRN]]   list support functions of operator families
        \db[+]  [PATTERN]      list tablespaces
        \dc[S+] [PATTERN]      list conversions
        \dconfig[+] [PATTERN]  list configuration parameters
        \dC[+]  [PATTERN]      list casts
        \dd[S]  [PATTERN]      show object descriptions not displayed elsewhere
        \dD[S+] [PATTERN]      list domains
        \ddp    [PATTERN]      list default privileges
        \dE[S+] [PATTERN]      list foreign tables
        \des[+] [PATTERN]      list foreign servers
        \det[+] [PATTERN]      list foreign tables
        \deu[+] [PATTERN]      list user mappings
        \dew[+] [PATTERN]      list foreign-data wrappers
        \df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]
                               list [only agg/normal/procedure/trigger/window] functions
        \dF[+]  [PATTERN]      list text search configurations
        \dFd[+] [PATTERN]      list text search dictionaries
        \dFp[+] [PATTERN]      list text search parsers
        \dFt[+] [PATTERN]      list text search templates
        \dg[S+] [PATTERN]      list roles
        \di[S+] [PATTERN]      list indexes
        \dl[+]                 list large objects, same as \lo_list
        \dL[S+] [PATTERN]      list procedural languages
        \dm[S+] [PATTERN]      list materialized views
        \dn[S+] [PATTERN]      list schemas
        \do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]
                               list operators
        \dO[S+] [PATTERN]      list collations
        \dp[S]  [PATTERN]      list table, view, and sequence access privileges
        \dP[itn+] [PATTERN]    list [only index/table] partitioned relations [n=nested]
        \drds [ROLEPTRN [DBPTRN]] list per-database role settings
        \drg[S] [PATTERN]      list role grants
        \dRp[+] [PATTERN]      list replication publications
        \dRs[+] [PATTERN]      list replication subscriptions
        \ds[S+] [PATTERN]      list sequences
        \dt[S+] [PATTERN]      list tables
        \dT[S+] [PATTERN]      list data types
        \du[S+] [PATTERN]      list roles
        \dv[S+] [PATTERN]      list views
        \dx[+]  [PATTERN]      list extensions
        \dX     [PATTERN]      list extended statistics
        \dy[+]  [PATTERN]      list event triggers
        \l[+]   [PATTERN]      list databases
        \sf[+]  FUNCNAME       show a function's definition
        \sv[+]  VIEWNAME       show a view's definition
        \z[S]   [PATTERN]      same as \dp


      Large Objects
        \lo_export LOBOID FILE write large object to file
        \lo_import FILE [COMMENT]
                               read large object from file
        \lo_list[+]            list large objects
        \lo_unlink LOBOID      delete a large object


      Formatting
        \a                     toggle between unaligned and aligned output mode
        \C [STRING]            set table title, or unset if none
        \f [STRING]            show or set field separator for unaligned query output
        \H                     toggle HTML output mode (currently off)
        \pset [NAME [VALUE]]   set table output option
                               (border|columns|csv_fieldsep|expanded|fieldsep|
                               fieldsep_zero|footer|format|linestyle|null|
                               numericlocale|pager|pager_min_lines|recordsep|
                               recordsep_zero|tableattr|title|tuples_only|
                               unicode_border_linestyle|unicode_column_linestyle|
                               unicode_header_linestyle)
        \t [on|off]            show only rows (currently off)
        \T [STRING]            set HTML <table> tag attributes, or unset if none
        \x [on|off|auto]       toggle expanded output (currently off)


      Connection
        \c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
                               connect to new database (currently "postgres")
        \conninfo              display information about current connection
        \encoding [ENCODING]   show or set client encoding
        \password [USERNAME]   securely change the password for a user


      Operating System
        \cd [DIR]              change the current working directory
        \getenv PSQLVAR ENVVAR fetch environment variable
        \setenv NAME [VALUE]   set or unset environment variable
        \timing [on|off]       toggle timing of commands (currently off)
        \! [COMMAND]           execute command in shell or start interactive shell


      Variables
        \prompt [TEXT] NAME    prompt user to set internal variable
        \set [NAME [VALUE]]    set internal variable, or list all if no parameters
        \unset NAME            unset (delete) internal variable

      文章转载自DBA随笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论