본문 바로가기
코딩하는 코커두드/Database (mysql, redis 등)

[Database] MySQL 워크벤치로 스키마 및 테이블 생성 1

by 코커두드 2024. 7. 20.

 

1️⃣ Workbench를 실행시킨 후 아래 사진에서 노란색으로 칠해진 아이콘을 클릭합니다.

2️⃣ 스키마 Name은 cokadood로, Charset은 utf8mb4(이모지까지 가능)로 해주었습니다.

➡ Apply를 눌러줍니다.

CREATE SCHEMA `cokadood` DEFAULT CHARACTER SET utf8mb4 ;

 

3️⃣ 테이블 생성

 

Q. InnoDB와 MyISAM?

 

 

◾ 데이터타입

- VARCHAR : 문자열

- CHAR : 글자 수가 고정된 문자열 (10자리면 10자리만 가능)

- DATE : 날짜

- DATETIME : 날짜와 시간

- TEXT : 길이가 긴 설명이나 게시글 등

- BOOLEAN : 1 = true, 0 = false

- TINYINT : 1과 0만 저장 가능. 1 = true, 0 = false

- FLOAT : 소수

- DOUBLE : FLOAT보다 긴 소수

 

◾ 옵션들

- PK : PRIMARY KEY (노란키)

- UQ : UNIQUE

- NN : NOTNULL (빈칸이면 안됨. 값이 필수여야 함)

- B : BINARY

- UN : UNSIGNED 체크시 음수 사라짐. unsigned 허용하면 음수도 저장 가능

- ZF : Zero Fill은 길이를 맞추고 싶을 때 0으로 채우는 기능으로 잘 사용하지 않음

- AI : Auto Increment는 id를 매길 때 자동으로 번호를 매겨줌. 하지만 단점도 있기에 uuid나 nanoid 사용 가능

- G : Generated Collum

- Default : 빈칸인 경우 기본 값을 넣어줌

 

4️⃣ Apply 클릭

◾ Apply를 클릭하면 자동으로 sql문이 나오며, 'cokadood', 'role_name'처럼 벡틱(')으로 감싸주는게 좋음

CREATE TABLE `cokadood`.`role_name` (
  `id` INT NOT NULL,
  `name` VARCHAR(10) NOT NULL,
  `min_salary` INT NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
  UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4;