MySQL에서 구조화해서 데이터를 저장할 것인데 이때 구조화라는 것은 테이블을 만들어 저장한다는 것을 구조화라고 한다.
이 테이블을 만든 다는 것은 예를 들어
컴퓨터에서 엑셀 파일에 과일 정보를 기록한다 생각해보면
- 엑셀 파일을 담을 폴더를 만든다.
- 폴더에 들어간다.
- 그 폴더 안에 엑셀 파일을 만든다
- 엑셀 표에 Header를 입력한다.
- 각 Header별로 서식을 지정한다.
실제 MySQL에 테이블을 만드는 것도 비슷하다.
폴더 = 데이터베이스
엑셀파일 = 테이블
엑셀파일의 헤더 = 테이블의 필드 정의
엑셀파일의 서식 = 테이블의 필드 타입
이제 MySQL에 접속해서 테이블을 만들어 볼 것이다.
데이터베이스를 만드는 명령어는
CREATE DATABASE [데이터베이스 이름];
이다.
성공했다면 1row affected라는 문구가 출력된다.
한번 잘 만들어졌는지 확인해보자.
데이터 베이스 목록을 보기 위한 명령어는
show databases; 이다.
library라는 테이블이 잘 만들어 졌다.
이번에는 지워보자!
데이터베이스를 지울때 명령어는
drop database [데이터베이스 이름]; 이다
이렇게 만들고 지우고 확인을 해보고 데이터베이스 안으로 들어가보겠다. 엑셀로 비유하자면 폴더안으로 들어가서 만드는 것이랑 같다.
안으로 들어가는 명령어는
use [데이터베이스 이름];
특정데이터베이스 안으로 들어간 것이다.
이안에 들어가면 테이블을 볼수 있는데 이 명령어는
show tables;
이제 테이블을 만들어보자 다시 명령어는
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 |
댓글