TIL - DATABASE

HyeBin, Park·2022년 3월 31일
0

TIL

목록 보기
8/12
post-thumbnail

MySQL Workbench

  • MySQL 사이트에서 제공해주는 무료 클라이언트 SQL 에디터

👉 install

  • 운영체제에 맞게 Download
  • Download 후 설치

📍 DDL : Data Define Language

🔎 CREATE

  • TABLE 생성

CREATE TABLE 테이블명 ( 컬럼명, 자료형, 조건);

🔎 DROP

DROP TABLE 테이블명

DROP TABLE IF EXISTS 테이블명 => 테이블이 존재한다면

  • 테이블 자체를 삭제 => 자동 COMMIT으로 ROLLBACK 불가능

🔎 TRUNCATE

TRUNCATE TABLE 테이블명

  • 테이블의 데이터를 한번에 제거 => CREATE TABLE 직후 상태
  • 자동 COMMIT 되는 명령어로 이미 지운 데이터를 되돌릴 수 없음
  • 트랜잭션 안에서 사용되도 다 날려버림

📍 DML : Data Manipulation Language

🔎 SELECT

SELECT 원하는 컬럼 FROM 테이블명 WHERE 조건

  • 테이블에서 레코드를 읽어오는데사용
  • WHERE을 사용해 조건을 만족하는 레코드

🔎 ORDER BY : NULL값

  • 오름차순일 경우 처음에
  • 내림차순일 경우 마지막에

🔎 INSERT

INSERT INTO 테이블명(컬럼명1, 컬럼명2, ...) VALUES(컬럼1값,컬럼2값,...);

  • 레코드 삽입

🔎 UPDATE

UPDATE 테이블명 SET 수정결과 WHERE 수정될조건

  • 조건을 기반으로 테이블에서 특정 레코드들의 필드값 수정 가능

🔎 DELETE

DELETE FROM 테블명;

  • 모든 레코드를 삭제하지만 테이블은 남아있음 => ROLLBACK 가능

DELETE FROM

  • DELETE FROM 테이블명 WHERE 조건
  • 조건에 맞으면 삭제

🔎 JOIN

FROM A JOIN B ON A. = B. (어떻게 매칭할 것인지)

  • 두 개 이상의 테이블들을 공통 필드를 가지고 통합
  • 스타 스키마로 구성된 테이블들로 분산되어 있던 정보를 통합하는데 사용
  • JOIN의 결과로 양쪽의 필드를 모두 가진 새로운 테이블이 만들어짐

🔎 JOIN 종류

(1) INNER JOIN : 교집합 => DEFAULT

(2) FULL JOIN : A + B => MYSQL에는 X

(3) CROSS JOIN : 모든 조합에 대해 통합

(4) A LEFT JOIN B : A + 교집합

(5) A RIGHT JOIN B: B + 교집합

(6) SELF JOIN : 같은 테이블을 같은 테이블끼리 조인

  • 같은 테이블을 사용하지만 ALIAS는 다르게 설정해줘야함

💡 JOIN시 고려할점

  • 중복 레코드가 없고 Primary Key의 uiqueness가 보장됨을 체크
  • 조인하는 테이블들간의 관계를 면확하게 정의
  • One to One
    • 한쪽이 부분집합이 되는 ex) session & session_channel
  • One to Many
    • 중복이 큰 문제가 된다. ex) order vs order_items
  • Many to One
    • 방향만 바꾸면 One to many와 사실상 동일
  • Many to Many
    • one to one이나 one to many 로 변경하는 것이 안전

0개의 댓글