SQL CREATE 문 활용법 데이터베이스와 테이블 생성 정리
CREATE 문은 SQL에서 새로운 데이터베이스와 테이블을 생성할 때 사용하는 기본적인 명령어입니다. 이 글에서는 CREATE DATABASE와 CREATE TABLE을 중심으로 실습 예제 및 제약 조건(Constraint) 활용법을 알기 쉽게 정리합니다.
데이터베이스 생성과 선택 방법 (CREATE DATABASE & USE)
데이터베이스 생성 (CREATE DATABASE)
데이터베이스 생성은 CREATE DATABASE 명령어를 사용하여 간단히 수행할 수 있습니다.
기본 문법
CREATE DATABASE 데이터베이스이름;
예제
CREATE DATABASE Hotel;
데이터베이스 목록 확인 (SHOW DATABASES)
생성된 데이터베이스 목록을 확인하려면 다음 명령어를 사용합니다.
SHOW DATABASES;
데이터베이스 선택하기 (USE)
생성된 데이터베이스를 사용하려면 USE 명령어로 선택해야 합니다.
기본 문법
USE 데이터베이스이름;
예제
USE Hotel;
운영 체제별 대소문자 주의사항
- 유닉스 계열 OS: 대소문자 구분(Hotel ≠ hotel)
- 윈도우 OS: 대소문자 구분 없음(Hotel = hotel)
팁: 대소문자를 항상 일관성 있게 사용하는 습관을 들이면 관리가 편리합니다.
테이블 생성하기 (CREATE TABLE)
데이터베이스에서 데이터를 저장하는 기본 단위가 테이블(Table)입니다. 테이블 생성은 CREATE TABLE 명령어로 수행합니다.
CREATE TABLE 기본 문법
CREATE TABLE 테이블이름 (
필드이름1 필드타입1,
필드이름2 필드타입2,
...
);
- 테이블이름과 필드이름 지정
- 필드타입으로 데이터 유형 지정 (
INT,VARCHAR,DATE등)
예제: 테이블 생성
CREATE TABLE Reservation (
ID INT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
ReserveDate DATE,
RoomNum INT
);
생성된 테이블 목록과 구조 확인하기
- 테이블 목록 조회:
SHOW TABLES;
- 특정 테이블 구조 확인:
DESCRIBE Reservation;
-- 또는
DESC Reservation;
제약 조건(Constraint)의 활용과 종류
제약 조건은 데이터를 입력할 때 무결성(Integrity)을 유지하기 위해 사용하는 규칙입니다. 테이블 생성(CREATE TABLE) 또는 구조 변경(ALTER TABLE) 시에 설정할 수 있습니다.
주요 제약 조건 6가지
| 제약 조건 | 설명 | 예시 |
|---|---|---|
| NOT NULL | NULL(빈값) 허용 안 함 | Name VARCHAR(30) NOT NULL |
| UNIQUE | 필드 값이 중복될 수 없음 | Email VARCHAR(50) UNIQUE |
| PRIMARY KEY | 고유 식별자(UNIQUE + NOT NULL) | ID INT PRIMARY KEY |
| FOREIGN KEY | 다른 테이블과의 관계 설정 | FOREIGN KEY(DeptID) REFERENCES Department(ID) |
| DEFAULT | 필드의 기본값 설정 | Status VARCHAR(20) DEFAULT 'Pending' |
| AUTO_INCREMENT | 자동으로 증가하는 숫자 필드 | ID INT AUTO_INCREMENT PRIMARY KEY |
AUTO_INCREMENT 초기값 변경
AUTO_INCREMENT 필드의 초기값 설정 방법입니다.
기본 문법
ALTER TABLE 테이블이름 AUTO_INCREMENT = 시작값;
예제
ALTER TABLE Reservation AUTO_INCREMENT = 1000;
이후 입력되는 ID 값은 1000부터 시작됩니다.
CREATE 문 활용 실습 예제 (완성본)
아래 예시는 데이터베이스와 테이블 생성, 제약 조건 적용까지의 전체적인 흐름을 보여줍니.
-- 데이터베이스 생성
CREATE DATABASE HotelDB;
-- 데이터베이스 선택
USE HotelDB;
-- Customer 테이블 생성 및 제약 조건 적용
CREATE TABLE Customer (
ID INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Email VARCHAR(100) UNIQUE NOT NULL,
Phone VARCHAR(20) DEFAULT '미등록'
);
-- Reservation 테이블 생성 (외래 키 적용)
CREATE TABLE Reservation (
ID INT AUTO_INCREMENT PRIMARY KEY,
CustomerID INT,
ReserveDate DATE NOT NULL,
RoomNum INT NOT NULL,
FOREIGN KEY (CustomerID) REFERENCES Customer(ID)
);
요약 정리
| 단계 | 핵심 포인트 |
|---|---|
| 데이터베이스 생성 | CREATE DATABASE로 생성 후 USE로 선택 |
| 테이블 생성 | CREATE TABLE로 필드 이름 및 타입 명시 |
| 제약 조건 | NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, DEFAULT, AUTO_INCREMENT로 데이터 무결성 보장 |
질문 정리
-
CREATE DATABASE 이후 바로 데이터 사용이 가능한가요?
생성 후
USE 데이터베이스명;명령으로 선택해야 사용 가능합니다. -
PRIMARY KEY와 UNIQUE의 차이는 무엇인가요?
PRIMARY KEY는 반드시 유일하며 NULL 값을 허용하지 않습니다. UNIQUE는 중복 불가능하지만 NULL 허용 가능합니다.
-
AUTO_INCREMENT를 꼭 PRIMARY KEY에만 써야 하나요?
일반적으로 PRIMARY KEY와 함께 쓰지만, UNIQUE 필드에도 적용 가능합니다.
-
FOREIGN KEY가 없으면 관계형 DB가 아닌가요?
관계형 DB는 FOREIGN KEY를 이용하여 테이블 간의 관계를 정의하는 것이 핵심이므로 권장됩니다.
-
제약 조건은 테이블 생성 후에도 추가할 수 있나요?
네,
ALTER TABLE명령으로 추가 및 삭제할 수 있습니다.
댓글남기기