데이터베이스 MySQL

최정석·2023년 8월 22일
0
post-thumbnail

데이터베이스

  • 관련성을 가지며 중복이 없는 데이터들의 집합
  • SQL: 관계형 데이터베이스
  • DBMS: 데이터베이스 관리 시스템
  • RDBMS: 관계형 데이터베이스를 관리하는 시스템

컬럼에 대한 옵션들

id INT NOT NULL AUTO_INCREMENT

  • INT: 정수
  • VARCHAR: 문자열 자료형, 가변 길이(CHAR은 고정 길이)
  • TEXT: 긴 문자열은 TEXT로 별도 저장
  • DATETIME: 날짜 자료형 저장
  • TINYINT: -128에서 127까지 저장하지만 1 또는 0만 저장해 불 값 표현
    --- 자료형
  • NOT NULL: 빈 값은 받지 않는다(NULL은 빈 값 허용)
  • AUTO_INCREMENT: 숫자 자료형인 경우 다음 로우가 저장될 때 자동으로 1증가
  • UNSIGNED: 0과 양수만 허용
  • ZEROFILL: 숫자의 자리 수가 고정된 경우 빈 자리에 0을 넣음
  • DEFAULT now(): 날짜 컬럼의 기본값을 현재 시간으로
    --- 옵션
  • PRIMARY KEY(id): 고유한 값을 정함
  • INDEX 인덱스명: 자주 검색하는 테이블을 index 해두면 빠르게 찾을 수 있음
    ASC는 인덱스를 오름 차순으로 저장함(내림차순은 DESC)
  • CONSTARAINT: FOREIGN KEY와 REFERENCES와 비교해서 존재하는 KEY인지 판단
  • FOREIGN KEY: REFERENCES와 비교(외래키는 두 테이블이 관계가 있다는 것을 표시)
  • REFERENCES: FOREIGN KEY와 비교하는 테이블
    --- 옵션

테이블 관계 정의

  • 1대1 관계 (사용자와 사용자 세부 정보)
    • hasOne, belongsTo(foreignKey가 생길곳이 belongsTo)
  • 1대N 관계 (사용자와 게시글)
    • hasMany, belongsTo
  • N대 M 관계 (게시글과 해시태그, 다대다 관계)
    • 중간 테이블이 생겨야함
    • belongsToMany, through

0개의 댓글