2.2 CREATE TABLE

약 6분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

CREATE TABLE

데이터베이스에서 정보를 효율적으로 저장하고 관리하기 위해서는 테이블이 필요합니다. 테이블은 관련된 데이터를 행(row)과 열(column)로 구성하여 저장하는 구조로, 각 열은 특정한 데이터 유형을 가집니다. 테이블을 만드는 기본 SQL 문법이 바로 CREATE TABLE입니다. 이 명령어를 통해 데이터베이스 내에 새로운 테이블을 생성할 수 있습니다.

먼저, 데이터베이스가 필요한 이유에 대해 이해해봅시다. 데이터베이스는 데이터를 체계적으로 저장하고 신속하게 접근할 수 있게 해 주며, 데이터의 보안성과 무결성을 유지합니다. 웹 애플리케이션에서는 사용자의 정보, 제품 정보 등을 효과적으로 관리할 수 있도록 도와줍니다.

예제: CREATE TABLE 문법

다음은 "사용자(user)" 정보를 저장하기 위한 테이블을 생성하는 SQL 예제입니다.

CREATE TABLE user (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

이 코드에서 user_id는 각 사용자를 고유하게 식별할 수 있는 기본 키(Primary Key)입니다. usernameemail은 각각 사용자명과 이메일을 저장하기 위한 열이며, created_at은 사용자가 등록된 시간을 나타냅니다.

실행 결과

위 SQL 문을 실행한 결과, 데이터베이스에 다음과 같은 형태의 테이블이 생성됩니다.

user_id username email created_at
1 user1 user1@example.com 2023-10-10 10:00:00

데이터가 추가되기 전 테이블 구조를 확인할 수 있습니다. 'user_id' 값은 자동으로 증가하며, 'username'과 'email'은 필수로 입력되어야 하며 이메일은 유일해야 합니다.

실습

이제 여러분이 직접 테이블을 만들어보는 시간을 가져볼까요? 다음 명령어를 사용해 "게시물(post)"에 대한 정보를 저장하는 테이블을 만들어보세요:

  • 게시물 ID (post_id, INT, 자동 증가, 기본 키)
  • 제목 (title, VARCHAR(100), NOT NULL)
  • 내용 (content, TEXT, NOT NULL)
  • 작성일 (created_at, TIMESTAMP, 기본값: 현재 시간)

SQL 명령어 사용 예:

CREATE TABLE post (
    post_id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(100) NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

이 명령어를 실행하면 게시물에 대한 정보를 저장할 수 있는 테이블이 생성될 것입니다.
실행 결과를 확인하고, 데이터가 잘 저장되었는지 점검해보세요.

프로젝트

회원가입, 게시판 작성와 같은 간단한 웹 애플리케이션을 설계해보세요. 이 애플리케이션은 사용자가 정보를 등록할 수 있도록 하고, 그 정보를 데이터베이스에 저장하는 기능을 포함해야 합니다. ERD를 통해 사용자와 게시물 간의 관계를 시각적으로 나타낸 후 CREATE TABLE 문을 활용하여 테이블을 생성해보세요.

이 과정에서 작성한 SQL 명령어와 생성된 테이블 구조를 문서화해 보관하세요. 이후에 SQL 실습과 이론을 연계할 수 있습니다.

정리

CREATE TABLE 명령어를 통해 데이터베이스에 필요한 정보를 저장할 수 있는 테이블을 생성하는 방법을 배웠습니다. 기본 키, 데이터 타입, NOT NULL 같은 개념들을 이해하고 실습을 통해 직접 테이블을 만들어보는 경험을 쌓으며 데이터베이스 설계의 기초를 다졌습니다. 그럼 다음으로는 데이터를 테이블에 추가할 수 있는 INSERT 문법으로 넘어가도록 하겠습니다.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.