MySQL CREATE TABLE 시작하기: 구문 및 실제 예제
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
CREATE TABLE
구문은 열과 제약 조건을 포함하여 테이블의 구조를 정의합니다.- 외래 키는 테이블 간의 관계를 설정하는 데 사용됩니다.
- 기존 테이블에서 구조나 데이터를 복사하여 새 테이블을 만들 수 있습니다.
테이블 생성은 MySQL에서 관계형 데이터베이스를 설계하고 관리하는 데 있어 기본적인 측면입니다. CREATE TABLE
구문을 사용하면 열, 데이터 유형, 제약 조건 및 기타 속성을 포함하여 테이블의 구조를 정의할 수 있습니다. 이 가이드에서는 CREATE TABLE
구문, 해당 구문 및 실제 예제에 대한 개요를 제공하여 MySQL에서 테이블을 효과적으로 만드는 데 도움이 됩니다.
기본 구문
MySQL에서 테이블을 생성하기 위한 일반적인 구문은 다음과 같습니다.
CREATE TABLE [IF NOT EXISTS] table_name ( column1 datatype [constraints], column2 datatype [constraints], ... [table_constraints] ) [table_options];
IF NOT EXISTS
: 테이블이 이미 존재하는 경우 오류를 방지하는 선택적 절입니다.table_name
: 생성할 테이블의 이름입니다.column1
,column2
, ...: 데이터 유형 및 선택적 제약 조건을 포함하여 테이블 열의 정의입니다.table_constraints
: 기본 키, 외래 키 및 고유 제약 조건과 같은 선택적 정의입니다.table_options
: 스토리지 엔진 또는 문자 집합과 같은 선택적 설정입니다.
예제: 간단한 테이블 만들기
customers
테이블을 만드는 예제는 다음과 같습니다.
CREATE TABLE customers ( customer_id INT AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (customer_id) );
이 예에서:
customer_id
는 각 새 레코드마다 자동 증가하는 정수이며 기본 키 역할을 합니다.name
은 최대 길이 100자인 필수 텍스트 필드입니다.email
은 중복된 이메일 주소가 없는 고유한 텍스트 필드입니다.created_at
은 레코드가 생성된 타임스탬프를 기록하며 기본값은 현재 시간입니다.
외래 키로 테이블 만들기
테이블 간의 관계를 설정하려면 외래 키를 사용할 수 있습니다. 예를 들어 customers
테이블을 참조하는 orders
테이블을 만듭니다.
CREATE TABLE orders ( order_id INT AUTO_INCREMENT, customer_id INT, order_date DATE, PRIMARY KEY (order_id), FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
여기서 orders
테이블의 customer_id
는 customers
테이블의 customer_id
를 참조하는 외래 키로, 두 테이블 간의 관계를 설정합니다.
다른 테이블을 기반으로 테이블 만들기
MySQL을 사용하면 기존 테이블의 구조를 복사하여 새 테이블을 만들 수 있습니다.
CREATE TABLE new_table LIKE existing_table;
이 구문은 데이터 복사 없이 existing_table
과 동일한 구조로 새 테이블 new_table
을 생성합니다.
또는 기존 테이블의 데이터로 새 테이블을 만들고 채우려면:
CREATE TABLE new_table AS SELECT column1, column2 FROM existing_table WHERE condition;
이 접근 방식은 지정된 열로 new_table
을 만들고 지정된 조건을 충족하는 데이터를 복사합니다.
스토리지 엔진 지정
MySQL은 다양한 스토리지 엔진을 지원하며 InnoDB가 기본값입니다. ENGINE
옵션을 사용하여 스토리지 엔진을 지정할 수 있습니다.
CREATE TABLE products ( product_id INT AUTO_INCREMENT, name VARCHAR(100), price DECIMAL(10,2), PRIMARY KEY (product_id) ) ENGINE=InnoDB;
적절한 스토리지 엔진을 선택하면 트랜잭션 지원 및 외래 키 제약 조건과 같은 성능 및 기능에 영향을 줄 수 있습니다.
결론
MySQL의 CREATE TABLE
구문은 데이터베이스 테이블의 구조를 정의하는 강력한 도구입니다. 구문과 옵션을 이해하면 데이터를 효과적으로 저장하고 관리하고, 테이블 간의 관계를 설정하고, 적절한 구성을 통해 성능을 최적화하는 테이블을 만들 수 있습니다.
FAQs
테이블이 이미 존재할 때 오류가 발생하지 않도록 IF NOT EXISTS
를 사용하세요.
예, CREATE TABLE ... AS SELECT ...
를 사용하여 테이블을 만들고 다른 테이블에서 테이블을 채웁니다.
InnoDB는 트랜잭션 및 외래 키와 같은 기능에 대해 기본적으로 권장됩니다.
저희는 백엔드 프로젝트 호스팅을 위한 최고의 선택, Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하세요.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 지불하세요. 요청도 없고 청구도 없습니다.
압도적인 비용 효율성
- 유휴 요금 없이 사용량에 따라 지불합니다.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 높은 동시성을 쉽게 처리하기 위한 자동 확장.
- 운영 오버헤드가 전혀 없습니다. 구축에만 집중하세요.
설명서에서 자세히 알아보세요!
X에서 저희를 팔로우하세요: @LeapcellHQ