[PostgreSQL] psql 명령어

배배·2024년 4월 22일

PostgreSQL

목록 보기
3/6

📌 PostgreSQL 명령어



🔍 PSQL 옵션(OS Level)


접속 옵션

  • -d: 데이터베이스명

  • -h: 호스트 또는 IP

  • -p: 포트

  • -U: 사용자계정

  • -w: 패스워드 없이 접속

  • -W: 패스워드 확인

  • 예시

 --DB접속
 psql -h localhost -p 5432 -U dbadmin -d testdb

 --패스워드 확인
 psql -d testdb -U dbadmin -W

 --스크립트수행
 psql -h localhost -p 5432 -U dbadmin -d testdb -f /work_dir/psqltest/test_script/insert_test.sql -X -b &>> /work_dir/psqltest/test_script/log/test_result.log

 --스크립트 여러개
 find /home/testuser/work_dir/psqltest/ -name "*.sql" -print0 | xargs --null -P 1 -I {} psql -U dbadmin -d testdb -h localhost -f {} >> complie.log

입출력 옵션

  • -a : 스크립트의 모든 입력 표시 (echo all)
  • -b : 실패한 명령들 출력 (echo error)- -e : 서버로 보낸 명령 표시 (echo-queries)
  • -E : 내부 명령이 생성하는 쿼리 표시 (echo-hidden)
  • -L, --log-file=FILENAME : 세션 로그를 파일로 보냄
  • -n : 확장된 명령행 편집 기능을 사용중지함(no readline)
  • -o, --output=FILENAME : 쿼리 결과를 파일(또는 |파이프)로 보냄
  • -q : 자동 실행(메시지 없이 쿼리 결과만 표시) (quiet)
  • -s : 단독 순차 모드(각 쿼리 확인) (single-step)
  • -S : 한 줄 모드 (줄 끝에서 SQL 명령이 종료됨) (single-line)
  • -t : row만 출력 (tuples-only)

기타 옵션

  • -X : psql구성 파일(사용자 ~/.psqlrc파일과 시스템 전체 psqlrc파일 모두) 을 읽지 않도록 강제함 (--no-psqlrc)

  • 참고사항

    • .psqlrc : psql의 사용자 기본 구성 파일
    • bashrc와 비슷하게 psql 사용 시 환경을 셋팅함
  
  \set QUIET 1
  \timing
  \set ON_ERROR_ROLLBACK interactive
  \set VERBOSITY verbose
  \set HISTFILE ~/.psql_history- :DBNAME
  \set HISTCONTROL ignoredups
  \set COMP_KEYWORD_CASE upper
  \pset null [null]
  \unset QUIET
  \setenv PAGER 'more'



🔍 PSQL 명령어

DB 메타정보

  • 명령어 뒤에 (+)로 더 많은 정보를 볼 수 있음. 예시)\dt+ it_uitem_m
  • \l : 데이터베이스 정보
  • \c : 접속정보
  • \dn : 스키마 정보
  • \du : 유저 정보
  • \d(+) {table} : 테이블, 인덱스, 시퀀스, 뷰 정보
  • \dt : 테이블 정보
  • \di : 인덱스 정보
  • \ds : 시퀀스 정보
  • \dv : 뷰 테이블 정보
  • \dS : 시스템 테이블 정보 포함
  • \db : Tablespace 정보
  • \dx : 데이터베이스에 설치된 모든 extention 정보
  • \dp(+) : 오브젝트 권한 정보
  • \ddp(+) : 오브젝트 default 권한 정보
  • \det(+) : foreign 테이블 정보
  • \des(+) : foreign server 정보
  • \deu(+) : foreign server mapping 정보
  • \dew(+) : foreign data wrapper
  • \drds : 유저 setting 값 (search)

SET 명령어

  • \set AUTOCOMMIT [on, off] : AUTOCOMMIT 설정
  • \pset pager [on, off, more]: 페이지 설정

기타 명령어

  • show search_path; : 현재 접속 user의 search_path 출력
  • show {parameter}; : 파라미터 값 출력
  • \watch 1 : 쿼리 하단에 추가하여 1초마다 해당 쿼리를 수행
  • \c {database} {user} : 다른 데이터베이스에 지정한 유저로 접속
  • \o test.log : test.log에 결과 값을 전송 (spool test.log와 동일) , 결과값만 표시
  • \o : 결과값 전송을 중지 (spool off)
  • \echo :AUTOCOMMIT : 출력
  • \timing [on, off] : 수행시간 출력
  • \t [on, off] : 결과 row만 출력
  • \s: 실행한 명령어 히스토리
  • \s filename: 실행한 명령어 히스토리를 특정 파일로 저장
  • \e: 쿼리를 편집 한 후 실행
  • \e filename: 특정 파일에 쿼리를 저장 후 실행
  • \w filename: 특정 파일에 쿼리 저장
  • \o filename: 특정 파일에 실행 결과 저장
  • \i filename: 파일 실행
  • \g : 이전 쿼리 실행
  • \s : 쿼리 history
  • \q: 종료하기
  • \copy TABLE_NAME to 'location/file_name' delimiter '|' csv header; : 테이블 csv로 export



🌟 REF

profile
데이터 엔지니어

0개의 댓글