Basic
//mysql 계정 접속(with password)
mysql -uroot -p
//mysql 종료
exit
//Database 조작
CREATE DATABASE test; //Database 생성
DROP DATABASE test; //Database 삭제
SHOW DATABASES; //Database 목록 확인
USE test; //Database 접근
Table
//Table 생성
CREATE TABLE topic(
//정수(10진수 11자리 이상 X)형 id culume 생성(NULL X, 자동 증가)
id INT(11) NOT NULL AUTO_INCREMENT,
//VARCHR(variable char)형 title culume 생성(NULL X)
title VARCHAR(100) NOT NULL,
//TEXT형 description culume 생성(NULL 허용)
description TEXT NULL,
//DATETIME(날짜 및 시간)형 created 생성(NULL X)
created DATETIME NOT NULL,
//VARCHAR형 author culume 생성(NULL 허용)
author VARCHAR(15) NULL,
//VARCHAR형 profile culume 생성(NULL 허용)
profile VARCHAR(200) NULL,
//PRIMARY KEY를 id로 지정
PRIMARY KEY(id)
);
//Table 조작
SHOW TABLES; //Table 목록 확인
DESC topic; //특정 Table 형식 확인
- 숫자형
- INT : maxsize limit 지정 가능
- TINYINT(1) < SMALLINT(2) < MEDIUMINT(3) < INT(4) < BIGINT(8)
- 부동 소수형(길이, 소수) : FLOAT(4 bytes), DOUBLE(8 bytes)
- 고정 소수형 : DECIMAL(길이, 소수) → 길이 + 1 bytes 소수점 사용
- 문자열
- TEXT vs. VARCHAR(size) : Variable length data type(크기 탐색 O)
- maxsize limit → TEXT(65535) vs. VARCHAR(~ 65535)
- string size → TEXT(2 bytes) vs. VARCHAR(1 ~ 2 bytes)
- index 사용 가능 여부 → TEXT(X) vs. VARCHAR(O)
- 저장 위치 → TEXT(Disk) vs. VARCHAR(Memory)
- TINYTEXT < TEXT < MEDIUMTEXT < LONGTEXT
- CHAR : Fixed length → 최대 255 bytes 사이즈가 고정일 때 유용(크기 탐색 X)
- JSON : JSON 문자열 데이터 타입
- 날짜
- DATE : YYYY-MM-DD(1000-01-01 ~ 9999-12-31)
- DATETIME : YYYY-MM-DD HH:MM:SS(00:00:00 ~ 23:59:59) → 8 byte 문자형(수동 입력)
- TIME : HH:MM:SS(-838:59:59 ~ 838:59:59)
- TIMESTAMP : epoch time 기준(~ 2038-01-19 03:14:07 ) → 4 bytes 숫자형(자동 저장)
- 이진 데이터 타입
- BINARY(n) & BYTE(n) : CHAR 형태 이진 데이터 타입(~ 255 bytes)
- VARBINARY(n) : VARCHAR 형태 이진 데이터 타입(~ 65535 bytes)
- 이진 데이터 타입 : TINYBLOB(~ 255 bytes), MEDIUMBLOB, LONGBLOB
- UNIQUE KEY(UNIQUE INDEX) : value 값을 유일하게 만듬, NULL 가능
- PRIMARY KEY : 한 개 or 여러 개의 칼럼을 통한 각 행 구분을 목적, 대푯값
- NOT NULL과 UNIQUE KEY 특성을 모두 지님