[테이블 생성] PRIMARY KEY / FOREIGN KEY

Yeonbi_Kim·2024년 7월 22일
post-thumbnail
sql

CREATE TABLE user_info (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    FOREIGN KEY (id) REFERENCES users (id) ON DELETE CASCADE
);

좋아, 이제 이 코드를 초등학생에게 설명하는 것처럼 쉽게 설명해볼게.

개념 설명

이 코드는 새로운 테이블을 만드는 SQL 명령어야. 테이블은 일종의 데이터베이스 안에 있는 표처럼 생겼고, 정보를 정리해서 저장할 수 있어. 이 코드에서 우리는 user_info라는 새로운 테이블을 만들고 있어.

CREATE TABLE user_info (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    FOREIGN KEY (id) REFERENCES users (id) ON DELETE CASCADE
);

코드 설명

  1. CREATE TABLE user_info:

    • 여기서 새로운 테이블인 user_info를 만들 거야.
  2. id INT PRIMARY KEY:

    • id라는 컬럼을 만들 거야. 이 컬럼은 숫자(INT)로 이루어져 있고, 각각의 id는 유일해. 즉, 같은 id를 가진 두 개의 행(row)은 있을 수 없어. 그래서 PRIMARY KEY라고 불러.
  3. name VARCHAR(50) NOT NULL:

    • name이라는 컬럼도 만들 거야. 이 컬럼은 글자들로 이루어져 있고, 최대 50글자까지 저장할 수 있어. 그리고 이 컬럼은 빈칸일 수 없어, 그래서 NOT NULL이라고 했어.
  4. FOREIGN KEY (id) REFERENCES users (id) ON DELETE CASCADE:

    • 이 부분이 조금 어려울 수 있어. id 컬럼은 user_info 테이블에서 고유하지만, 동시에 users 테이블의 id와도 연결돼 있어. 이렇게 다른 테이블과 연결되는 컬럼을 외래 키(FOREIGN KEY)라고 불러.
    • REFERENCES users (id)는 이 idusers 테이블의 id와 연결된다는 뜻이야.
    • ON DELETE CASCADE는 만약 users 테이블에서 어떤 행(row)을 삭제하면, 그 행과 연결된 user_info의 행도 자동으로 삭제된다는 뜻이야.

언제 사용하나?

  • 데이터베이스에서 여러 테이블 간의 관계를 만들고 싶을 때 사용해.
  • 예를 들어, users 테이블에는 사용자의 기본 정보가 있고, user_info 테이블에는 사용자의 추가 정보가 있을 때 이렇게 관계를 만들 수 있어.

왜 사용하는지?

  • 여러 테이블에 분산된 데이터를 쉽게 관리하고, 필요한 정보를 빠르게 가져올 수 있어.
  • 데이터의 중복을 줄여줘. 예를 들어, 사용자 이름을 여러 테이블에 저장하지 않고 한 테이블에만 저장하고, 다른 테이블에서는 그 사용자 이름을 참조하게 할 수 있어.

사용 시 유의점

  • 외래 키를 설정할 때, 두 테이블 간의 데이터 타입이 일치해야 해.
  • ON DELETE CASCADE를 사용할 때, 데이터 삭제 시 다른 테이블의 데이터도 함께 삭제되는 것을 주의해야 해.
  • 데이터베이스 설계 시 테이블 간의 관계를 잘 이해하고 설정해야 해.

이제 이 코드를 MySQL Workbench에 입력하고 실행해보면 새로운 user_info 테이블이 만들어질 거야. 이 테이블은 users 테이블의 id를 참조하고 있어서, 두 테이블 간에 연관된 데이터를 쉽게 관리할 수 있어.

0개의 댓글