postgresql:psql

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
postgresql:psql [2026/06/28 02:35] – ↷ 링크가 이동 작업으로 인해 적응했습니다 writerpostgresql:psql [2026/08/04 02:04] (현재) – 바깥 편집 127.0.0.1
줄 18: 줄 18:
 </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>'' 원격 접속 정보 지정
줄 69: 줄 69:
  
 ===== 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 목록 + 
-  * ''\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>
줄 84: 줄 153:
  
 ===== 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 =====
줄 149: 줄 220:
  
 ===== 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]]
줄 155: 줄 227:
  
 ===== 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}}
  
  • /home/u613600155/domains/cli.zerotymer.net/public_html/data/pages/postgresql/psql.txt
  • 마지막으로 수정됨: 2026/08/04 02:04
  • (바깥 편집)