PSQL 주요 Command
여러 DB Instance들이 있고, 정보를 조회나 Query 실행 대상 DB Instance를 변경할 때 사용한다.
사용법
\c [DB Name] [Connection User}
사용예
...
# Database Instance 'messenger'에 user 'user'로 접속
postgres=# \c messenger user
You are now connected to database "messenger" as user "user".
...
# Database Instance 'postgres'에 user 'postgres'로 접속
messenger=# \c postgres postgres
You are now connected to database "postgres" as user "postgres".
postgres=#
현재 접속한 DB에서 여러 목록 정보를 조회(단, \list, \du는 접속한 DB와 무관하게 동작)할 때 사용한다. Command 별로 조회되는 목록은 다음과 같다.
- \list(or \l) : 전체 Database Instance 목록
- \dt : 접속한 DB Instance의 Table 목록
- \ds : Sequence 목록
- \df : Function 목록
- \dv : View 목록
- \du : User 목록
위 명령 외에도 여러가지가 더 있지만 크게 사용하지 않아 따로 언급하지 않았다. (예를 들면 \dn은 Schema 목록, \di는 Index 목록 조회시 사용한다. \?를 통해 추가 명령어들을 조회할 수 있다.)
'\list' 사용예 ; 전체 DB Instance list 조회
messenger=# \list
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+-------+----------+------------+------------+------------+-----------------+-------------------
board | user | UTF8 | en_US.utf8 | en_US.utf8 | | libc |
messenger | user | UTF8 | en_US.utf8 | en_US.utf8 | | libc |
postgres | user | UTF8 | en_US.utf8 | en_US.utf8 | | libc |
template0 | user | UTF8 | en_US.utf8 | en_US.utf8 | | libc | =c/user +
| | | | | | | user=CTc/user
template1 | user | UTF8 | en_US.utf8 | en_US.utf8 | | libc | =c/user +
| | | | | | | user=CTc/user
user | user | UTF8 | en_US.utf8 | en_US.utf8 | | libc |
(6 rows)
'\dt' 사용예 ; 현재 접속한 DB Instance의 Table list 조회
messenger=# \dt
List of relations
Schema | Name | Type | Owner
--------+---------+-------+-------
public | account | table | user
(1 row)
'\ds' 사용예 ; 현재 접속한 DB Instance의 Sequence list 조회
messenger=# \ds
List of relations
Schema | Name | Type | Owner
--------+----------------+----------+-------
public | account_id_seq | sequence | user
(1 row)
'\df' 사용예 ; 현재 접속한 DB Instance의 Function list 조회
...
messenger=# \df
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+--------+------------------+----------------------+------
public | fn_sum | integer | a integer, b integer | func
(1 row)
'\du' 사용예 ; User list 조회
messenger=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
mins | | {}
user | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
그리고, 이 Command들은 모두 뒤에 '+'를 붙혀서 상세 정보를 추가할 수 있다. 추가되는 상세 정보 항목들은 Command별로 약간씩 다르다. 아래는 상세 정보를 포함한 Table 목록 조회의 예이다.
'\dt+' 사용예
messenger=# \dt+
List of relations
Schema | Name | Type | Owner | Persistence | Access method | Size | Description
--------+---------+-------+-------+-------------+---------------+------------+-------------
public | account | table | user | permanent | heap | 8192 bytes |
(1 row)
사용법
\d [table name]
사용예 ; 'messenger' DB에 있는 'account' table 정보 조회
messenger=# \d account
Table "public.account"
Column | Type | Collation | Nullable | Default
----------+------------------------+-----------+----------+-------------------------------------
id | integer | | not null | nextval('account_id_seq'::regclass)
username | character varying(255) | | |
password | character varying(255) | | |
Indexes:
"account_pkey" PRIMARY KEY, btree (id)
- \g : 방금 전에 실행했던 명령어를 실행. (
- \s : 이전에 실행했던 명령어 전체 List 조회.
'\g' 사용예 : 별다른 Query문 없이 이전에 실행한 Query와 동일한 Query가 실행된다.
...
messsenger=# SELECT account;
account
--------
11
(1 row)
messsenger=# \g
account
--------
11
(1 row)
'\s' 사용예 : 이전에 실행 내역 전체 나열. 예에서는 마지막 2개의 실행 내역 포함해서 전체를 나열.
messenger=# \s
db
/list
/list
\list
create database messenger;
create db messenger;
CREATE DATABASE messenger;
\db
\list
\dt
\c messenger user
\dt
\d account
\list
\dt
\ds
\df
\du
\dt+
--More--
- \h : SQL command 관련 도움말
- \? : psql Command 관련 도움말
'\?' 사용예
...
messenger=# \?
General
\copyright show PostgreSQL usage and distribution terms
\crosstabview [COLUMNS] execute query and display results in crosstab
...
\lo_list
\lo_unlink LOBOID large object operations
...
'\h' 사용예
...
messenger=# \h
Available help:
ABORT ALTER TEXT SEARCH TEMPLATE CREATE PUBLICATION DROP FUNCTION IMPORT FOREIGN SCHEMA
ALTER AGGREGATE ALTER TRIGGER CREATE ROLE DROP GROUP INSERT
ALTER COLLATION ALTER TYPE CREATE RULE DROP INDEX LISTEN
...
ALTER TABLE CREATE OPERATOR DROP DOMAIN END UPDATE
ALTER TABLESPACE CREATE OPERATOR CLASS DROP EVENT TRIGGER EXECUTE VACUUM
ALTER TEXT SEARCH CONFIGURATION CREATE OPERATOR FAMILY DROP EXTENSION EXPLAIN VALUES
ALTER TEXT SEARCH DICTIONARY CREATE POLICY DROP FOREIGN DATA WRAPPER FETCH WITH
ALTER TEXT SEARCH PARSER CREATE PROCEDURE DROP FOREIGN TABLE GRANT
psql에서 shell command를 실행할 때 사용한다. 주로 화면을 지우거나 '\i', '\e' command를 위해 현재 경로에 있는 파일 List를 조회하거나 Path를 변경할 때 사용한다. (!뒤에 한 칸의 공백이 있음을 유의하자)
사용법
\! [shell command]
ex)
\! clear : 화면 Clear
\! pwd : 현재 경로 확인
\! ls : 현재 경로의 파일 확인
\! cd [Path] : [Path]로 경로 이동
'\q' 사용예
...
messenger=# \q
[user@localhost ~]#
...
Reference
'프로그래밍 > ETC' 카테고리의 다른 글
[기술면접] TCP/UDP 의 차이 (0) | 2024.01.11 |
---|---|
Mac M1 에서 Jmeter 설치하고 테스트하기 (4) | 2024.01.10 |
[기술면접] SQL, NoSQL 장단점 (0) | 2024.01.05 |
[JaCoCo] Springboot3.x.x 설정 및 커버리지 확인하기 (1) | 2023.12.04 |
[Nginx] SSE 통신할 때, Connection Timeout.. (0) | 2023.11.14 |