반응형

데이터베이스 조작 예제 💾
게시판 테이블 만들고 데이터 입력하기

여러분, "게시판 테이블을 직접 만들어 보고, 데이터를 손으로 넣어본 경험" 있으신가요? 직접 해보면 SQL이 훨씬 재밌어집니다!

 

 

안녕하세요!

데이터베이스를 처음 배우거나 실무에 막 발을 들인 분들께 도움이 될 만한 실습 예제를 준비했어요.

오늘은 가장 많이 쓰이는 예제 중 하나인 "게시판 테이블 생성과 데이터 입력"을 다뤄볼 거예요.

테이블 설계부터 SQL 문 작성, 실제 데이터 삽입까지 모든 과정을 친절하게 설명드릴게요.

복잡한 개념은 최소한으로 줄이고, 예제 중심으로 구성했으니 초보자도 걱정하지 마세요!

그럼 천천히 따라오시면서 직접 실습해보세요. 😊

1. 게시판 테이블 설계 🛠️

게시판을 만든다고 하면 제일 먼저 떠오르는 건 무엇일까요?

바로 "게시글을 저장할 공간"이죠.

이 공간은 데이터베이스에서 "테이블"이라는 형태로 구현돼요.

게시판 테이블을 만들기 전에, 어떤 데이터를 저장해야 할지 먼저 설계해보는 게 중요해요.

이걸 잘 해두면 나중에 확장하거나 기능을 붙일 때 훨씬 수월하거든요.

📋 어떤 컬럼이 필요할까?

  • id - 게시글 번호 (자동 증가, 기본 키)
  • title - 게시글 제목
  • content - 게시글 본문 내용
  • writer - 작성자 이름
  • created_at - 작성일시 (기본값 CURRENT_TIMESTAMP)

📊 테이블 구조 미리보기

컬럼명 데이터 타입 제약 조건 설명
id INT PRIMARY KEY, AUTO_INCREMENT 고유 게시글 번호
title VARCHAR(100) NOT NULL 게시글 제목
content TEXT NOT NULL 게시글 내용
writer VARCHAR(50) NOT NULL 작성자 이름
created_at DATETIME DEFAULT CURRENT_TIMESTAMP 작성 시간

이제 어떤 테이블을 만들어야 할지 확실히 감이 오셨죠?

 

다음 단계에서는 이 설계대로 실제 SQL 문장을 작성해서 게시판 테이블을 직접 만들어볼게요!

 

 

2. CREATE TABLE로 테이블 만들기 ✍️

자, 이제 우리가 설계한 게시판 테이블을 진짜로 만들어볼 차례입니다.

이럴 때 사용하는 SQL 명령어가 바로 CREATE TABLE이에요.

먼저 구조를 이해하고, 바로 실습해볼 수 있도록 순서대로 안내드릴게요.

복잡하지 않으니 걱정 마세요.

하나하나 따라오면 금방 끝납니다!

🧾 기본 SQL 문법 설명

