본문 바로가기
기록해보기

MySQL에서 테이블 만들기🧑‍💻

by titlejjk 2023. 6. 2.

MySQL에서 구조화해서 데이터를 저장할 것인데 이때 구조화라는 것은 테이블을 만들어 저장한다는 것을 구조화라고 한다.

이 테이블을 만든 다는 것은 예를 들어

컴퓨터에서 엑셀 파일에 과일 정보를 기록한다 생각해보면

  1. 엑셀 파일을 담을 폴더를 만든다.
  2. 폴더에 들어간다.
  3. 그 폴더 안에 엑셀 파일을 만든다
  4. 엑셀 표에 Header를 입력한다.
  5. 각 Header별로 서식을 지정한다.

실제 MySQL에 테이블을 만드는 것도 비슷하다.

폴더 = 데이터베이스

엑셀파일 = 테이블

엑셀파일의 헤더 = 테이블의 필드 정의

엑셀파일의 서식 = 테이블의 필드 타입

 

이제 MySQL에 접속해서 테이블을 만들어 볼 것이다.

 

데이터베이스를 만드는 명령어는 

CREATE DATABASE [데이터베이스 이름];

이다.

성공했다면 1row affected라는 문구가 출력된다.

한번 잘 만들어졌는지 확인해보자.

데이터 베이스 목록을 보기 위한 명령어는

show databases; 이다.

library라는 테이블이 잘 만들어 졌다.

이번에는 지워보자!

데이터베이스를 지울때 명령어는

drop database [데이터베이스 이름]; 이다

지우고 다시 만들어주었다..

이렇게 만들고 지우고 확인을 해보고 데이터베이스 안으로 들어가보겠다. 엑셀로 비유하자면 폴더안으로 들어가서 만드는 것이랑 같다.

안으로 들어가는 명령어는

use [데이터베이스 이름];

특정데이터베이스 안으로 들어간 것이다.

이안에 들어가면 테이블을 볼수 있는데 이 명령어는

show tables;

테이블을 만든적이 없어 Empty

이제 테이블을 만들어보자 다시 명령어는

create table 을 적어주고 만들고 싶은 테이블 이름을 적어준 후에 괄호 ( 를 쳐준다 끝에는 세미콜론 ; 을 붙여 준다.

이 괄호 안에는

이 테이블에는 어떤 필드가 어떤 타입으로 있어 라는 식으로 적어준다.

과일 정보를 저장하는 테이블을 예시로 만들어보자

잠시 MySQL의 타입에대해서 알아보자면

정수타입 👉

intyint 1바이트 정수
int 4바이트 정수
bigint 8바이트 정수

자바로 비유를 하자면 intyint 는 byte, int는 int, bigint는 long으로 생각하면된다.

id는 혹시나 21억건을 넘을 수도 있기에 가장 큰 bigint를 사용한다.

실수타입👉

double 8바이트 정수

decimal(A,B) : 소수점을 B개 가지고 있는 전체 A자릿수 실수

Decimal(4,2) = 12,23 소수점을 2개 가지고 있는 4자리 숫자라는 뜻이다.

문자열타입👉

char(n) n만큼 글자가 들어갈 수 있는 문자열
varchar(n) 최대 n글자가 들어갈 수 있는 문자열

char같은 경우에는 무조건 고정되게 들어가게 되고 varchar는 1~최대 n개 까지 랜덤하게 글자 수를 넣을 수 있다.

날짜, 시간 타입👉

date 날짜, yyyy-MM-dd
time 시간, HH:mm:ss
datetime 날짜와시간을 합친 타입,yyyy-MM-dd HH:mm:ss

위 테이블 생성명령어를 정리해보자면

자동으로 1씩 올라가는 정수 id, 최대 20글자가 들어가는 과일이름, 정수가 들어가는 과일의 가격, 날짜가 들어가는 재고 일자가 있다.

이 타입 정보를 바탕으로 엑셀로 비유해 보자면 아래와 같다.

  • id bigint auto_increment
    엑셀 가장 왼쪽의 넘버링, 자동으로 1씩증가
  • name varchar(20)
    최대 20자가 들어갈 수 있는 이름
  • price int
    정수가 들어갈 수 있는 가격
  • stocked_date
    날짜가 들어가는 입고일자

오늘 정리해본 것은 DDL(Data Definition Language)라고 한다.

데이터를 저장할 때 어떤식으로 저장할지 데이터를 정의하는 언어이다. 테이블을 만드는 것도 서식이나 타입들을 지정하는 것을 말한다.

'기록해보기' 카테고리의 다른 글

Spring에서 Database 사용하기  (1) 2023.06.03
테이블의 데이터를 조작하기  (0) 2023.06.02
Database와 MySQL  (1) 2023.06.02
정리한번 하고 갈께요 🧑‍💻  (0) 2023.06.02
유저 조회 API 개발과 테스트  (0) 2023.06.02

댓글