반응형
설치·접속: PostgreSQL 설치와 접속
부제: 컬럼·타입·인덱스·외래키까지 한 테이블의 설계를 통째로 확인한다
psql -d shop -c '\d' # 모든 객체(테이블·시퀀스 등) 목록
psql -d shop -c '\d orders' # orders 테이블의 상세 구조
psql -d shop -c '\d users_id_seq' # 시퀀스 같은 개별 객체도 가능
Table "public.orders"
Column | Type | Collation | Nullable | Default
------------+--------------------------+-----------+----------+------------------------------------
id | integer | | not null | nextval('orders_id_seq'::regclass)
user_id | integer | | |
product_id | integer | | |
qty | integer | | |
ordered_at | timestamp with time zone | | | now()
Indexes:
"orders_pkey" PRIMARY KEY, btree (id)
"idx_orders_user" btree (user_id)
Foreign-key constraints:
"orders_product_id_fkey" FOREIGN KEY (product_id) REFERENCES products(id)
"orders_user_id_fkey" FOREIGN KEY (user_id) REFERENCES users(id)\d는 psql의 describe 명령이다. 뒤에 객체 이름을 붙이면 그 테이블의 컬럼·타입·NULL 허용·기본값은 물론, 걸려 있는 인덱스와 외래키 관계까지 전부 펼쳐 보여준다. 남이 짜둔 스키마를 파악하거나 마이그레이션 전에 현재 구조를 확인할 때 가장 자주 쓴다. 이름 없이 그냥 \d만 치면 테이블·시퀀스·뷰를 아우른 전체 객체 목록이 나온다. 대소문자를 구분하려면 \d "MyTable"처럼 큰따옴표로 감싼다.
이렇게도 쓴다
인덱스와 저장 통계까지 더 자세히 본다. (+ 상세)
psql -d shop -c '\d+ orders'
이름 없이 치면 시퀀스를 포함한 전체 객체가 나온다.
psql -d shop -c '\d'
인덱스 하나만 콕 집어 정의를 확인한다.
psql -d shop -c '\d idx_orders_user'
특정 테이블의 인덱스만 골라 본다.
psql -d shop -c '\di orders*'
컬럼 이름만 뽑아 다른 명령에 넘긴다. (조합: information_schema + -At)
psql -d shop -Atc "SELECT column_name FROM information_schema.columns WHERE table_name='orders'"반응형
'명령어 > DB' 카테고리의 다른 글
| [PostgreSQL] \l 서버에 있는 데이터베이스 목록을 본다 (0) | 2026.07.30 |
|---|---|
| [PostgreSQL] \i SQL 파일을 실행한다 (0) | 2026.07.30 |
| [PostgreSQL] work_mem와 정렬 spill — 큰 ORDER BY가 디스크로 새는 순간 잡아내기 (0) | 2026.07.23 |
| [PostgreSQL] 윈도우 프레임 ROWS/RANGE BETWEEN으로 이동평균·누적합을 낸다 (0) | 2026.07.23 |
| [PostgreSQL] FOR UPDATE SKIP LOCKED 여러 워커가 같은 큐에서 안 겹치게 하나씩 집어간다 (0) | 2026.07.23 |