개발노트

2. [MySQL] Table 생성하기 본문

DB/MySQL

2. [MySQL] Table 생성하기

mroh1226 2024. 4. 4. 11:06
반응형

MySQL로 아래와 같은 ERD와 같이 cocktail Table을 생성해보겠습니다.

 

 

칼럼명 설명
cocktail_id int [pk] 1 식별ID
name nvarchar 올드패션드 칵테일 이름
detail nvarchar 클래식한 맛의 위스키… 칵테일에 대한 설명
sweetness double  6 당도 6/10
acidity double  2 산도 2/10
strength double   9 강도 9/10
build_id int 1 빌드방식 build 테이블로 부터 참조
*예시) 1: 쉐이킹, 2: 빌드, 3: 스터
state int 1 1: 사용중 / 0: 미사용
created_at datetime 2024-04-04 생성일

 

적용할 조건들

  1. detail을 제외한 나머지 칼럼의 값들은 NULL이 될 수 없습니다.
  2. cocktail_id 는 자동으로 식별숫자가 1씩 증가해야하며, Primary Key가 됩니다.
  3. sweetness, acidity,strength(당도,산도,강도)는 값이 없을때 DEFAULT "0"으로 입력됩니다.
  4. build_id는 build라는 테이블의 Primary Key를 참조하는 참조키입니다.
  5. state는 DEFAULT로 "1"로 입력됩니다.
  6. created_at은 Insert되는 시간을 값으로 갖습니다.

완성된 쿼리

Create Table cocktail(
	cocktail_id Int AUTO_INCREMENT PRIMARY KEY,
	name nvarchar(255) NOT NULL,
	detail nvarchar(255),
	sweetness double NOT NULL DEFAULT 0,
	acidity double NOT NULL DEFAULT 0,
	strength double NOT NULL DEFAULT 0,
	build_id int ,
	state int NOT NULL DEFAULT 1,
	created_at datetime DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (build_id) REFERENCE build(build_id)
);
  • cocktail_id: 칵테일의 고유 식별자로, 자동으로 증가하는 숫자입니다. 이 열은 테이블의 주요 키(primary key)로 설정되어 있으며, 각 칵테일에 대해 고유한 값을 제공합니다.
  • name: 칵테일의 이름을 저장하는 열입니다. NOT NULL 제약 조건이 적용되어 있으므로 NULL 값을 가질 수 없습니다.
  • detail: 칵테일에 대한 추가적인 설명이나 세부 정보를 저장하는 열입니다.
  • sweetness, acidity, strength: 각각 칵테일의 당도, 산도, 강도를 나타내는 열입니다. 이들은 모두 NOT NULL 제약 조건과 기본값으로 0이 설정되어 있습니다.
  • build_id: 칵테일을 만드는 방법에 대한 ID를 저장하는 열입니다. 이 열은 build 테이블의 build_id 열을 참조하는 외래 키로 설정됩니다.
  • state: 칵테일의 상태를 나타내는 열로, 기본값으로 1이 설정되어 있습니다. 일반적으로는 칵테일의 상태를 나타내는데 사용되며, 이 예에서는 어떤 의미있는 값으로 설정되어야 합니다.
  • created_at: 칵테일이 생성된 날짜와 시간을 저장하는 열입니다. 기본값으로 현재 시간을 사용하도록 설정되어 있습니다.
반응형
Comments