PostgreSQL 교재 · 2편 / 24편

psql — 첫 접속과 핵심 명령 10개

psql 만 잘 다뤄도 DB 작업 속도가 두 배. 매일 쓰는 단축 명령 10개를 정리.

입문읽는 시간 6분2026-05-16
검은 터미널에 psql 명령 \l 과 \dt 가 결과 표와 함께 보이는 화면

1편에서 psql -d postgres 로 접속까지 했다면, 2편은 "psql 안에서 자주 쓰는 단축 명령" 을 정리합니다. SQL 표준이 아닌, psql 만의 편의 기능 — 그래서 \(역슬래시) 로 시작하고 메타 커맨드(meta command) 라고 부릅니다.

psql 접속 — 4가지 방법

# 1. 우분투 (postgres OS 사용자로 전환)
sudo -u postgres psql

# 2. 특정 데이터베이스로
psql -d mydb

# 3. 사용자·호스트·포트 지정 (원격 서버 등)
psql -h db.example.com -p 5432 -U myuser -d mydb
# 비밀번호 묻는 프롬프트 뜸

# 4. 도커 컨테이너 안의 psql
docker exec -it pg-learn psql -U postgres

접속 성공의 신호는 프롬프트가 db이름=#(슈퍼유저) 또는 db이름=>(일반 사용자) 로 바뀌는 것입니다.

매일 쓰는 메타 커맨드 10개

명령의미자주 쓰는 상황
\l데이터베이스 목록어떤 DB 가 있나 확인
\c dbnameDB 전환다른 DB 로 바꾸기 (재로그인 없이)
\dt테이블 목록 (현재 DB)"무슨 테이블 있더라?"
\d tablename테이블 컬럼·인덱스 상세스키마 확인 — 매번 씀
\du사용자(역할) 목록권한 확인
\dn스키마 목록멀티 스키마 환경
\timing쿼리 실행 시간 표시 토글성능 확인할 때
\x결과 형식 가로↔세로 토글컬럼 많을 때 (jsonb 등)
\?메타 커맨드 도움말잊었을 때 — 셀프 컨닝페이퍼
\qpsql 종료나갈 때 (Ctrl+D 도 OK)

다섯 번째 줄까지만 외워도 일주일이 편해집니다. 나머지는 "이런 게 있다" 만 기억하고 필요할 때 \? 로 찾으면 됩니다.

실전 — 첫 테이블 만들고 \d 로 살펴보기

postgres=# CREATE TABLE users (
  id     SERIAL PRIMARY KEY,
  name   TEXT NOT NULL,
  email  TEXT UNIQUE,
  joined TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE

postgres=# \dt
         List of relations
 Schema | Name  | Type  |  Owner
--------+-------+-------+----------
 public | users | table | postgres

postgres=# \d users
                                    Table "public.users"
 Column |           Type           | Collation | Nullable |              Default
--------+--------------------------+-----------+----------+------------------------------------
 id     | integer                  |           | not null | nextval('users_id_seq'::regclass)
 name   | text                     |           | not null |
 email  | text                     |           |          |
 joined | timestamp with time zone |           |          | now()
Indexes:
    "users_pkey" PRIMARY KEY, btree (id)
    "users_email_key" UNIQUE CONSTRAINT, btree (email)

\d users 가 컬럼·기본값·인덱스·제약을 한 화면에 보여줍니다. 실무에서 가장 많이 치는 명령 중 하나입니다.

결과 형식 바꾸기 — \x 와 \pset

컬럼이 많거나 jsonb 가 길어서 한 줄에 안 들어갈 때, \x 로 세로 모드(expanded) 로 토글합니다.

postgres=# \x
Expanded display is on.

postgres=# SELECT * FROM users LIMIT 1;
-[ RECORD 1 ]-----------------------------
id     | 1
name   | 준성
email  | [email protected]
joined | 2026-05-16 22:50:00+09

출력 형식은 \pset format 으로도 바꿉니다 — aligned(기본), unaligned(파이프 |), csv, html 등. CSV 로 빼고 싶을 때 유용합니다.

postgres=# \pset format csv
postgres=# SELECT id, name FROM users;
id,name
1,준성
2,홍길동

스크립트 실행 — \i 와 외부 SQL 파일

여러 줄의 SQL 을 파일로 만들어 두고 한 번에 실행할 수 있습니다.

# schema.sql 파일을 미리 작성

postgres=# \i schema.sql
# 파일 안의 모든 SQL 이 차례로 실행

tip. 마이그레이션·시드 데이터 등 반복할 작업은 SQL 파일로 만들어 git 에 넣으세요. \i 한 번이면 어디서나 같은 상태로 재현됩니다. 20·22편(백업·파티셔닝) 에서 다시 활용.

주의 — \! 와 OS 명령. psql 안에서 \! 뒤에 OS 명령을 칠 수 있습니다 (예: \! ls). 편하지만 슈퍼유저 psql 에서 실수로 위험한 명령이 그대로 OS 에 떨어집니다. 운영 DB 에서는 가급적 피하기.

3편 — 데이터베이스·스키마·테이블 만들기

CREATE DATABASE / SCHEMA / TABLE, 명명 규칙, DROP 의 주의점. psql 위에서 본격적으로 구조를 잡습니다.

📚 PostgreSQL 배우기 교재
이전: 1편 설치 · 현재: 2편 (입문) · 다음 → 3편 DB·스키마·테이블 · 진행: 2/24

© 2026 주나이테크(주) @JUNAITECH