포스트

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, INT4가장 일반적으로 사용되는 정수 타입
TINYINT1매우 작은 정수를 저장할 때 사용
SMALLINT22작은 정수를 지정할때 사용
MEDIUMINT3중간 크기의 정수를 저장할 때 사용
BIGINT8매우 큰 정수를 저장할 때 사용
DECIMAL, NUMERIC가변고정 소수점 숫자를 정확하게 저장할 때 사용
FLOAT4단정밀도 부동 소수점 숫자 정밀도가 아주 중요하지 않은 실수 값에 사용
DOUBLE8배정밀도 부정 소수점 숫자. FLOAT보다 더 큰 범위와 높은 정밀도를 가짐

문자열 타입

타입설명
VARCHAR(n)최대 n글자까지 저장되는 가변길이 문자열
CHAR(n)최대 n글자까지 저장되는 고정길이 문자열
TEXT매우 긴 텍스트를 저장할 때 사용

날짜 및 시간 타입

타입저장 형식저장 공간(Bytes)값의 범위주요 특징
DATEYYYY-MM-DD31000-01-01 - 9999-12-31날짜만 저장
TIMEHH:MM:SS3-838:59:59 - 838:59:59시간 정보 또는 경과 시간을 저장
DATETIMEYYYY-MM-DD HH:MM:SS51000-01-01 00:00:00 - 9999-12-31 23:59:59날짜와 시간을 함께 저장
TIMESTAMPYYYY-MM-DD HH:MM:SS41970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC날짜와 시간을 함께 저장하며 타임존을 자동 변환
YEARYYYY11901 - 2155연도만 저장

DATETIME vs TIMESTAMP

  • TIMESTAMP는 2038년까지의 데이터만 보관할 수 있는 문제가 있음
  • TIMESTAMP의 행의 생성/수정 시 자동으로 현재 시간을 기록해주는 기능을 이재는 DATETIME도 지원함
  • TIMESTAMP의 저장공간이 약간 작지만 현대의 하드웨어와 DB에서는 미미한 차이
  • 글로벌 서비스를 운영하는 경우 애플리케이션에서 DATETIME에 보관할 때 UTC 시간을 기준으로 변경해서 보관하면 됨

따라서 DATETIME 사용을 권징

기타 타입

  • BLOB: 이미지, 오디오, 비디오 같은 이진(Binary) 대용량 데이터를 저장
  • ENUM: 단일 선택 타입. 미리 정의한 값 목록 중 하나만 선택하여 저장
  • SET: 다중 선택 타입. 미리 정의한 값 목록 중 여러 개를 동시에 선택하여 저장

제약 조건

  • NOT NULL: 필수 입력 항목 지정
  • UNIQUE: 중복 불가 항목 지정
  • PRIMARY KEY(PK): 테이블의 대표 식별자
  • FOREIGN KEY(FK): 테이블 간의 관계 설정
  • DEFAULT: 기본값 설정
  • CHECK: 컬럼에 입력되는 값이 특정 조건을 만족하는지 검사

참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.