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 명령어는 제가 직접 사용하면서 자주 사용한 커맨드를 정리한 내용입니다.
긴 글 읽어주셔서 감사합니다.