PostgreSQL의 스키마, 테이블, 컬럼 완전 쉽게 이해하기
잡학다식의 지식공방

IT/[SQL] Basic

PostgreSQL의 스키마, 테이블, 컬럼 완전 쉽게 이해하기

carpe08 2025. 4. 9. 15:20
320x100

데이터베이스를 처음 접하거나, PostgreSQL을 사용하면서 "스키마가 뭐지?", "컬럼이랑 테이블은 또 뭐가 다르지?"라는 생각이 들었다면 이 글이 도움이 될 거예요. 지금부터 정말 쉽게 설명해드릴게요!


1. 스키마(Schema)란?

쉽게 말해, 스키마는 데이터베이스 안의 폴더라고 생각하면 됩니다. 한 데이터베이스 안에 여러 개의 스키마가 있을 수 있어요. 각각의 스키마 안에는 테이블, 뷰, 함수 등 다양한 객체들이 들어 있습니다.

📦 예시:

  • public 스키마: PostgreSQL에서 기본으로 제공하는 스키마
  • sales, marketing 등의 이름으로 스키마를 만들어 부서별로 데이터를 나눌 수도 있어요.

🧠 스키마는 네임스페이스 역할을 합니다. 같은 이름의 테이블이라도 다른 스키마 안에서는 공존할 수 있어요.


2. 테이블(Table)이란?

테이블은 엑셀처럼 데이터를 저장하는 표입니다. 행(Row)과 열(Column)로 이루어져 있어요.

📋 예시

  • customer 테이블: 고객 정보를 저장
  • order 테이블: 주문 내역을 저장

한 테이블은 여러 개의 컬럼을 가지고, 데이터는 행 단위로 쌓입니다.


3. 컬럼(Column)이란?

컬럼은 테이블의 속성(열) 정보를 말합니다. 엑셀의 세로줄이라고 보면 돼요.

📌 예시 (customer 테이블 기준):

  • customer_id: 고객 ID
  • name: 고객 이름
  • email: 이메일 주소

컬럼마다 데이터 타입이 있고, NULL 허용 여부, 최대 길이 등 다양한 설정이 존재합니다.


4. PostgreSQL에서 테이블 컬럼 정보 조회하기

PostgreSQL에서는 information_schema.columns라는 시스템 뷰를 통해 테이블의 컬럼 정보를 조회할 수 있습니다.

🧾 자주 쓰는 컬럼 정보:

  • column_name: 컬럼 이름
  • data_type: 데이터 타입 (integer, varchar 등)
  • is_nullable: NULL 허용 여부 ('YES' or 'NO')
  • character_maximum_length: 문자열 최대 길이

SQL 예제

SELECT 
    column_name, 
    data_type, 
    is_nullable, 
    character_maximum_length
FROM information_schema.columns 
WHERE table_schema = 'AAAA'  -- 스키마 이름
  AND table_name = 'BBBB';   -- 테이블 이름

이 쿼리를 실행하면 특정 테이블의 컬럼 정보를 한눈에 볼 수 있어요.


5. 언제 유용할까?

  • 데이터 분석 전에 테이블 구조 파악할 때
  • ETL 파이프라인 설계할 때
  • 스키마 문서화할 때
  • 컬럼 기반 자동화 스크립트 작성할 때 등

컬럼 정보를 미리 파악해두면 에러를 줄이고, 업무 효율이 훨씬 올라갑니다 💡


✅ 결론

  • 스키마는 데이터의 폴더
  • 테이블은 데이터가 들어있는 표
  • 컬럼은 표의 속성(열)

PostgreSQL에서는 information_schema.columns를 이용해 이 정보를 쉽게 조회할 수 있으니, 꼭 기억해두세요!

📚 데이터는 구조를 아는 순간부터 진짜 힘을 발휘합니다!

320x100
320x100