본문 바로가기

개발/postgresql

PostgreSQL 기본 클라이언트 psql 사용

psql 쉘 옵션

[root@linux root]# psql --help 
This is psql 7.4.1, the PostgreSQL interactive terminal. 
 
Usage: 
  psql [OPTIONS]... [DBNAME [USERNAME]] 
 
General options: 
  -d DBNAME       specify database name to connect to (default: "root") 
  -c COMMAND      run only single command (SQL or internal) and exit 
  -f FILENAME     execute commands from file, then exit 
  -l              list available databases, then exit 
  -v NAME=VALUE   set psql variable NAME to VALUE 
  -X              do not read startup file (~/.psqlrc) 
  --help          show this help, then exit 
  --version       output version information, then exit 
 
Input and output options: 
  -a              echo all input from script 
  -e              echo commands sent to server 
  -E              display queries that internal commands generate 
  -q              run quietly (no messages, only query output) 
  -o FILENAME     send query results to file (or |pipe) 
  -n              disable enhanced command line editing (readline) 
  -s              single-step mode (confirm each query) 
  -S              single-line mode (end of line terminates SQL command) 
 
Output format options: 
  -A              unaligned table output mode (-P format=unaligned) 
  -H              HTML table output mode (-P format=html) 
  -t              print rows only (-P tuples_only) 
  -T TEXT         set HTML table tag attributes (width, border) (-P tableattr=) 
  -x              turn on expanded table output (-P expanded) 
  -P VAR[=ARG]    set printing option VAR to ARG (see \pset command) 
  -F STRING       set field separator (default: "|") (-P fieldsep=) 
  -R STRING       set record separator (default: newline) (-P recordsep=) 
 
Connection options: 
  -h HOSTNAME     database server host or socket directory (default: "local socket") 
  -p PORT         database server port (default: "5432") 
  -U NAME         database user name (default: "root") 
  -W              prompt for password (should happen automatically) 
 
For more information, type "\?" (for internal commands) or "\help" 
(for SQL commands) from within psql, or consult the psql section in 
the PostgreSQL documentation. 
 
Report bugs to <pgsql-bugs@postgresql.org>. 
 
