MySQL Create Table
MySQL CREATE TABLE: 테이블 생성하기
CREATE TABLE 문은 MySQL에서 새로운 테이블을 생성하는 데 사용되는 SQL 명령어입니다. 테이블은 데이터베이스의 기본 단위로, 데이터를 행과 열의 형태로 저장합니다. 이 가이드는 MySQL에서 테이블을 생성하는 방법, 기본 문법 및 예제를 설명합니다.
1. 기본 개념
1.1. 정의
CREATE TABLE 문은 지정된 이름으로 새로운 테이블을 생성하고, 각 열의 데이터 타입 및 제약 조건을 정의합니다.
1.2. 기본 문법
CREATE TABLE table_name (
column1 datatype [constraint],
column2 datatype [constraint],
...
);
- table_name: 생성할 테이블의 이름
- column1, column2, ...: 테이블에 포함될 열의 이름
- datatype: 열의 데이터 타입 (예: INT, VARCHAR, DATE 등)
- constraint: 선택적 제약 조건 (예: PRIMARY KEY, NOT NULL, UNIQUE 등)
2. CREATE TABLE 사용 예제
2.1. 기본 테이블 생성
가장 간단한 형태로 테이블을 생성하는 예제입니다.
CREATE TABLE users (
id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
이 쿼리는 users
라는 이름의 테이블을 생성하며, 다음과 같은 열을 포함합니다:
- id: 정수형, 자동 증가, 기본 키
- username: 최대 50자의 문자열, NULL 불허
- email: 최대 100자의 문자열, NULL 불허
- created_at: TIMESTAMP형, 기본값으로 현재 시간을 사용
2.2. 여러 제약 조건 사용하기
제약 조건을 활용하여 더 복잡한 테이블 구조를 정의할 수 있습니다.
CREATE TABLE products (
product_id INT AUTO_INCREMENT,
product_name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) NOT NULL CHECK (price >= 0),
quantity INT DEFAULT 0,
PRIMARY KEY (product_id),
UNIQUE (product_name)
);
이 쿼리는 products
라는 이름의 테이블을 생성하며, 다음과 같은 열을 포함합니다:
- product_id: 정수형, 자동 증가, 기본 키
- product_name: 최대 100자의 문자열, NULL 불허, 고유 값
- price: 10자리 숫자(소수점 2자리 포함), NULL 불허, 0 이상이어야 함
- quantity: 정수형, 기본값 0
3. CREATE TABLE의 고급 기능
3.1. 외래 키 제약 조건
외래 키는 다른 테이블과의 관계를 정의하는 데 사용됩니다.
CREATE TABLE orders (
order_id INT AUTO_INCREMENT,
user_id INT,
order_date DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (order_id),
FOREIGN KEY (user_id) REFERENCES users(id)
);
이 쿼리는 orders
라는 이름의 테이블을 생성하며, user_id
가 users
테이블의 id
와 연관되어 있음을 나타냅니다.
3.2. 기본값 설정
열의 기본값을 설정하여 데이터 삽입 시 기본적으로 사용될 값을 지정할 수 있습니다.
CREATE TABLE settings (
setting_name VARCHAR(100) NOT NULL,
setting_value VARCHAR(100) DEFAULT 'default_value'
);
이 쿼리는 settings
라는 이름의 테이블을 생성하며, setting_value
의 기본값을 'default_value'로 설정합니다.
4. 테이블 생성 후 확인
테이블을 생성한 후, 데이터베이스 내의 모든 테이블 목록을 확인하려면 다음 쿼리를 사용할 수 있습니다.
SHOW TABLES;
이 쿼리는 현재 데이터베이스에 있는 모든 테이블의 목록을 반환합니다.
5. 테이블 삭제
생성한 테이블을 삭제하려면 DROP TABLE
문을 사용합니다.
예제
DROP TABLE users;
이 쿼리는 users
테이블을 삭제하며, 이 작업은 영구적입니다.
6. 요약
MySQL CREATE TABLE 문은 새로운 테이블을 생성하고, 각 열의 데이터 타입 및 제약 조건을 설정하는 데 사용됩니다. 이를 통해 데이터베이스의 구조를 정의하고 데이터를 저장하는 데 필수적인 역할을 합니다.
- 정의: 새로운 테이블 생성.
- 기본 문법:
CREATE TABLE table_name (column1 datatype, ...);
- 제약 조건: 데이터 무결성을 유지하기 위한 다양한 제약 조건 사용 가능.
- 외래 키: 다른 테이블과의 관계를 정의.
- 기본값 설정: 열에 기본값 지정 가능.
MySQL의 CREATE TABLE 기능을 활용하여 효율적으로 데이터베이스 구조를 설계하고 관리할 수 있습니다.