데이터 정의어(DDL)의 핵심!
CREATE, ALTER, DROP 완전 정복
SQL 문법 중에서도 가장 기본이자 가장 중요한 명령어,
CREATE, ALTER, DROP을 정확하게 알고 계신가요?
안녕하세요, 여러분 😊
오늘은 데이터베이스 기초 중에서도 실무와 시험, 어디서든 반드시 등장하는 핵심 개념인 데이터 정의어(DDL)에 대해 자세히 알아보려 해요.
특히 이 글에서는 CREATE, ALTER, DROP이라는 3대 명령어를 중심으로, 실제 사용 예제와 함께 초보자도 쉽게 이해할 수 있도록 하나하나 짚어드릴 거예요.
처음 배우는 분들도 걱정 마세요! 실수하기 쉬운 포인트까지 친절하게 알려드릴 테니까요.
목차
1. CREATE 문 – 테이블 생성의 시작 📦
CREATE 문은 데이터베이스에서 테이블을 처음 만들 때 사용하는 명령어예요.
어떤 데이터를 저장할지, 그 데이터가 어떤 형태를 가질지, 테이블의 기본 틀을 만드는 과정이죠.
SQL 문법에서 가장 기본적인 작업이지만, 정확하게 이해하고 써야 실수 없이 데이터베이스를 설계할 수 있습니다.
🧾 CREATE 문 기본 문법
CREATE TABLE 테이블명 (
컬럼1 데이터타입 [제약조건],
컬럼2 데이터타입 [제약조건],
...
);
예시로 살펴보면 훨씬 이해가 쉬워요. 아래에 간단한 회원 테이블을 만들어 볼게요.
CREATE TABLE members (
id INT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
email VARCHAR(50),
created_at DATE
);
📝 주요 구성 요소 정리
요소 | 설명 |
---|---|
테이블명 | 생성할 테이블의 이름 |
컬럼명 | 테이블에 포함될 각 열의 이름 |
데이터 타입 | 해당 열이 저장할 데이터의 형식 (예: INT, VARCHAR, DATE) |
제약조건 | NOT NULL, PRIMARY KEY 등 데이터 무결성 확보용 조건 |
💡 실전 팁
- 테이블명은 복수형보다 단수형이 일반적입니다. 예:
user
,order
- PRIMARY KEY는 한 테이블에 하나만 설정 가능하니 주의!
- NOT NULL은 데이터를 꼭 입력해야 하는 컬럼에 붙이세요.
이렇게 CREATE 문은 테이블을 처음 설계할 때 필수적으로 사용되며, 앞으로 데이터베이스 설계나 개발 시 가장 많이 쓰이는 문장 중 하나예요.
자주 실습해보면서 익혀두면 나중에 데이터베이스 실무에서도 유용하게 써먹을 수 있어요 😊
2. ALTER 문 – 테이블 구조 변경하기 🔧
실제 서비스를 운영하다 보면 테이블 구조를 처음 설계한 대로만 쓰기 어렵습니다.
새로운 컬럼을 추가하거나 기존 컬럼을 수정하거나, 때로는 삭제해야 할 때도 있어요.
그럴 때 사용하는 명령어가 바로 ALTER 문입니다.
🔧 ALTER 문 기본 문법
-- 컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입;
-- 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
-- 컬럼 이름 변경 (DBMS마다 문법 차이 있음)
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼 TO 새컬럼;
-- 컬럼 속성 수정
ALTER TABLE 테이블명 MODIFY 컬럼명 새데이터타입;
예제를 통해 ALTER 문의 주요 사용법을 확인해볼게요.
-- 회원 테이블에 phone 컬럼 추가
ALTER TABLE members ADD phone VARCHAR(20);
-- email 컬럼 삭제
ALTER TABLE members DROP COLUMN email;
-- created_at 컬럼을 signup_date로 이름 변경
ALTER TABLE members RENAME COLUMN created_at TO signup_date;
-- phone 컬럼 데이터 타입 수정
ALTER TABLE members MODIFY phone VARCHAR(50);
🧩 ALTER 문으로 할 수 있는 주요 작업 정리
작업 | 설명 |
---|---|
ADD | 새로운 컬럼 추가 |
DROP | 기존 컬럼 삭제 |
RENAME | 컬럼명 변경 |
MODIFY | 데이터 타입 또는 제약조건 변경 |
⚠️ 실무에서의 주의사항
- 컬럼 삭제(DROP)는 복구 불가능할 수 있으므로 백업 필수!
- MODIFY 문은 일부 DB에서 형식이 다를 수 있으니 DBMS 매뉴얼 확인 필수!
- 실시간 운영 중인 테이블은 변경 전 트랜잭션 및 롤백 고려 필요
ALTER 문을 잘 다루면, 테이블을 새로 만들 필요 없이 유연하게 구조를 조정할 수 있습니다.
서비스가 성장하면서 데이터도 함께 진화하는 만큼, 이 명령어는 꼭 익혀두세요!
3. DROP 문 – 테이블 삭제 주의사항 🗑️
DROP 문은 데이터베이스에서 테이블이나 전체 객체를 완전히 삭제할 때 사용하는 명령어예요.
DELETE 문과 비슷하다고 오해하는 경우가 많은데, DROP은 테이블 자체를 지워버리기 때문에 되돌릴 수 없어요!
🧨 DROP 문 기본 문법
-- 테이블 삭제
DROP TABLE 테이블명;
-- 전체 데이터베이스 삭제
DROP DATABASE 데이터베이스명;
예제를 통해 DROP 문이 얼마나 강력한 명령어인지 감을 잡아보세요.
-- members 테이블 삭제
DROP TABLE members;
-- dev_db 데이터베이스 삭제
DROP DATABASE dev_db;
❗ DROP과 DELETE의 차이점
비교 항목 | DROP | DELETE |
---|---|---|
기능 | 테이블 자체를 삭제 | 데이터(레코드)만 삭제 |
ROLLBACK | 일반적으로 불가능 | 가능 (트랜잭션 내에서) |
속도 | 빠름 (구조까지 삭제) | 비교적 느림 |
사용 주기 | 정리나 초기화 목적 | 데이터 수정·갱신 목적 |
⚠️ DROP 사용 시 주의사항
- DELETE는 데이터만 지우고 구조는 남는다.
- DROP은 ROLLBACK 불가. 실행 전 반드시 백업 또는 재확인 필수!
- 실제 운영 DB에서는 가급적 DROP 지양. 테스트 환경에서 먼저 실행해 보세요.
DROP 문은 정말 강력하지만 그만큼 위험할 수 있는 명령어입니다.
데이터 전체 손실로 이어질 수 있으니 꼭 신중하게 사용하고, 필요하다면 DELETE 또는 TRUNCATE와의 차이점도 함께 비교해보는 습관을 들이세요.
4. DDL과 DML의 차이점은? 🤔
SQL을 공부하다 보면 꼭 마주치는 개념이 바로
DDL(Data Definition Language)과 DML(Data Manipulation Language)이에요.
두 용어 모두 SQL의 하위 분류지만,
역할과 기능이 완전히 다르기 때문에 확실하게 구분해서 알아두는 게 중요합니다.
🆚 DDL vs DML 비교표
구분 | DDL | DML |
---|---|---|
풀네임 | Data Definition Language | Data Manipulation Language |
역할 | 테이블 구조 정의 및 변경 | 테이블 안의 데이터 조작 |
대표 명령어 | CREATE, ALTER, DROP | INSERT, UPDATE, DELETE, SELECT |
ROLLBACK | 불가능 (일반적으로 즉시 반영) | 가능 (트랜잭션 사용 시) |
사용 시점 | 초기 테이블 설계 또는 구조 변경 시 | 일상적인 데이터 입력 및 수정 작업 시 |
📌 핵심 요약
- DDL은 테이블 "뼈대"를 만드는 것!
- DML은 그 안에 "내용물"을 채우고 바꾸는 작업!
초보자 입장에서는 두 개념을 헷갈리는 일이 잦지만, 실무나 면접에서도 자주 나오는 구분이니 꼭 정리해두세요.
구조(DDL) vs 데이터(DML)라는 큰 틀로 이해하면 더 쉬워요!
5. 실전 예제로 배우는 DDL 활용법 💡
이제 이론만 보고 끝낼 수는 없죠?
실제 상황에서 어떻게 CREATE, ALTER, DROP을 사용하는지, 실전 예제를 통해 알아보겠습니다.
실습 환경은 MySQL 또는 MariaDB 기준이며, 로컬에서 직접 실행해보시면 학습 효과가 훨씬 좋아요!
🛠️ Step 1: 사용자 테이블 생성
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
password VARCHAR(100) NOT NULL,
email VARCHAR(50),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
- AUTO_INCREMENT로 user_id 자동 증가
- created_at 기본값으로 현재 시간 자동 설정
🛠️ Step 2: 컬럼 추가 (ALTER)
ALTER TABLE users ADD phone_number VARCHAR(20);
운영 중 “휴대폰 번호” 컬럼이 필요하다는 요청이 들어왔을 때 이렇게 ALTER로 유연하게 대응할 수 있어요.
🛠️ Step 3: 테이블 삭제 (DROP)
DROP TABLE users;
테스트용으로 만든 테이블을 완전히 삭제할 때 유용하지만, 실서비스에서는 신중하게 사용해야 해요!
🧠 실전에서 자주 쓰는 DDL 흐름
- 개발 초기 - CREATE로 테이블 설계
- 요구사항 변경 - ALTER로 컬럼 추가/수정
- 테스트 종료 시 - DROP으로 정리
이처럼 DDL 명령어는 프로젝트 전체 생명주기에서 필수로 활용되며, 특히 초기 설계 및 유지보수 단계에서 그 진가를 발휘합니다.
직접 연습해보고, 실제 서비스에서 사용할 수 있을 만큼 자신감을 키워보세요!
마무리하며 ✨
지금까지 CREATE, ALTER, DROP을 중심으로 한 데이터 정의어(DDL)에 대해 함께 공부해봤습니다.
초보자 분들은 처음에는 조금 복잡하게 느껴질 수도 있지만, 실제로 몇 번 실습하고 나면 오히려 가장 손에 익게 되는 명령어들이 바로 이 DDL들이에요.
테이블을 만들고 → 수정하고 → 삭제하는 과정은 웹 개발, 데이터 분석, 서버 구축 등 거의 모든 IT 분야에서 반복되는 핵심 루틴이죠.
앞으로 프로젝트를 진행하시면서도 이 명령어들을 자연스럽게 써먹게 될 날이 꼭 올 거예요!😉
'Database' 카테고리의 다른 글
WHERE 절 마스터하기 : 다양한 조건문과 연산자 총정리 (1) | 2025.04.08 |
---|---|
데이터베이스 조작 예제 : 게시판 테이블 만들고 데이터 입력하기 (0) | 2025.04.07 |
데이터 조작어(DML) 완전 정복: SELECT, INSERT, UPDATE, DELETE (0) | 2025.04.07 |
MySQL/MariaDB 설치 및 계정·DB 실습 가이드 (윈도우·리눅스·맥) (0) | 2025.04.07 |
ERD 설계 실습: 게시판 테이블 만들기 (2) | 2025.04.07 |