PostgreSQL | psql을 사용하여 PostgreSQL에 연결 | psql 메타 명령의 목록과 실행 방법

psql을 사용하여 PostegreSQL에 연결하여 실행 가능한 psql 메타 명령의 사용법과 명령의 목록에 대해 설명한다.

psql 명령의 실행 방법

psql는 PostgreSQL에 접속하여 실행 가능한 명령이 많이 제공되고 있다. 명령의 목록을 확인하려면 다음과 같이 수행한다. psql 명령 목록과 사용법이 표시된다. (명령 목록은이 페이지의 마지막에 기재되어 있다.)

\?
postgres=# \?
일반
  \copyright             PostgreSQL 사용법 및 저작권 정보 표시
  \crosstabview [칼럼들] 쿼리를 실행하고, 피봇 테이블 형태로 자료를 보여줌
  \errverbose            최대 자세히 보기 상태에서 최근 오류를 다 보여줌
  \g [FILE] 또는 ;       쿼리 실행(및 결과를 파일 또는 |파이프로 보냄)
  \gdesc                 쿼리를 실행하지 않고 그 결과 칼럼과 자료형을 출력
  \gexec                 쿼리를 실행하고, 그 결과를 각각 실행 함
  \gset [PREFIX]         쿼리 실행 뒤 그 결과를 psql 변수로 저장
  \gx [FILE]             \g 명령과 같으나, 출력을 확장 모드로 강제함
  \q                     psql 종료
  \watch [SEC]           매 초마다 쿼리 실행

도움말
  \? [commands]          psql 역슬래시 명령어 설명
  \? options             psql 명령행 옵션 도움말 보기
  \? variables           psql 환경 설정 변수들에 설명 보기
  \h [NAME]              SQL 명령 구문 도움말, 모든 명령을 표시하려면 * 입력

psql 명령은 Windows의 경우 백 슬래시()에서 시작하는 것으로, 예를 들어 psql를 종료하고 PostgreSQL과의 연결을 끊을 때 사용하는 \q도 psql 명령 중 하나이다 .

\q
C:\>psql -U postgres
postgres 사용자의 암호:
psql (12.2)
도움말을 보려면 "help"를 입력하십시오.

postgres=# \q

C:\>

psql 명령을 사용하여 생성된 데이터베이스 목록을 검색 할 수 있다.

\l
postgres=# \l
postgres=# \l
                                      데이터베이스 목록
   이름    |  소유주  | 인코딩 |     Collate      |      Ctype       |      액세스 권한
-----------+----------+--------+------------------+------------------+-----------------------
 devkuma   | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 postgres  | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 template0 | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
           |          |        |                  |                  | postgres=CTc/postgres
 template1 | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
           |          |        |                  |                  | postgres=CTc/postgres
(4개 행)

현재 연결된 데이터베이스와 다른 데이터베이스에 연결할 수 있다.

\c devkuma
postgres=# \c devkuma
접속정보: 데이터베이스="devkuma", 사용자="postgres".
devkuma=#

psql 명령 목록

일반:

명령어 설명
\copyright PostgreSQL 사용법 및 저작권 정보 표시
\crosstabview [칼럼들] 쿼리를 실행하고, 피봇 테이블 형태로 자료를 보여줌
\errverbose 최대 자세히 보기 상태에서 최근 오류를 다 보여줌
\g [FILE] 또는 ; 쿼리 실행(및 결과를 파일 또는| 파이프로 보냄)
\gdesc 쿼리를 실행하지 않고 그 결과 칼럼과 자료형을 출력
\gexec 쿼리를 실행하고, 그 결과를 각각 실행 함
\gset [PREFIX] 쿼리 실행 뒤 그 결과를 psql 변수로 저장
\gx [FILE] \g 명령과 같으나, 출력을 확장 모드로 강제함
\q psql 종료
\watch [SEC] 매 초마다 쿼리 실행

도움말:

명령어 설명
? [commands] psql 역슬래시 명령어 설명
? options psql 명령행 옵션 도움말 보기
? variables psql 환경 설정 변수들에 설명 보기
\h [NAME] SQL 명령 구문 도움말, 모든 명령을 표시하려면 * 입력

쿼리 버퍼:

명령어 설명
\e [FILE] [LINE] 외부 편집기로 쿼리 버퍼(또는 파일) 편집
\ef [FUNCNAME [LINE]] 외부 편집기로 해당 함수 내용 편집
\ev [VIEWNAME [LINE]] 외부 편집기로 해당 뷰 정의 편집
\p 쿼리 버퍼의 내용 표시
\r 쿼리 버퍼 초기화(모두 지움)
\w FILE 쿼리 버퍼를 파일에 기록

입력/출력:

명령어 설명
\copy … 클라이언트 호스트에 있는 자료를 SQL COPY 명령 실행
\echo [STRING] 문자열을 표준 출력에 기록
\i FILE 파일에서 명령 실행
\ir FILE \i 명령과 같으나, 경로가 현재 위치 기준 상대적
\o [FILE] 모든 쿼리 결과를 파일 또는 | 파이프로 보냄
\qecho [STRING] 문자열을 쿼리 출력 스트림에 기록(\o 참조)

