제4장: PostgreSQL 기초 – 데이터베이스와 테이블 생성하기
데이터베이스와 테이블의 이해
PostgreSQL을 활용하려면 데이터베이스와 테이블 개념부터 확실히 짚고 넘어가야 합니다. PostgreSQL에서 모든 데이터는 데이터베이스 안에 구조적으로 담깁니다. 데이터베이스는 여러 테이블과 그에 따른 다양한 객체를 포괄하는 논리적 공간이며, 각 테이블은 실제 정보를 행과 열 형태로 저장합니다. 데이터를 체계적으로 다루기 위해서는 먼저 새로운 데이터베이스와 테이블을 생성하고 관리하는 방법이 기본이 됩니다.
데이터베이스 만들기
PostgreSQL에서 새로운 데이터베이스를 만들려면 관리 권한이 필요합니다. 명령줄 환경에서는 다음과 같이 “CREATE DATABASE” 구문을 사용합니다.
CREATE DATABASE mydb;
이 명령은 “mydb”라는 이름의 데이터베이스를 생성합니다. 실제로는 기존 템플릿 데이터베이스(template1)를 복사하는 방식으로 동작하기 때문에, 항상 일정한 초기 상태에서 출발할 수 있습니다. 만약 콘솔에서 간편하게 생성하고 싶다면, 다음과 같이 createdb
명령어도 활용할 수 있습니다.
createdb mydb
시스템마다, 또는 개발 환경에 따라 pgAdmin 같은 그래픽 도구에서도 간단히 데이터베이스를 만들 수 있습니다. 이처럼 다양한 도구와 명령어를 제공하여 초보자도 쉽게 데이터베이스 구축이 가능합니다.
테이블 생성의 핵심
데이터베이스를 만들고 나면, 본격적으로 데이터를 담을 테이블을 설계해야 합니다. 테이블은 고정된 열(컬럼) 구조와, 가변적인 행(레코드) 집합으로 이루어져 있습니다. CREATE TABLE문을 사용해 필요한 정보 구조를 설계할 수 있습니다.
예를 들어, 사용자를 저장하는 테이블을 만든다면 아래와 같이 정의할 수 있습니다.
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
각 열마다 데이터 타입과 제약조건을 지정할 수 있습니다.
SERIAL
은 자동 증가하는 정수형을 의미하며, 주로 기본키로 사용됩니다.VARCHAR(n)
은 최대 n글자까지 허용하는 문자열 타입입니다.UNIQUE
와NOT NULL
은 데이터의 중복이나 누락을 방지합니다.DEFAULT
값으로 자동 날짜 입력이 가능합니다.
테이블 생성은 데이터 구조의 뼈대를 정하는 과정인 만큼 신중하게 설계해야 하며, 예측 가능한 데이터 흐름을 위해 제약 조건을 적극적으로 활용하는 습관이 중요합니다.
실습을 통한 감각 익히기
PostgreSQL에서는 위 쿼리들을 psql 인터페이스나 SQL 실행창에 직접 입력하며 이해를 높일 수 있습니다. 이 과정에서 에러 메시지가 발생하면 메시지를 해석하고 원인을 찾아 수정하는 과정도 자연스럽게 익히게 됩니다. 데이터베이스와 테이블의 생성은 가장 기초적이지만, 실무 데이터 관리의 필수 절차이니 반복적으로 연습해보는 것이 중요합니다.
마치며
PostgreSQL의 손쉬운 데이터베이스와 테이블 생성 기능은 데이터 설계와 관리의 시작점입니다. 데이터의 성격에 맞게 구조를 정의하고, 다양한 도구와 명령어로 손쉽게 구현하는 기본기를 반드시 다져두어야 모든 데이터베이스 작업의 기반이 견고해집니다.


