[DB] MySQL 테이블 다루기

1. 테이블 생성

테이블은 말 그대로 데이터를 담을 표와 같다.

create table `테이블이름` (
  `컬럼1` 데이터타입 제약조건,
  `컬럼2` 데이터타입 제약조건,
  ...
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
create table `users` (
  `id` int not null auto_increment primary key,
  `name` varchar(100) not null,
  `email` varchar(100) unique key,
  `createdAt` timestamp DEFAULT current_timestamp,
  `updatedAt` timestamp DEFAULT current_timestamp
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

이 테이블은 사용자 정보를 저장하는 users 테이블이다.

  • id: 번호 자동 증가
  • name: 이름 (비어있으면 안됨)
  • email: 중복 안 되는 이메일 주소 (null 가능)
  • created_at: 생성 시간, 기본값은 현재 시간
  • updatedAt: 수정 시간

자주 사용하는 MySQL의 데이터 타입

자료형 설명
int 정수(4 Byte)
int unsigned unsigned는 속성값으로, 양수(음수의 범위만큼 양수의 범위로 더 사용할 수 있다.)
tinyint 정수(1 Byte)
bigint 정수(8 Byte)
char(n) 고정형 문자. n은 글자수를 의미. 최대 255까지 가능
사이즈를 아는 고정된 문자를 저장할 때 사용
저장된 글자수가 n 보다 작으면 공백을 채운다.
varchar(n) 가변형 문자. n은 글자수를 의미. 최대 65,535까지 가능
집주소처럼 변화가 있는 값을 저장하는 데 사용
text 가변형 큰 문자 데이터 저장
검색을 위한 인덱스가 제공되지 않음
bool 또는 boolean true 또는 false 값 저장
데이터는 0(false)1(true)로 들어간다.
datetime 날짜 저장. 타임존 지원 안함
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 날짜 저장. 타임존 지원
1970-01-01 00:00:01 ~ 2038-01-19 03:14:07
json JSON 데이터를 저장
enum(값1, 값2...) 정의한 값만 저장할 수 있는 타입

2. 테이블 수정

컬럼 추가

alter table `테이블이름` add column `컬럼이름` 데이터타입 제약조건;

컬럼명, 타입 수정

alter table `테이블이름` change column `기존컬럼이름` `새컬럼이름` 데이터타입;

컬럼 삭제

alter table `테이블이름` drop column `컬럼이름`;

3. 테이블 삭제

테이블 자체를 완전히 삭제. 복구 불가!

drop table `테이블이름`;

테이블 내용만 지우고 싶다면?

테이블은 남기고 데이터만 지우고 싶을 땐 truncate를 쓴다.

truncate table `테이블이름`;

Categories:

Updated:

Leave a comment