| 양쪽 이전 판 이전 판 | |
| postgresql:psql [2026/06/28 02:35] – ↷ 링크가 이동 작업으로 인해 적응했습니다 writer | postgresql:psql [2026/08/04 02:04] (현재) – 바깥 편집 127.0.0.1 |
|---|
| </code> | </code> |
| |
| * ''<color #c3c3c3>**psql**</color> <color #22b14c>[<switches>...]</color> <color #7092be>[DBNAME [USERNAME]]</color>'' | * ''<color #c3c3c3>**psql**</color> <color #22b14c>[OPTIONS...]</color> <color #7092be>[DBNAME [USERNAME]]</color>'' |
| * ''<color #c3c3c3>**psql**</color> <color #22b14c>**-d**</color> <color #7092be>DBNAME</color>'' 대상 데이터베이스 지정 | * ''<color #c3c3c3>**psql**</color> <color #22b14c>**-d**</color> <color #7092be>DBNAME</color>'' 대상 데이터베이스 지정 |
| * ''<color #c3c3c3>**psql**</color> <color #22b14c>**-h**</color> <color #7092be>HOST</color> <color #22b14c>**-p**</color> <color #7092be>PORT</color> <color #22b14c>**-U**</color> <color #7092be>USER</color>'' 원격 접속 정보 지정 | * ''<color #c3c3c3>**psql**</color> <color #22b14c>**-h**</color> <color #7092be>HOST</color> <color #22b14c>**-p**</color> <color #7092be>PORT</color> <color #22b14c>**-U**</color> <color #7092be>USER</color>'' 원격 접속 정보 지정 |
| |
| ===== Internal Commands ===== | ===== Internal Commands ===== |
| * ''\l'' 데이터베이스 목록 | ''psql'' prompt에서 따옴표로 감싸지 않은 backslash(''\'')로 시작하는 입력은 서버에 보내는 SQL이 아니라 ''psql'' client가 처리하는 meta-command(internal command)다. 현재 client가 지원하는 전체 목록은 ''\? commands'' 또는 ''psql --help=commands''로 확인한다. |
| * ''\c DBNAME'' 데이터베이스 전환 | |
| * ''\dt'' 테이블 목록 | <note tip> |
| * ''\d NAME'' object 상세 | ''\d'' 계열 command에서 ''S''는 system object 포함, ''+''는 추가 상세 정보, PostgreSQL 18의 ''x''는 expanded output을 뜻한다. 지원 command와 modifier는 ''psql'' client version에 따라 다르므로 접속 대상 서버보다 최신인 client를 사용하는 편이 안전하다. |
| * ''\du'' role 목록 | </note> |
| * ''\dn'' schema 목록 | |
| * ''\i FILE.sql'' 스크립트 실행 | ==== Help, Session, Connection ==== |
| * ''\o FILE'' 결과를 파일로 저장 | * ''<color #ff7f27>**\?**</color> <color #7092be>[TOPIC]</color>'' backslash command(''commands''), CLI option(''options''), variable(''variables'') 도움말 |
| * ''\q'' 종료 | * ''<color #ff7f27>**\h**</color> <color #7092be>[SQL_COMMAND]</color>'' SQL syntax 도움말. ''\h *''는 전체 SQL command 목록을 표시한다. |
| | * ''<color #ff7f27>**\conninfo**</color>'' 현재 database, user, host, port, SSL 연결 정보 표시 |
| | * ''<color #ff7f27>**\c**</color> <color #7092be>[DBNAME [USER [HOST [PORT]]]]</color>'' 또는 ''<color #ff7f27>**\connect**</color> <color #7092be>CONNINFO</color>'' 새 연결로 전환 |
| | * ''<color #ff7f27>**\encoding**</color> <color #7092be>[ENCODING]</color>'' client encoding 조회 또는 변경 |
| | * ''<color #ff7f27>**\password**</color> <color #7092be>[USERNAME]</color>'' command history에 평문 password를 남기지 않고 role password 변경 |
| | * ''<color #ff7f27>**\q**</color>'' ''psql'' 종료 |
| | |
| | ==== Object and Catalog Inspection ==== |
| | * ''<color #ff7f27>**\l**</color><color #22b14c>[x+]</color> <color #7092be>[PATTERN]</color>'' 또는 ''<color #ff7f27>**\list**</color>'' database 목록 |
| | * ''<color #ff7f27>**\d**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'' relation 목록 또는 지정한 table, view, sequence, index 상세 |
| | * ''<color #ff7f27>**\dt**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'' table 목록 |
| | * ''<color #ff7f27>**\dv**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'', ''<color #ff7f27>**\dm**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'' view와 materialized view 목록 |
| | * ''<color #ff7f27>**\di**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'', ''<color #ff7f27>**\ds**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'' index와 sequence 목록 |
| | * ''<color #ff7f27>**\dn**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'' schema 목록 |
| | * ''<color #ff7f27>**\du**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'' 또는 ''<color #ff7f27>**\dg**</color><color #22b14c>[Sx+]</color> <color #7092be>[PATTERN]</color>'' role 목록 |
| | * ''<color #ff7f27>**\dx**</color><color #22b14c>[x+]</color> <color #7092be>[PATTERN]</color>'' extension 목록 |
| | * ''<color #ff7f27>**\dp**</color><color #22b14c>[x]</color> <color #7092be>[PATTERN]</color>'' 또는 ''<color #ff7f27>**\z**</color>'' table, view, sequence access privilege 표시 |
| | * ''<color #ff7f27>**\dconfig**</color><color #22b14c>[x+]</color> <color #7092be>[PATTERN]</color>'' server configuration parameter 표시. 인수 없이 실행하면 기본값이 아닌 항목만 표시한다. |
| | * ''<color #ff7f27>**\sf**</color><color #22b14c>[+]</color> <color #7092be>FUNCTION</color>'', ''<color #ff7f27>**\sv**</color><color #22b14c>[+]</color> <color #7092be>VIEW</color>'' function 또는 view 정의 표시 |
| | |
| | ==== Query Buffer and Execution ==== |
| | * ''<color #ff7f27>**\p**</color>'' 현재 query buffer 표시 |
| | * ''<color #ff7f27>**\r**</color>'' query buffer 초기화 |
| | * ''<color #ff7f27>**\e**</color> <color #7092be>[FILE [LINE]]</color>'' editor에서 query buffer 또는 file 편집 |
| | * ''<color #ff7f27>**\g**</color> <color #7092be>[FILE]</color>'' query buffer 실행. file 또는 ''|COMMAND''를 주면 결과를 해당 대상으로 보낸다. |
| | * ''<color #ff7f27>**\gx**</color> <color #7092be>[FILE]</color>'' expanded output을 강제해 query 실행 |
| | * ''<color #ff7f27>**\gdesc**</color>'' query를 실행하지 않고 결과 column name과 data type 표시 |
| | * ''<color #ff7f27>**\gset**</color> <color #7092be>[PREFIX]</color>'' 정확히 한 행인 query 결과를 ''psql'' variable에 저장 |
| | * ''<color #ff7f27>**\gexec**</color>'' query 결과의 각 값을 SQL로 다시 실행 |
| | * ''<color #ff7f27>**\watch**</color> <color #7092be>[INTERVAL]</color>'' 현재 query를 지정 간격으로 반복 실행 |
| | |
| | <note warning> |
| | ''\gexec''는 query 결과를 SQL 문장으로 실행한다. 생성될 SQL을 먼저 일반 query로 검토하고, automation에서는 필요에 따라 ''ON_ERROR_STOP''과 transaction을 함께 사용한다. |
| | </note> |
| | |
| | ==== Input, Output, and Files ==== |
| | * ''<color #ff7f27>**\i**</color> <color #7092be>FILE</color>'' SQL 또는 meta-command script 실행 |
| | * ''<color #ff7f27>**\ir**</color> <color #7092be>FILE</color>'' 현재 script file 위치를 기준으로 상대 경로 script 실행 |
| | * ''<color #ff7f27>**\copy**</color> <color #7092be>...</color>'' client host의 권한과 file 경로를 사용해 ''COPY'' 수행 |
| | * ''<color #ff7f27>**\o**</color> <color #7092be>[FILE]</color>'' 이후 query 결과를 file 또는 ''|COMMAND''로 전송. 인수 없이 실행하면 standard output으로 복귀한다. |
| | * ''<color #ff7f27>**\w**</color> <color #7092be>FILE</color>'' 현재 query buffer를 file 또는 ''|COMMAND''에 기록 |
| | * ''<color #ff7f27>**\echo**</color> <color #7092be>[TEXT]</color>'', ''<color #ff7f27>**\qecho**</color> <color #7092be>[TEXT]</color>'' standard output 또는 현재 query output stream에 text 출력 |
| | |
| | ==== Output Formatting and Timing ==== |
| | * ''<color #ff7f27>**\x**</color> <color #7092be>[ON|OFF|AUTO]</color>'' expanded output 전환 |
| | * ''<color #ff7f27>**\pset**</color> <color #7092be>[OPTION [VALUE]]</color>'' border, format, pager, null 표시 등 결과 출력 형식 설정 |
| | * ''<color #ff7f27>**\a**</color>'' aligned/unaligned output 전환 |
| | * ''<color #ff7f27>**\t**</color>'' column heading과 row count footer 표시 전환 |
| | * ''<color #ff7f27>**\timing**</color> <color #7092be>[ON|OFF]</color>'' SQL 실행 시간 표시 전환 |
| | * ''<color #ff7f27>**\crosstabview**</color> <color #7092be>[COLUMNS]</color>'' 현재 query 결과를 crosstab 형태로 표시 |
| | |
| | ==== Variables and Script Control ==== |
| | * ''<color #ff7f27>**\set**</color> <color #7092be>[NAME [VALUE]]</color>'', ''<color #ff7f27>**\unset**</color> <color #7092be>NAME</color>'' ''psql'' variable 설정 또는 해제 |
| | * ''<color #ff7f27>**\prompt**</color> <color #7092be>[TEXT] NAME</color>'' 입력받은 값을 variable에 저장 |
| | * ''<color #ff7f27>**\getenv**</color> <color #7092be>PSQL_VAR ENV_VAR</color>'', ''<color #ff7f27>**\setenv**</color> <color #7092be>NAME [VALUE]</color>'' environment variable 조회 또는 설정 |
| | * ''<color #ff7f27>**\if**</color> <color #7092be>EXPR</color>'', ''<color #ff7f27>**\elif**</color> <color #7092be>EXPR</color>'', ''<color #ff7f27>**\else**</color>'', ''<color #ff7f27>**\endif**</color>'' script 조건 분기 |
| | * ''<color #ff7f27>**\warn**</color> <color #7092be>TEXT</color>'' standard error에 message 출력 |
| | |
| | ==== Shell and History ==== |
| | * ''<color #ff7f27>**\cd**</color> <color #7092be>[DIR]</color>'' ''psql'' process의 working directory 변경 |
| | * ''<color #ff7f27>**\!**</color> <color #7092be>[COMMAND]</color>'' shell command 실행 또는 interactive shell 시작 |
| | * ''<color #ff7f27>**\s**</color> <color #7092be>[FILE]</color>'' command history 표시 또는 file로 저장 |
| | |
| | ==== Extended Query Protocol and Pipeline ==== |
| | PostgreSQL 18 client는 extended query protocol과 pipeline 시험용 command를 제공한다. 구버전 client에는 일부 command가 없을 수 있다. |
| | |
| | * ''<color #ff7f27>**\parse**</color> <color #7092be>STATEMENT_NAME</color>'', ''<color #ff7f27>**\bind**</color> <color #7092be>[PARAMETER...]</color>'', ''<color #ff7f27>**\bind_named**</color> <color #7092be>STATEMENT_NAME [PARAMETER...]</color>'' prepared statement parse/bind 작업 |
| | * ''<color #ff7f27>**\close_prepared**</color> <color #7092be>STATEMENT_NAME</color>'' client connection의 prepared statement 닫기 |
| | * ''<color #ff7f27>**\startpipeline**</color>'', ''<color #ff7f27>**\sendpipeline**</color>'', ''<color #ff7f27>**\syncpipeline**</color>'', ''<color #ff7f27>**\endpipeline**</color>'' pipeline 시작, query 전송, 동기화, 종료 |
| | * ''<color #ff7f27>**\flushrequest**</color>'', ''<color #ff7f27>**\flush**</color>'', ''<color #ff7f27>**\getresults**</color> <color #7092be>[COUNT]</color>'' pipeline의 flush 요청, client send buffer flush, 대기 결과 읽기 |
| |
| <note important> | <note important> |
| |
| ===== Compatibility ===== | ===== Compatibility ===== |
| * 이 페이지의 도움말은 로컬 설치된 PostgreSQL client 기준으로 정리했다. | * Internal command 설명은 PostgreSQL 18 공식 ''psql'' 문서를 기준으로 정리했다. |
| | * 이 페이지의 folded 도움말은 로컬에 설치된 PostgreSQL 10.23 client 출력이다. |
| * 현재 환경의 ''psql --help''에는 기본 DB와 기본 사용자 예시가 ''master''로 보인다. 다른 시스템에서는 현재 OS 사용자명이나 배포판 설정에 따라 값이 다를 수 있다. | * 현재 환경의 ''psql --help''에는 기본 DB와 기본 사용자 예시가 ''master''로 보인다. 다른 시스템에서는 현재 OS 사용자명이나 배포판 설정에 따라 값이 다를 수 있다. |
| | * ''psql''은 같은 major version 또는 더 오래된 PostgreSQL server와 함께 사용할 때 가장 안정적이다. 특히 backslash command는 client보다 새로운 server에서 실패할 수 있다. |
| |
| ===== Help ===== | ===== Help ===== |
| |
| ===== See Also ===== | ===== See Also ===== |
| | * [[https://www.postgresql.org/docs/current/app-psql.html|PostgreSQL Documentation: psql]] |
| * [[postgresql:pg_dump]] | * [[postgresql:pg_dump]] |
| * [[postgresql:pg_restore]] | * [[postgresql:pg_restore]] |
| |
| ===== History ===== | ===== History ===== |
| | * codex:: 2026-08-04 Expanded internal commands by task, including catalog inspection, query execution, scripting, and PostgreSQL 18 pipeline commands. |
| * codex:: 2026-06-22 Reorganized psql into a structured CLI reference with connection, scripting, and restore workflow notes. | * codex:: 2026-06-22 Reorganized psql into a structured CLI reference with connection, scripting, and restore workflow notes. |
| | |
| | {{indexmenu>.#1|js}} |
| |