안녕하세요, 코딩하는곰입니다! 오늘은 MySQL과 MariaDB에서 테이블을 생성하는 가장 기본적인 문법인 CREATE TABLE에 대해 깊이 있게 알아보겠습니다. 데이터베이스 설계의 첫 걸음인 테이블 생성은 시스템의 성능과 확장성을 결정하는 매우 중요한 요소입니다. 특히 컬럼 정의와 데이터 타입 선택은 이후 쿼리 성능에 직접적인 영향을 미치기 때문에 초기 설계 단계에서 신중하게 결정해야 합니다. 20년 경력의 데이터베이스 개발자로서 제가 경험한 실제 사례와 함께 기본 개념부터 고급 팁까지 상세히 설명드리겠습니다.
MySQL/MariaDB에서 테이블을 생성하는 기본 문법은 다음과 같습니다.
CREATE TABLE 테이블명 (컬럼1 데이터타입 [제약조건],컬럼2 데이터타입 [제약조건],...[테이블_제약조건]);
가장 기본적인 형태로 ‘users’ 테이블을 생성하는 예제를 살펴보겠습니다.
CREATE TABLE users (id INT NOT NULL AUTO_INCREMENT,username VARCHAR(50) NOT NULL,email VARCHAR(100) NOT NULL,created_at DATETIME DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id));
이 예제에서 각 컬럼은 다음과 같은 특징을 가집니다:
id: 정수 타입이며, NULL을 허용하지 않고 자동 증가하는 프라이머리 키username: 최대 50자의 가변 문자열, NULL 불가email: 최대 100자의 가변 문자열, NULL 불가created_at: DATETIME 타입으로 기본값은 현재 시간
📊 데이터 분석과 프로그래밍에 관심이 있다면, (자바 기초) 클래스와 객체 개념 완벽 이해 - 인스턴스화와 메모리 구조까지를 참고해보세요.
데이터 타입 선택은 저장 공간 효율성과 쿼리 성능에 직접적인 영향을 미칩니다. 주요 데이터 타입과 선택 가이드를 소개합니다.
-- 적절한 정수 타입 선택 예시CREATE TABLE product_inventory (product_id BIGINT, -- 매우 큰 카탈로그 시스템일 경우quantity MEDIUMINT, -- 최대 800만 개까지 표현 가능status_flag TINYINT -- 0/1 플래그 값);
치매 예방과 기억력 향상을 위한 스도쿠 게임이 필요하다면, 크립토 할아버지와 함께하는 스도쿠 저니를 추천합니다.
DEFAULT 값은 데이터 무결성을 유지하는 강력한 도구입니다.
CREATE TABLE orders (order_id INT AUTO_INCREMENT PRIMARY KEY,order_date DATETIME DEFAULT CURRENT_TIMESTAMP,status VARCHAR(20) DEFAULT 'pending',priority TINYINT DEFAULT 3,is_approved BOOLEAN DEFAULT FALSE);
CREATE TABLE employees (emp_id INT PRIMARY KEY,name VARCHAR(100) NOT NULL,email VARCHAR(100) NOT NULL UNIQUE,phone VARCHAR(20), -- NULL 허용 (전화번호가 없는 경우)retirement_date DATE NULL -- 명시적으로 NULL 표기);
두뇌 건강을 위한 재미있는 퍼즐 게임이 필요하다면, 크립토 할아버지의 지혜가 담긴 스도쿠 저니를 설치해보세요.
지금까지 MySQL/MariaDB에서 CREATE TABLE 문을 사용하여 컬럼을 정의하고 적절한 데이터 타입을 선택하는 방법에 대해 상세히 알아보았습니다. 데이터 타입 선택과 제약 조건 설정은 데이터베이스 설계의 핵심이며, 시스템의 장기적인 성능과 유지보수성에 큰 영향을 미칩니다. 다음 포스팅에서는 더 고급 주제인 인덱스 생성, 외래 키 설정, 테이블 옵션(엔진 타입, 문자셋 등)에 대해 깊이 있게 다루겠습니다. 궁금한 점이 있으시면 댓글로 남겨주세요. 여러분의 데이터베이스 설계가 더욱 견고해지길 바랍니다! 코딩하는곰이었습니다. 감사합니다!
📊 성분, 효능, 가격까지 비교해보고 싶은 분들을 위한, 맨즈텐 MAX를 참고해보세요.
