📌 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)
기타 옵션
\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