psql 명령어 사용법을 정리해 보겠습니다.
# ================================================
# psql 역슬래시 명령어
# ================================================
# psql 실행
=# help // help 조회
=# \q // psql 종료 (Ctrl+d)
=# \h // DDL, DML 조회
=# \? // help
명령 |
설명 |
\l |
database 조회 |
\d |
테이블, 인덱스, 시퀀스, 뷰 목록 |
\d {table_name} |
특정 테이블 정보 보기 |
\du |
롤(사용자) 목록 |
\dn |
db schema 리스트 조회 |
\dS |
시스템테이블 목록 |
\dv |
뷰 목록 |
\ds |
시퀀스 목록 |
\dl |
DB 목록 |
\dn |
스키마 목록 |
\db |
테이블스페이스 목록 |
\c {db_name} |
다른 DB에 접속 |
\c {db_name} {user_name} |
다른 DB에 지정된 사용자로 접속 |
\x |
vertical print |
\! |
\!만 입력하면 Shell로 빠짐 (exit로 다시 원복) |
# ================================================
# 계정 및 DB 생성
# ================================================
계정(test), 비밀번호(test), DB(test_db) 생성하기
postgres-# CREATE ROLE test LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
postgres=# ALTER ROLE test WITH PASSWORD 'test';
postgres=# CREATE DATABASE "test_db" WITH OWNER = test ENCODING = 'UTF8' template = template0;
# ================================================
# 샘플 테이블 스키마
# ================================================
CREATE TABLE test_table (
id SERIAL PRIMARY KEY,
title TEXT
);
postgres=# INSERT INTO test_table values(1, 'test');
INSERT 0 1
postgres=# \d
List of relations
Schema | Name | Type | Owner
--------+-------------------+----------+----------
public | test_table | table | postgres
public | test_table_id_seq | sequence | postgres
(2 rows)
postgres=# select * from test_table;
id | title
----+-------
1 | test
# ================================================
# psql 유용한 명령어
# ================================================
# 버전 표시
=# SELECT VERSION();
# postgres DB에 접속
=# psql -U username -d database
# 지정한 비밀번호로 접속
ex) PGPASSWORD={PASSWORD} psql -U {USER}
=# PGPASSWORD=postgres psql -U postgres
# psql에서 query 실행
=# psql -U username -d database -c 'select * from test'
# psql에서 .sql 파일에 저장된 쿼리 실행
=# psql -U username -d database -a -f test.sql
=# psql -U username -d database < test.sql
# 원격 서버의 postgres 접속
=# psql -h 10.10.10.10 -U username -d database
# 참고 사이트
http://kb.globalsoft.co.kr/web/web_view.php?notice_no=245
http://blog.naver.com/PostView.nhn?blogId=alice_k106&logNo=220847310053