MySQL 기본
MySQL 기본
SQL 명령어의 4가지 종류
DDL(Data Definition Language, 데이터 정의어)
- 목적: 데이터의 구조를 정의하고 관리하는 언어
- 주요 명령어
CREATE: 테이블 생성ALTER: 테이블 구조 변경DROP: 테이블 삭제
DML(Data Manipulation Language, 데이터 조작어)
- 목적: 데이터 안에 들어있는 실제 데이터를 지겆ㅂ ㅈ작(추가 , 조회, 수정, 삭제)하는 언어
- 주요 명령어
INSERT: 데이터 추가SELECT: 데이터 조회UPDATE: 데이터 수정DELETE: 데이터 삭제
DCL(Data Control Language, 데이터 제어어)
- 목적: 데이터에 대한 접근 권한을 부여(
GRANT) 하거나 회수(REVOKE) 하는 등, 데이터의 보안과 관련된 권한을 제어 - 주요 명령어
GRANT: 권한 부여REVOKE: 권한 회수
TCL(Transaction Control Language, 트랜잭션 제어어)
- 목적: DML에 의해 수행된 데이터 변경 작업을 하나의 거래 단위로 묶어서 관리하는 언어
- 주요 명령어
COMMIT: 트랜잭션의 모든 작업을 최종저긍로 확정, 저장ROLLBACK: 트랜잭션의 모든 작업을 취소하고 이전 상태로 되돌림
데이터 타입
숫자 타입
| 타입 | 저장 공간(bytes | 설명 |
|---|---|---|
INTEGER, INT | 4 | 가장 일반적으로 사용되는 정수 타입 |
TINYINT | 1 | 매우 작은 정수를 저장할 때 사용 |
SMALLINT | 22 | 작은 정수를 지정할때 사용 |
MEDIUMINT | 3 | 중간 크기의 정수를 저장할 때 사용 |
BIGINT | 8 | 매우 큰 정수를 저장할 때 사용 |
DECIMAL, NUMERIC | 가변 | 고정 소수점 숫자를 정확하게 저장할 때 사용 |
FLOAT | 4 | 단정밀도 부동 소수점 숫자 정밀도가 아주 중요하지 않은 실수 값에 사용 |
DOUBLE | 8 | 배정밀도 부정 소수점 숫자. FLOAT보다 더 큰 범위와 높은 정밀도를 가짐 |
문자열 타입
| 타입 | 설명 |
|---|---|
VARCHAR(n) | 최대 n글자까지 저장되는 가변길이 문자열 |
CHAR(n) | 최대 n글자까지 저장되는 고정길이 문자열 |
TEXT | 매우 긴 텍스트를 저장할 때 사용 |
날짜 및 시간 타입
| 타입 | 저장 형식 | 저장 공간(Bytes) | 값의 범위 | 주요 특징 |
|---|---|---|---|---|
DATE | YYYY-MM-DD | 3 | 1000-01-01 - 9999-12-31 | 날짜만 저장 |
TIME | HH:MM:SS | 3 | -838:59:59 - 838:59:59 | 시간 정보 또는 경과 시간을 저장 |
DATETIME | YYYY-MM-DD HH:MM:SS | 5 | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 날짜와 시간을 함께 저장 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 4 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 날짜와 시간을 함께 저장하며 타임존을 자동 변환 |
YEAR | YYYY | 1 | 1901 - 2155 | 연도만 저장 |
DATETIME vs TIMESTAMP
TIMESTAMP는 2038년까지의 데이터만 보관할 수 있는 문제가 있음TIMESTAMP의 행의 생성/수정 시 자동으로 현재 시간을 기록해주는 기능을 이재는DATETIME도 지원함TIMESTAMP의 저장공간이 약간 작지만 현대의 하드웨어와 DB에서는 미미한 차이- 글로벌 서비스를 운영하는 경우 애플리케이션에서
DATETIME에 보관할 때 UTC 시간을 기준으로 변경해서 보관하면 됨
따라서 DATETIME 사용을 권징
기타 타입
BLOB: 이미지, 오디오, 비디오 같은 이진(Binary) 대용량 데이터를 저장ENUM: 단일 선택 타입. 미리 정의한 값 목록 중 하나만 선택하여 저장SET: 다중 선택 타입. 미리 정의한 값 목록 중 여러 개를 동시에 선택하여 저장
제약 조건
NOT NULL: 필수 입력 항목 지정UNIQUE: 중복 불가 항목 지정PRIMARYKEY(PK): 테이블의 대표 식별자FOREIGNKEY(FK): 테이블 간의 관계 설정DEFAULT: 기본값 설정CHECK: 컬럼에 입력되는 값이 특정 조건을 만족하는지 검사
참고
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.