-d DBNAME 사용할 DB를 선택한다 (기본적으로 사용자의 ID이다. 이 문서에서는 root
-c COMMAND -c "SQL" 형식으로 한개의 쿼리만을 처리한 후 종료한다.
-f FILENAME 파일 내의 SQL을 처리한 후 종료한다.
-l DB의 목록을 표시한 후 종료한다. (psql 사용시 \l 과 동일)
-h HOSTNAME 원격 호스트로 접속한다. (pg_hba.conf 에 대한 문서는 나중에..)
-p POST pgsql 서버의 포트
-U NAME 접근할 사용자 이름
  • 대충 이정도가 그나마 많이 사용되는 옵션이다. 자세한 내용은 --help 하면 나옵니다


많이 사용되는 명령어

\d 테이블, 인덱스, 시퀀스, 뷰의 목록이 표시된다. (\d+ 하면 각 테이블의 코멘트가 표시된다.)
\dt {TABLENAME} 테이블 목록이 표시된다. (\dt+ 하면 각 테이블과 필드의 코멘트가 표시된다.)
\di {INDEXNAME} 인덱스 목록이 표시된다. (\di+ 하면 각 인덱스의 코멘트가 표시된다.)
\ds {SEQUENCENAME} 시퀀스 목록이 표시된다. (\ds+ 하면 각 시퀀스의 코멘트가 표시된다.)
\dv {VIEWNAME} 뷰 목록이 표시된다. (\dv+ 하면 각 뷰와 필드의 코멘트가 표시된다.)
\dn {SCHEMANAME} 스키마 목록이 표시된다. (최근에 추가된 개념이다. 오라클의 네임스페이스와 비슷하다.)
\du {USERNAME} 사용자 목록이 표시된다.
\l DB 목록이 표시된다. (\l+ 하면 각 DB의 코멘트가 표시된다.)
\i FILENAME 파일 내의 SQL을 처리한다.
\c DBNAME {USERNAME} 다른 DB에 접속한다. 사용자 이름을 바꿔 접속 할 수 있다.
\q 종료 (중요하다. 처음에 몰라서 버벅댔다. 참고로 컨트롤C 안먹는다 -_-;)


일반
  \c[onnect] [DBNAME|- USER|- HOST|- PORT|-]
                 새 데이터베이스로 접속 (현재: "gsimplexi")
  \cd [DIR]      현재 작업 디렉토리를 바꿈
  \copyright     PostgreSQL 사용 배포 규약을 보여줌
  \encoding [ENCODING]
                 클라이언트 인코딩을 보거나 지정
  \h [NAME]      NAME SQL 명령어 도움말을 보여줌, 모든 명령어: *
  \prompt [TEXT] NAME
                 prompt user to set internal variable
  \password [USERNAME]
                 securely change the password for a user
  \q             psql 마침
  \set [NAME [VALUE]]
                 내장 변수를 지정, 또는 인자가 없으면 보기
  \timing        명령 실행 시간 보이기 (현재 꺼짐)
  \unset NAME    내장변수(internal variable) 해제
  \! [COMMAND]   쉘 명령 실행

쿼리 버퍼
  \e 파일이름    현저 쿼리 버퍼나 지정한 파일을 외부 편집기로 편집함
  \g [FILE]      쿼리 버퍼 내용을 서버로 보내고 ([FILE]에 그 결과값을 쓰거나| 파이프로 보냄
  \p             현재 쿼리 버퍼의 내용을 보여줌
  \r             쿼리 버퍼 초기화 (모두 지움)
  \s [FILE]      history 나 [FILE]에 저장된 history 보여줌
  \w FILE        현재 쿼리 버퍼 내용을 FILE 파일로 씀

입력/출력
  \echo [STRING] 표준출력으로 지정한 STRING 출력
  \i FILE        지정한 FILE 파일로부터 명령 실행
  \o FILE        모든 쿼리 결과를 지정한 FILE 파일로 보냄, 또는 |파이프로
  \qecho [STRING]
                 퀴리 출력 스트림에 [STRING] 씀 (\o 명령 참조)

정보보기
  \d [NAME]     table, view, index, sequence 정보 보기
  \d{t|i|s|v|S} [PATTERN] ("+" 추가하면 보다 자세히)
                 tables/indexes/sequences/views/system tables 목록 보기
  \da [PATTERN]  통계 함수들 목록
  \db [PATTERN]  테이블스페이스 목록 ("+" 추가하면 보다 자세히)
  \dc [PATTERN]  문자코드변환규칙(converson) 목록
  \dC            형변환자 목록
  \dd [PATTERN]  객체를 위한 코멘트 보기
  \dD [PATTERN]  도메인 목록
  \df [PATTERN]  함수 목록 ("+" 추가하면 보다 자세히)
  \dF [PATTERN]  list text search configurations (add "+" for more detail)
  \dFd [PATTERN] list text search dictionaries (add "+" for more detail)
  \dFt [PATTERN] list text search templates
  \dFp [PATTERN] list text search parsers (add "+" for more detail)
  \dg [PATTERN]  그룹 목록
  \dn [PATTERN]  스키마 목록 ("+" 추가하면 보다 자세히)
  \do [NAME]     연산자 목록
  \dl            large object 목록, \lo_list 명령과 같음
  \dp [PATTERN]  테이블,뷰,시퀀스의 접근 권한 목록
  \dT [PATTERN]  자료형 목록 ("+" 추가하면 보다 자세히)
  \du [PATTERN]  사용자 목록
  \l             모든 데이터베이스 목록("+" 추가하면 보다 자세히)
  \z [PATTERN]   테이블, 뷰, 시퀀스 접근권한 목록 (\dp 명령과 같음)

출력양식
  \a             출력물 정렬 형태를 전환함
  \C [STRING]    테이블 제목을 지정함, STRING 값이 없으면 제목 지움
  \f [STRING]    필드 구분자를 STRING으로 지정함
  \H             HTML 출력 모드 전환 (현재 꺼짐)
  \pset NAME [VALUE]
                 테이블 출력 속성 지정
                 (NAME := {format|border|expanded|fieldsep|footer|null|
                 numericlocale|recordsep|tuples_only|title|tableattr|pager})
  \t             테이블 필드명 보이기 전환 (현재 꺼짐)
  \T [STRING]    HTML <table> 태그 속정 지정, 없으면 지움
  \x             확장된 출력 모드 전환 (현재 꺼짐)

Large object 복사
  \copy ...      SQL COPY 명령과 같음
  \lo_export LOBOID FILE
  \lo_import FILE [COMMENT]
  \lo_list
  \lo_unlink LOBOID    large object 처리명령들

'개발 > postgresql' 카테고리의 다른 글

PostgreSQL 설치  (0) 2012.01.12