Database ‐ Database 기본 - dnwls16071/Backend_Summary GitHub Wiki

📚 SQL(Structured Query Language)

  • 관계형 데이터베이스의 표준 언어
  • SQL의 중요한 특징 : 선언적 언어(Declarative Language) -> 데이터베이스에게 어떻게 데이터를 가져올지 지시하는 것이 아니라 무엇을 원하는지만 선언적으로 명시한다.

📚 데이터 타입

숫자 타입 - 정확한 숫자 타입

타입 저장 공간(Bytes) 설명
INTEGER, INT 4 가장 일반적으로 사용되는 정수 타입
TINYINT 1 매우 작은 정수를 저장할 때 사용
SMALLINT 2 작은 정수를 저장할 때 사용
MEDIUMINT 3 중간 크기의 정수를 저장할 때 사용
BIGINT 8 매우 큰 정수를 저장할 때 사용
DECIMAL, NUMERIC 가변 고정 소수점 숫자를 정확하게 저장할 때 사용되며 금융 데이터와 같이 정확한 계산이 필요할 때 사용
BIT 가변 하나 이상의 비트 값을 저장

숫자 타입 - 근사치 숫자 타입

타입 저장 공간(Bytes) 설명
FLOAT 4 단정밀도 부동 소수점 숫자로 정밀도가 아주 중요하지 않은 실수 값에 사용된다.
DOUBLE 8 배정밀도 부동 소수점 숫자로 더 큰 범위와 높은 정밀도를 가진다.

문자열 타입

  1. VARCHAR(N) : 최대 N글자까지 저장되는 가변 길이 문자열
  • 이름, 주소처럼 길이가 제각각인 데이터에 사용하면 저장 공간을 효율적으로 쓸 수 있다.
  1. CHAR(N) : 항상 N글자를 차지하는 고정 길이 문자열
  • 성별 코드나 우편번호처럼 항상 길이가 정해진 데이터에 사용하면 VARCHAR보다 아주 약간의 이점을 가질 수 있다.
  1. TEXT : 매우 긴 텍스트를 저장할 때 사용된다.
  • 상품 상세 설명, 장문 리뷰, 블로그 게시물 본문처럼 긴 글 작성에 적합하다. 자주 사용하진 않는다.

날짜와 시간 타입

  1. DATE : 날짜 정보만 저장한다.
  2. DATETIME : 날짜와 시간 정보를 저장한다.
  3. TIMESTAMP : DATETIME과 유사하게 날짜와 시간을 저장하나 특별한 기능이 있다.
  • 타임존(Timezone) 자동 변환 : TIMESTAMP는 데이터를 저장할 때 현재 서버 타임존을 기준으로 UTC(협정 세계시)로 변환하여 저장하고, 데이터를 조회할 때는 현재 서버 타임존에 맞춰 다시 변환해서 보여준다.

기타 타입

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

📚 제약 조건

NOT NULL : 필수 입력 항목 지정

  • 해당 제약 조건이 걸린 열에는 NULL값을 허용하지 않는다. 즉, 데이터를 INSERT 할 때, 이 열의 값은 반드시 입력되어야 한다.

UNIQUE : 중복 불가 항목 지정

  • 해당 제약 조건이 걸린 열의 값은 테이블 내에서 항상 고유해야만 한다. 즉, 중복된 값을 허용하지 않는다.
  • PRIMARY KEY와의 차이점 : PRIMARY KEY는 테이블당 단 하나만 존재할 수 있지만, UNIQUE는 여러 열에 설정할 수 있다.

PRIMARY KEY(PK) : 테이블의 대표 식별자

  • 테이블의 모든 행을 유일하게 식별하는 열, NOT NULL과 UNIQUE의 특징을 모두 가진다. 모든 테이블에는 반드시 PRIMARY KEY가 있어야 한다.
  • AUTO_INCREMENT : MySQL에서 PRIMARY KEY에 자주 사용하는 옵션이다. 정수 타입의 PRIMARY KEY 열에 이 옵션을 설정하면 새로운 데이터가 추가될 때마다 1씩 자동으로 증가하는 번호를 할당해준다.

FOREIGN KEY(FK)

  • 한 테이블을 다른 테이블과 연결하는 관계의 고리. 참조하는 열의 값은 반드시 참조되는 테이블의 PRIMARY KEY 값 중 하나여야 한다는 참조 무결성을 강제한다.

DEFAULT

  • 데이터를 INSERT할 때, 특정 열의 값을 명시하지 않으면 자동으로 설정된 기본값이 입력된다.

CHECK

  • 컬럼에 입력되는 값이 특정 조건을 만족하는지 검사