[MySQL] 데이터베이스 모델링

2024. 5. 29. 10:50·MySQL/MySQL 기본
설계 도면 → 모델링 하다

장부에 고객 방문기록과 구매 이력 남기기 시나리오

ㅁ

-- 데이터 집합 생성 
create database db_tenco_market;

-- 사용 
use db_denco_market;

-- db 삭제 명령어 
-- drop database db_denco_market;

-- 사전 기반 지식 : mysql 은 대소문자를 구별하지 않습니다. 
-- 단, 구분 하는 RDBMS 도 있습니다. 

--  테이블 설계 하기 

-- 고객 테이블 생성 
create table userTBL(
   userName char(3) not null primary key, 
   birthYear int not null, 
   addr char(2) not null,
   mobile char(12)
);

show tables;
select * from userTBL;
desc userTBL;

-- 구매 테이블 생성 
create table buyTBL(
	id int not null auto_increment, 
    userName char(3) not null, 
    prodName char(3) not null, 
    price int not null, 
    amount int, 
    primary key(id),
    foreign key(userName) references userTBL(userName)
);

show tables;
select * from buyTBL;
desc buyTBL;

 

1. foreign key (userName) references userTBL(userName):

  • 이 구문은 외래 키(foreign key)를 정의하는 데 사용된다.
  • 외래 키는 한 테이블의 열에 대해 다른 테이블의 열을 참조하는데 사용된다. 이를 통해 테이블 간의 관계를 설정하고 데이터 무결성을 유지할 수 있다.
  • 예를 들어, 위의 구문은 현재 테이블의 userName 열을 외래 키로 정의하고, 이 외래 키가 userTBL 테이블의 userName 열을 참조하도록 설정한다. 이는 현재 테이블의 userName 열이 userTBL 테이블의 userName 열에 있는 값 중 하나여야 한다는 의미한다.

 2. auto_increment:

  • 이는 열에 대한 속성으로, 해당 열의 값이 자동으로 증가하도록 설정한다.
  • 보통 이 속성은 주로 기본 키(primary key) 열에 사용되며, 새로운 레코드가 삽입될 때마다 자동으로 값이 증가하여 고유한 식별자를 생성한다.
  • 일반적으로 auto_increment 속성은 정수 데이터 타입에만 사용된다. 대표적으로 INT나 BIGINT와 같은 정수형 데이터 타입과 함께 사용된다.
  • 예를 들어, id INT AUTO_INCREMENT PRIMARY KEY와 같이 정의하면 id 열은 자동으로 1씩 증가하는 고유한 값을 가지게 된다. 새로운 레코드가 삽입될 때마다 자동으로 증가하는 식별자가 생성된다.

'MySQL > MySQL 기본' 카테고리의 다른 글

[MySQL] SELECT 구문과 조건절  (1) 2024.06.04
[MySQL] INSERT 구문과 제약 사항  (0) 2024.06.04
[MySQL] 테이블 생성과 제약 사항 연습  (0) 2024.06.03
[MySQL] 테이블에 데이터 입력  (0) 2024.05.29
[MySQL] 데이터베이스란  (0) 2024.05.28
'MySQL/MySQL 기본' 카테고리의 다른 글
  • [MySQL] INSERT 구문과 제약 사항
  • [MySQL] 테이블 생성과 제약 사항 연습
  • [MySQL] 테이블에 데이터 입력
  • [MySQL] 데이터베이스란
미로910
미로910
개발자를 꿈꾸는 민경이의 기록 블로그
  • 미로910
    개발 note
    미로910
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 설치 메뉴얼
      • HTML
      • JAVA
        • Java 기초
        • Java 응용
        • 자료구조
        • HTTP
        • JSP 프로그래밍
      • MySQL
        • MySQL 기본
        • 1일 1쿼리
      • CSS
      • Spring boot
      • JS
        • 게시판 만들기
      • Git
      • Flutter
        • MVVM 활용
        • 심화 버전
        • 1일 1 Flutter
      • 디자인 패턴의 활용
      • error note
      • My Project
        • [졸작] LLM 기반 특허 유사도 분석 시스템
        • 도서 관리 프로그램 (final project)
        • amigo
        • 친구 매칭 프로그램(FMP)
      • Python
      • 딥러닝
      • 네트워크
      • 공부 노트
        • 연구회
        • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 전체보기
    • -----------------------
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미로910
[MySQL] 데이터베이스 모델링
상단으로

티스토리툴바