본문 바로가기

Data/MariaDB

DB] DDL(데이터 정의어) / 테이블

 

root 에서 해줄 일이 끝났으니 root가 있는 localhost 라는 데베 말고 다른 데베를 만들어서 그 곳에서 web_user 라는 사용자로 테이블을 만들고 데이터 넣고 빼고 쿼리문 연습을 해보자.

새로운 Database 생성

 

데이터베이스( 자바에서 패키지) 의 테이블은 자바에서의 클래스라고 생각하면 쉽다.

테이블 생성, 수정, 삭제는 DDL(데이터 정의어) - CREATE / ALTER / DROP 로 한다.

1. 테이블 생성

테이블 생성 (CREATE)
CREATE TABLE [테이블 이름]( [컬럼명] [데이터 타입] [사이즈] );

  • [컬럼명] [데이터 타입] [사이즈] 은 한 세트.
  • 테이블에 넣을 컬럼끼리는 콤마로 구분한다.
  • 마지막 컬럼 뒤에는 콤마를 붙이지 않는다.
  • 쿼리문 마지막에 세미콜론 주의!
  • 줄바꿈, 들여쓰기는 보기 좋기위해 하는 것이다. 해주는 게 가시성에 좋은 듯 하다.

 

테이블 생성 쿼리문에 [컬럼명] [데이터 타입] [사이즈] 가 있는데 자세히 알아보자.


1. 데이터타입

데이터 타입에는 크게 문자, 숫자, Boolean, 날짜 타입이 있다.

1) 문자타입

  • 검색 속도가 가장 빠르다. 왜냐면 인덱스라는 걸 쓰는데 그게 문자에 최적화 되어있음
  • 문자 하나 = 3byte
  • 고정형(CHAR(바이트)) - 크기를 지정하면 변하지 않는다.
  • 가변형(VARCHAR(바이트)) - 크기를 지정해도 그보다 작은 값이 들어오면 줄어든다.
  • TEXT(큰 문자열) - 65,535 byte
  • LONGTEXT(더 큰 문자열) - 4,294,967,296 byte

char 과 varchar 의 차이점은 
만약 char(6) 과 varchar(6) 으로 필드 생성을 해놓고
필드에 4byte 만 들어갔다면 varchar는 2byte를 줄이고 4byte만 차지하고 있는데
char는 몇 바이트가 들어오든지간에 6byte를 차지하고 있다. (메모리 낭비)

 

2) 숫자타입

  • int, float, double, bigint

3) BOOLEAN

  • 참, 거짓

4) 날짜 타입

  • DATE <- 0000-00-00
  • DATETIME <- 0000-00-00 00:00:00
  • TIMESTAMP <- DATETIME 과 같다. 하지만 time zone(서버 시간) 에 따라 시간이 변경 된다.
  • default CURRENT_DATE <- 현재 날짜(CURRENT_DATE) 를 기본(default)으로 한다.

 

테이블 구조 확인
desc [이름];

쿼리문, 실행 결과

 

<연습해보기>

더보기

쿼리문

콤마를 앞에 붙이는 거는 강사님이 알려주신 꿀팁.
마지막 필드에는 콤마 붙이면 안되는데 적다보면 붙어있어서 오류가 나기 때문에
앞에 적는 습관 들이는 것도 좋다고 하셨다.

테이블 목록 확인하기
show tables;

 

2. 테이블 삭제

테이블 삭제 (DROP)
DROP TABLE [이름];

 

3. 테이블 수정

테이블 수정 (ALTER)

1) 컬럼의 이름 바꾸기 (기존 데이터가 삭제 될 수 있으니 주의)
ALTER TABLE [테이블 이름] RENAME COLUMN [변경 전 이름] TO [변경 후 이름];

 

2) 컬럼 추가
ALTER TABLE [테이블 이름] ADD ([컬럼명] [데이터타입]([사이즈]));

 

3) 테이블 속성 변경 (기존 데이터가 남아 있으면 안된다.)

- 테이블 속성 변경은 특정 컬럼의 데이터타입이나 사이즈를 변경
- 테이블 데이터 변경과 헷갈렸었는데 주의하기!
- 테이블 속성 수정 = alter / 테이블 데이터 수정 = update

 

4) 컬럼 삭제
ALTER TABLE [테이블 이름] DROP COLUMN [컬럼명];

삭제라고 하니까 DROP 이랑 헷갈렸는데 
테이블 삭제 = DROP  /  테이블의 컬럼 삭제 = ALTER, DROP

 





'Data > MariaDB' 카테고리의 다른 글

DB] DML 2 - SELECT  (0) 2022.04.28
DB] DML 1 - INSERT / UPDATE / DELETE / UPSERT  (0) 2022.04.28
DB] DBeaver 사용  (0) 2022.04.28
DB] DDL(데이터 정의어) / root - 유저 생성, 권한 설정  (0) 2022.04.28
DB] Maria DB , DBeaver 설치  (0) 2022.04.25