Database - Chapter 3-18. SQL (DML) 심화(테이블 생성)

2025. 3. 20. 14:51·Database
목차
  1. 📌 1. users 테이블 생성
  2. ✅ users 테이블 생성 SQL
  3. 📌 2. orders 테이블 생성
  4. ✅ orders 테이블 생성 SQL
  5. 📌 3. ON DELETE CASCADE 활용 (옵션 추가)
  6. ✅ 사용자 삭제 시 해당 사용자의 주문도 삭제되도록 설정

 

🚀 SQL (DML) 심화 - 테이블 생성 및 관계 설정

SQL에서 테이블을 생성하고 관계를 설정하는 방법을 심층적으로 정리했습니다. 🎯
이 글을 통해 기본적인 테이블 생성부터 관계 설정까지 확실하게 익혀보세요!


📌 1. users 테이블 생성

🔹 개념

  • users 테이블은 사용자 정보를 저장하는 기본 테이블입니다.
  • user_id는 기본 키(Primary Key) 역할을 하며, 자동 증가(AUTO_INCREMENT) 속성을 가집니다.

✅ users 테이블 생성 SQL

sql
 
CREATE TABLE users (
    user_id INTEGER PRIMARY KEY AUTO_INCREMENT,
    username TEXT NOT NULL,
    email TEXT NOT NULL
);
 

✅ 설명

  • user_id → 고유번호, 자동 증가(AUTO_INCREMENT)
  • username → 사용자 이름, 필수 입력(NOT NULL)
  • email → 이메일 주소, 필수 입력(NOT NULL)

💡 테이블 생성 시 주의할 점

  • PRIMARY KEY는 각 행을 고유하게 식별해야 하므로 중복을 허용하지 않습니다.
  • AUTO_INCREMENT를 설정하면 새로운 행이 추가될 때마다 값이 자동 증가합니다.

📌 2. orders 테이블 생성

🔹 개념

  • orders 테이블은 사용자가 주문한 상품 정보를 저장하는 테이블입니다.
  • user_id를 사용하여 users 테이블과 관계(Foreign Key)를 설정합니다.

✅ orders 테이블 생성 SQL

sql
 
 
CREATE TABLE orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    product_name VARCHAR(255),
    quantity INT,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);
 

✅ 설명

  • order_id → 주문 ID, 기본 키(Primary Key)
  • user_id → 사용자 ID, users 테이블의 user_id를 참조(Foreign Key 설정)
  • product_name → 주문한 상품 이름 (VARCHAR(255): 최대 255자)
  • quantity → 주문한 상품의 개수

💡 외래 키(Foreign Key) 설정 시 주의할 점

  • FOREIGN KEY (user_id) REFERENCES users(user_id)
    → orders.user_id가 users.user_id를 참조하도록 설정
  • 참조하는 테이블(users)이 먼저 생성되어 있어야 합니다.
  • 참조 무결성을 유지하려면 **사용자가 삭제될 경우 주문도 함께 삭제(ON DELETE CASCADE)**하도록 설정할 수도 있습니다.

📌 3. ON DELETE CASCADE 활용 (옵션 추가)

🔹 개념

  • 만약 사용자가 삭제되면 해당 사용자의 주문도 함께 삭제되도록 설정할 수 있습니다.
  • 이를 위해 ON DELETE CASCADE 옵션을 추가합니다.

✅ 사용자 삭제 시 해당 사용자의 주문도 삭제되도록 설정

sql
 
CREATE TABLE orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT,
    product_name VARCHAR(255),
    quantity INT,
    FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
);

✅ 설명

  • ON DELETE CASCADE를 사용하면 users 테이블에서 사용자가 삭제될 경우 orders 테이블에서도 자동으로 삭제됩니다.

💡 이 설정이 없으면 부모 테이블(users)에서 데이터를 삭제할 때 참조 무결성 오류가 발생할 수 있음!

'Database' 카테고리의 다른 글

Database - Chapter 3-20. SQL (DML) 심화(데이터 조인)  (0) 2025.03.20
Database - Chapter 3-19. SQL (DML) 심화(파이썬으로 데이터 랜덤 생성)  (0) 2025.03.20
Database - Chapter 3-17. SQL (DML) 기초(데이터 제거)  (0) 2025.03.20
Database - Chapter 3-16. SQL (DML) 기초(데이터 업데이트)  (0) 2025.03.20
Database - Chapter 3-15. SQL (DML) 기초(데이터 조회)  (0) 2025.03.20
  1. 📌 1. users 테이블 생성
  2. ✅ users 테이블 생성 SQL
  3. 📌 2. orders 테이블 생성
  4. ✅ orders 테이블 생성 SQL
  5. 📌 3. ON DELETE CASCADE 활용 (옵션 추가)
  6. ✅ 사용자 삭제 시 해당 사용자의 주문도 삭제되도록 설정
'Database' 카테고리의 다른 글
  • Database - Chapter 3-20. SQL (DML) 심화(데이터 조인)
  • Database - Chapter 3-19. SQL (DML) 심화(파이썬으로 데이터 랜덤 생성)
  • Database - Chapter 3-17. SQL (DML) 기초(데이터 제거)
  • Database - Chapter 3-16. SQL (DML) 기초(데이터 업데이트)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (798)
      • Python (32)
      • 프로젝트 (113)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    urbantrends
    youngprofessionals
    americanlaw
    trumpmuskclash
    lawsuitculture
    뷔
    americaparty
    livebroadcast
    btscomeback
    bts
    gpterror
    smartphonedurability
    titaniumcase
    chinanightlife
    global politics
    basalcellcarcinoma
    remittance
    chatgpterror
    RM
    newpoliticalparty
    btsreunion
    travel ban
    hotcoffeecase
    classaction
    life reflection
    btsjungkook
    self-growth
    college reunions
    btsdischarge
    homebartrend
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Database - Chapter 3-18. SQL (DML) 심화(테이블 생성)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.