PSQL 사용법 정리
PSQL은 PostgreSQL 데이터베이스의 터미널 기반 인터페이스 입니다. 이를 통해 데이터베이스의 생성과 삭제, 데이터베이스 유저 관리, 데이터의 CRUD 등 여러가지 작업을 손쉽게 수행할 수 있습니다.
저같이 터미널을 애용하시는 분들께는 정말 도움이 많이 되는 툴이니, PostgreSQL을 사용하기로 마음먹으셨다면 꼭 익숙해지시는 게 좋을 것 같습니다.
1. PSQL 접속 방법
PSQL 접속 방법은 매우 다양합니다.
1-1. pgAdmin을 이용한 접속

위 사진처럼 pgAdmin에 설정되어 있는 특정 DB에 오른쪽 마우스 클릭을 하고 PSQL Tool을 눌러 접근 가능합니다.
만약 Please configure the PostgreSQL Binary Path in the Preferences dialog. 라는 에러 문구가 나타난다면 [pgAdmin] PostgreSQL Binary Path 설정하기 포스트를 참고해주세요.
1-2. SQL Shell을 이용한 접속
윈도우에서 PostgreSQL을 설치하셨다면, SQL Shell (psql) 이라는 쉘 프로그램이 다운로드 되어 있을 것입니다.

쉘에서 요구하는 내용에 따라 Host Name, Database Name, Port, User Name, User Password 만 입력해주면 손쉽게 접속이 가능합니다.
1-3. Ubuntu 터미널에서의 접속
Ubuntu와 같은 Debian 계열의 OS에서는 PostgreSQL 패키지를 지원하기 때문에, 터미널에서 psql로 바로 접속이 가능합니다. 먼저 아래 커맨드를 통해 필수 패키지 설치부터 진행합니다.
1
2
$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib
위 패키지를 설치하면 postgres라는 계정이 자동으로 생성됩니다.
로컬에서 postgres를 사용할 예정이라면 아래 커맨드를 통해 postgres 계정으로 접근하고, psql 명령어만 입력하여 간단하게 데이터베이스에 접근이 가능합니다.
1
2
$ sudo -i -u postgres
$ psql
AWS의 RDS나 다른 환경의 데이터베이스에 접근하기 위해서는 아래와 같은 커맨드를 사용할 수 있습니다.
1
$ psql -h {$host} -p {$port} -U {$user} -d {$database}
이후 데이터베이스에 접근하려는 유저의 비밀번호만 입력하면 손쉽게 접속이 가능합니다.
2. 주요 PSQL 커맨드
주로 사용하는 PSQL 커맨드에 대해서 알아보겠습니다.
2-1. 데이터베이스 전환
아래 커맨드를 통해 다른 데이터베이스로 접속할 수 있습니다.
$user를 입력하지 않을 경우, 현재 접속중인 유저로 데이터베이스을 전환하기만 합니다.
1
\c {$database} {$user}
2-2. 특정 Table 상세 조회
특정 Table에 대한 field(column), type, null constraint 등을 확인할 수 있습니다.
1
\d {$table_name}
2-3. 리스트 조회
커맨드에 따른 리스트를 조회합니다.
각 커맨드 뒤에 +를 붙혀서 상세 정보를 출력 가능합니다.
| 커맨드 | 기능 |
|---|---|
| \list 또는 \l | 전체 Database 목록 조회 |
| \dt | 접속한 Database의 Table 목록 조회 |
| \dv | 접속한 Database의 View 목록 조회 |
| \du | 접속한 Database의 User 목록 조회 |
| \dn | 접속한 Database의 Schema 목록 조회 |
| \ds | 접속한 Database의 Sequence 목록 조회 |
| \df | 접속한 Database의 Function 목록 조회 |
2-4. History 조회 및 활용
- \g : 바로 이전에 실행했던 커맨드 실행
- \s : 이전에 실행했던 커맨드 히스토리 조회
2-5. Query 결과 Display 설정
- \x : Column을 세로로 배치하여 display (on/off)
- \a : Column Align (on/off)
- \H : Column name과 결과 값을 HTML Table 형식으로 display (on/off)
2-6. Query 실행 시간 표시
각 쿼리를 수행할 때마다, 실행하는데 걸린 시간을 표시할 수 있습니다.
1
\timing
2-7. PSQL 종료
psql을 종료할 수 있습니다.
1
\q
마무리
위에서 소개한 psql 명령어 외에도, \? 커맨드를 입력하여 수많은 psql 명령어를 살펴보실 수 있습니다.
위 psql 명령어는 제가 직접 사용하면서 자주 사용한 커맨드를 정리한 내용입니다.
긴 글 읽어주셔서 감사합니다.