CREATE TABLE board (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(100) NOT NULL,
    content TEXT NOT NULL,
    writer VARCHAR(50) NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

위 코드를 보면 board라는 이름의 테이블을 만들고 있고, 각 컬럼의 타입과 제약 조건을 함께 정의하고 있어요.

한 줄씩 해석해 볼게요:

  • id INT AUTO_INCREMENT PRIMARY KEY : 고유번호 자동 증가 + 기본 키 지정
  • title VARCHAR(100) NOT NULL : 제목은 최대 100자, 빈칸 입력 금지
  • content TEXT NOT NULL : 긴 본문 저장 가능, 빈칸 불가
  • writer VARCHAR(50) NOT NULL : 작성자 이름, 50자 제한
  • created_at DATETIME DEFAULT CURRENT_TIMESTAMP : 현재 시간 자동 저장

💡 실전 팁: SQL 에러 방지

  • 세미콜론(;) 누락 주의! SQL 명령은 끝에 꼭 ; 붙이기
  • 컬럼명 오타 주의! 영문 오타 많아요...
  • 중복된 테이블명 있을 경우 DROP TABLE 먼저 실행

이제 SQL을 실행해보면 정말 테이블이 만들어질 거예요!

다음은 이 테이블에 실제로 데이터를 넣어보는 실습으로 넘어가볼게요 🙌

 

 

3. INSERT 문으로 데이터 입력하기 📥

게시판 테이블을 만들었으면 이제 본격적으로 데이터를 넣어봐야겠죠?

INSERT INTO 문은 데이터베이스에 새 행(row)을 추가할 때 사용하는 명령어예요.

입력 방법을 하나하나 실습하면서 확실히 익혀보죠!

✅ 기본 INSERT 구문 예시

INSERT INTO board (title, content, writer)
VALUES ('첫 번째 글입니다!', '이건 테스트 게시물의 본문입니다.', '홍길동');

보이시죠?

idcreated_at은 따로 입력하지 않았는데도 자동으로 들어갑니다.

그 이유는 id는 AUTO_INCREMENT, created_at은 기본값 CURRENT_TIMESTAMP로 설정했기 때문이에요.

🧪 실습용 샘플 데이터 더 넣어보기

INSERT INTO board (title, content, writer)
VALUES 
('두 번째 글입니다', '내용은 이렇게 다양하게 넣을 수 있어요.', '이순신'),
('세 번째 글도 있어요', '본문에 마크다운이나 HTML 태그가 들어갈 수도 있겠죠?', '강감찬'),
('DB 입력이 재밌어요!', 'INSERT 문 반복해보면 감 잡힙니다.', '유관순');

이렇게 한꺼번에 여러 개의 데이터를 넣을 수도 있어요.

VALUES 뒤에 괄호 묶인 데이터를 쉼표로 구분만 하면 됩니다.

실무에서도 이런 방식 자주 써요.

⚠️ 입력 시 주의사항

  • 문자열은 항상 작은 따옴표('')로 감싸야 합니다!
  • NULL 값을 허용하지 않는 칼럼은 반드시 값 입력 필요!
  • INSERT 전에 CREATE TABLE이 제대로 실행됐는지 꼭 확인!

이제 여러 개의 게시글이 잘 저장되었을 거예요.

다음으로 넘어가서 SELECT 문으로 데이터를 확인해보는 실습을 해볼게요.

진짜 저장이 잘 됐는지 직접 눈으로 확인하는 시간이죠!

 

 

4. 입력된 데이터 확인하기 🔍

데이터베이스에 데이터를 잘 넣었다면, 이제 그걸 눈으로 확인해봐야겠죠?

이럴 때 사용하는 명령어가 바로 SELECT입니다.

이 명령은 데이터를 조회할 때 사용돼요.

기본적인 형태부터 조건을 붙이는 방식까지 하나씩 익혀볼게요!

🔍 전체 데이터 조회하기

SELECT * FROM board;

이렇게 하면 board 테이블 안에 들어있는 모든 행(row)이 출력돼요.

각 게시글의 id, 제목, 내용, 작성자, 작성일시가 한눈에 보이겠죠?

DB 관리 도구나 터미널에서 직접 실행해보면 훨씬 와닿을 거예요.

🎯 특정 칼럼만 조회하기

SELECT title, writer FROM board;

모든 데이터를 볼 필요가 없을 땐 이렇게 필요한 컬럼만 골라서 조회할 수 있어요.

이건 실무에서 자주 쓰는 패턴이에요.

예를 들어

게시판 목록 페이지를 만들 때 제목과 작성자만 가져오면 딱 좋겠죠?

🔎 조건을 붙여서 조회하기 (WHERE)

SELECT * FROM board WHERE writer = '홍길동';

이 명령은 작성자가 '홍길동'인 게시글만 출력해줘요.

WHERE 조건은 SQL의 핵심 기능 중 하나인데, 이렇게 간단한 조건뿐만 아니라 숫자 비교, 날짜 비교, LIKE 검색 등도 가능합니다.

🧹 조회 결과 정렬하기 (ORDER BY)

SELECT * FROM board ORDER BY created_at DESC;

게시판에서 최신 글이 위에 나오도록 정렬하고 싶다면 ORDER BY를 사용하면 돼요.

DESC는 내림차순, ASC는 오름차순 정렬이에요.

기본은 오름차순이죠.

📌 자주 쓰는 SELECT 패턴 요약

용도 SQL 예시
모든 행 전체 보기 SELECT * FROM board;
제목만 보기 SELECT title FROM board;
작성자 조건 검색 SELECT * FROM board WHERE writer = '이순신';
최신순 정렬 SELECT * FROM board ORDER BY created_at DESC;

SELECT 문은 데이터베이스와 "대화"하는 가장 기본적인 수단이에요.

잘만 다루면 복잡한 데이터 분석도 가능하답니다.

다음 파트에서는 실무에서 자주 발생하는 상황과 예외 처리 팁을 알아볼게요!

 

 

5. 실무에서 쓰는 팁과 예외 처리 ⚠️

SQL 문법만 아는 걸로는 부족해요. 실제 서비스에서는 예외 상황안정성이 중요하거든요.

이번 섹션에서는 초보자들이 자주 실수하는 부분실전 꿀팁들을 정리해봤어요.

실무에서도 유용하게 쓰일 거예요!

🚫 자주 하는 실수 TOP 5

  1. 세미콜론(;)을 빼먹어서 실행이 안 됨
  2. 문자열을 작은따옴표로 안 감싸서 에러 발생
  3. NOT NULL인데 값을 안 넣고 INSERT 시도
  4. 오타로 인해 존재하지 않는 컬럼/테이블 호출
  5. 같은 테이블을 여러 번 만들려고 해서 오류 발생

💡 DROP TABLE IF EXISTS 사용하기

DROP TABLE IF EXISTS board;

이미 같은 이름의 테이블이 존재할 경우 새로 만들려고 하면 에러가 나요.

이럴 땐 위 명령어로 먼저 삭제해주는 게 안전합니다.

IF EXISTS를 붙이면 테이블이 존재할 때만 삭제하므로 실습 시 특히 유용해요!

🧠 INSERT 전에 데이터 유효성 검사하기

프론트엔드에서 유효성 검사를 하더라도, 백엔드나 DB단에서도 꼭 한 번 더 검증을 해주는 게 좋아요.

예를 들어 제목이나 작성자가 비어있으면 저장을 막거나, 내용의 길이가 너무 짧은 경우 경고 메시지를 띄우는 방식이죠.

🔐 트랜잭션(Transaction) 기본 개념

  • 여러 SQL 작업을 하나의 단위로 묶어서 처리
  • 중간에 에러가 발생하면 ROLLBACK으로 전체 취소
  • 모든 작업이 문제없이 끝났을 때만 COMMIT으로 저장
START TRANSACTION;
INSERT INTO board (title, content, writer) VALUES ('트랜잭션 글', '테스트 중입니다.', '관리자');
-- 중간에 에러 발생 시 ROLLBACK;
COMMIT;

이 개념은 조금 어려울 수 있지만, 진짜 실무에서는 꼭 필요해요.

특히 결제, 주문, 포인트 적립 같은 작업은 반드시 트랜잭션으로 감싸야 합니다.

이제 SQL의 기초부터 실전 팁까지 꽤 많이 배웠어요!

 

 

6. 마무리  ➡️

여기까지 따라오신 여러분, 정말 수고 많으셨습니다!

이제 여러분은 단순히 SQL 문법을 아는 수준을 넘어서,

게시판 테이블을 설계하고 직접 데이터를 입력하고 확인하는 실습까지 마스터하신 거예요.

이건 단순한 이론이 아니라, 실제 웹 서비스에서 사용하는 핵심 기능이에요. 👍

 

이제 여러분이 할 수 있는 다음 단계는 이런 것들이에요:

  • 댓글 테이블을 따로 만들어서 게시글과 연결해보기 (외래키 연습)
  • 게시글 수정과 삭제 기능 추가 (UPDATE, DELETE 문 활용)
  • 웹 프레임워크(FastAPI, Django 등)와 연동해서 게시판 페이지 구현

이제 SQL이 조금 더 익숙해지셨을 거예요.

처음엔 생소했던 CREATE, INSERT, SELECT 명령이 점점 손에 익는 느낌이 들지 않으셨나요?😉

다음 실습에서는 JOIN과 정규화 개념도 살펴볼 예정이니 기대해주세요!

반응형

+ Recent posts