조건문:

명령어 설명
\if EXPR 조건문 시작
\elif EXPR else if 구문 시작
\else 조건문의 그 외 조건
\endif 조건문 끝

정보보기:

(옵션: S = 시스템 개체 표시, + = 추가 상세 정보)

명령어 설명
\d[S+] 테이블, 뷰 및 시퀀스 목록
\d[S+] NAME 테이블, 뷰, 시퀀스 또는 인덱스 설명
\da[S] [PATTERN] 집계 함수 목록
\dA[+] [PATTERN] 접근 방법 목록
\db[+] [PATTERN] 테이블스페이스 목록
\dc[S+] [PATTERN] 문자셋 변환자 목록
\dC[+] [PATTERN] 자료형 변환자 목록
\dd[S] [PATTERN] 다른 곳에서는 볼 수 없는 객체 설명을 보여줌
\dD[S+] [PATTERN] 도메인 목록
\ddp [PATTERN] 기본 접근권한 목록
\dE[S+] [PATTERN] 외부 테이블 목록
\det[+] [PATTERN] 외부 테이블 목록
\des[+] [PATTERN] 외부 서버 목록
\deu[+] [PATTERN] 사용자 매핑 목록
\dew[+] [PATTERN] 외부 데이터 래퍼 목록
\df[anptw][S+] [PATRN] [agg/normal/procedures/trigger/window] | 함수 목록
\dF[+] [PATTERN] 텍스트 검색 구성 목록
\dFd[+] [PATTERN] 텍스트 검색 사전 목록
\dFp[+] [PATTERN] 텍스트 검색 파서 목록
\dFt[+] [PATTERN] 텍스트 검색 템플릿 목록
\dg[S+] [PATTERN] 롤 목록
\di[S+] [PATTERN] 인덱스 목록
\dl 큰 개체 목록, \lo_list 명령과 같음
\dL[S+] [PATTERN] 프로시져 언어 목록
\dm[S+] [PATTERN] materialized 뷰 목록
\dn[S+] [PATTERN] 스키마 목록
\do[S] [PATTERN] 연산자 목록
\dO[S+] [PATTERN] collation 목록
\dp [PATTERN] 테이블, 뷰 및 시퀀스 액세스 권한 목록
\dP[itn+] [PATTERN] 파티션 릴레이션 목록 [인덱스/테이블만] [n=nested]
\drds [PATRN1 [PATRN2]] 데이터베이스별 롤 설정 목록
\dRp[+] [PATTERN] 복제 발행 목록
\dRs[+] [PATTERN] 복제 구독 목록
\ds[S+] [PATTERN] 시퀀스 목록
\dt[S+] [PATTERN] 테이블 목록
\dT[S+] [PATTERN] 데이터 형식 목록
\du[S+] [PATTERN] 롤 목록
\dv[S+] [PATTERN] 뷰 목록
\dx[+] [PATTERN] 확장 모듈 목록
\dy [PATTERN] 이벤트 트리거 목록
\l[+] [PATTERN] 데이터베이스 목록
\sf[+] 함수이름 함수 정의 보기
\sv[+] 뷰이름 뷰 정의 보기

출력 형식:

명령어 설명
\a 정렬되지 않은 출력 모드와 정렬된 출력 모드 전환
\C [STRING] 테이블 제목 설정 또는 값이 없는 경우 설정 안 함
\f [STRING] unaligned 출력에 대해 필드 구분자 표시 또는 설정
\H HTML 출력 모드 전환(현재 off)
\pset [이름 [값]] 테이블 출력 옵션 설정
(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] 행만 표시(현재 off)
\T [STRING] HTML <table> 태그 속성 설정 또는 비었는 경우 설정 안 함
\x [on|off|auto] 확장된 출력 전환 (현재 off)

연결:

명령어 설명
\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} 새 데이터베이스에 접속 (현재 “postgres”)
\conninfo 현재 데이터베이스 접속 정보 보기
\encoding [ENCODING] 클라이언트 인코딩 표시 또는 설정
\password [USERNAME 사용자 암호를 안전하게 변경

운영 체제:

명령어 설명
\cd [DIR] 현재 작업 디렉터리 변경
\setenv NAME [VALUE] 환경 변수 지정 및 해제
\timing [on|off] 명령 실행 시간 전환(현재 off)
! [COMMAND] 셸 명령 실행 또는 대화식 셸 시작

변수:

명령어 설명
\prompt [TEXT] NAME 사용자에게 내부 변수를 설정하라는 메시지 표시
\set [NAME [VALUE]] 내부 변수 설정 또는 미지정 경우 모든 변수 목록 표시
\unset NAME 내부 변수 설정 해제(삭제)

큰 개체:

명령어 설명
\lo_export LOBOID FILE
\lo_import FILE [COMMENT]
\lo_list
\lo_unlink LOBOID 큰 개체 작업