본문 바로가기
프로그래밍/기타

자주 쓰는 psql 명령어 정리

by 왕거 2021. 10. 8.

psql 은 텍스트 기반의 PostgreSQL 관리 툴이다. PgAdmin을 쓸 수도 있지만 나는 터미널 환경에서 뭘 하는걸 좋아하다보니 psql을 사용하는 편이다.

보통 psql을 사용할 때에는 DB 인스턴스를 생성하거나 생성한 인스턴스에 저장된 데이터들을 확인하기 위한 목적으로 사용하고 있다.

실무에서는 AWS의 RDS서비스에 PostgreSQL을 올려서 사용하다보니 psql에서 DB 인스턴스를 만드는 과정은 그냥 넘기면 됐지만 로컬에서 실습 목적으로 프로젝트를 진행하다보니 인스턴스 생성 과정이 꼭 필요했다. 그리고 굳이 초기 세팅 단계가 아니더라도 인스턴스 선택이나 인스턴스의 정보 확인을 위해서 psql을 사용할 때마다 이전에 사용했던 명령어를 기억을 못해서 항상 찾아보고 난 후에 사용했었다.

그래서 자주 사용되는 psql의 명령어를 스크린샷과 함께 정리해보려고 한다.

 

PSQL 실행

  • PostgreSQL의 설치가 완료되면 psql도 사용할 수 있다. 기본적으로는 터미널에 psql만 입력해도 psql로 진입할 수 있다.
  • 로컬이 아닌 AWS 같은 클라우드 서비스의 DB 서비스에 연결하려 한다면 여러 옵션이 필요하다.
    • -h(--host) <HOSTNAME> : IP 주소나 도메인을 사용하여 접속 호스트를 지정한다.
    • -p(--port <PORT_NUM> : 접속할 호스트의 포트번호를 지정한다.
    • -u(--user) <USER_NAME> : 호스트의 PostgreSQL에 등록된 사용자 이름을 지정한다.

로컬에서 psql을 사용하는 예시

 

현재 PostgreSQL에 존재하는 모든 DB Instance 리스트를 확인

  • 최초에 psql을 실행할 때에 DB Instance의 이름을 지정함으로써 바로 특정 Instance와 연결할 수 있지만, Instance의 이름들을 확인해놓으면 다른 Instance에 연결하는데에 수월하다.
  • \l or \list 를 입력함으로서 모든 Instance의 정보를 리스트업, 두 명령어의 기능은 동일함.

전체 DB Instance 리스트업

 

사용할 DB Instance 와 연결

  • 처음 psql을 시작할 때 지정하지 않거나, 다른 Instance로 연결을 바꾸고 싶을 때 사용할 수 있는 명령어이다. 처음 실행 시에 Instance를 지정하지 않았다면 필수로 수행해야 한다.
  • \c or \connect <INSTANCE_NAME> : 지정한 Instance의 이름을 통해서 연결을 수행한다.

DB Instance와 연결에 성공
다른 DB Instance와 연결 변경

 

DB Instance와 연결 후 해당 Instance에 대한 정보 확인

  • 특정 Instance와 연결이 성공한 후에 해당 Instance에 대한 정보를 확인할 수 있는 명령어들이다. 테이블 정보, 사용자 목록등등을 제공한다. 보다 더 세부적인 명령어에 대한 힌트는 \? 를 입려하면 도움을 받을 수 있다.
  • 개인적으로는 아래의 명령어들 중에서 \dt가 가장 자주 사용되는 것 같다.
    • \dt : 현재 Instance에 있는 모든 Table 정보 확인
    • \ds : 현재 Instance에 있는 모든 Sequence 정보 확인
    • \df : 현재 Instance에 있는 모든 Function 정보 확인
    • \dv : 현재 Instance에 있는 모든 View 정보 확인
    • \du : 현재 Instance에 등록된 사용자 목록 확인

\dt 사용 예시

 

이후 테이블에 있는 정보 확인

  • 이제 이 단계에 해당하는 명령어는 딱히 없다고 보면 될 것 같다. SQL 규칙에 따른 SQL Query를 사용하면 각 테이블에 있는 정보를 확인할 수 있다.
  • SQL문을 직접 사용할 때에는 지금까지의 명령어들과는 다르게 ;(세미콜론)을 마지막에 꼭 붙여줘야 한다.
  • SQL문을 잘 모르겠다면 \h를 통해서 간단한 구성의 SQL문 예시를 확인할 수 있다.

base_case 테이블의 모든 컬럼 확인 SQL 예시

 

 

'프로그래밍 > 기타' 카테고리의 다른 글

JWT - 1  (0) 2022.03.02
CORS - 1  (0) 2022.02.18
Google의 Cloud Functions에 입문해보자  (0) 2021.04.01