diff --git a/keyword/chapter01/keyword.md b/keyword/chapter01/keyword.md new file mode 100644 index 0000000..3bd7103 --- /dev/null +++ b/keyword/chapter01/keyword.md @@ -0,0 +1,73 @@ +- DB Join이란? + + ### DB Join + + 관계형 데이터 베이스에서 두 개 이상의 테이블을 연결하여 하나의 결과 테이블로 만드는 기능 + + - 연결하려면 테이블들은 최소 하나의 속성을 공유하고 있어야 한다 + - 여러 테이블에 흩어져 있는 데이터를 조합해서 볼 때 사용 +- Join 종류들 + + ### INNER JOIN + + - 두 테이블 모두 존재하는 (공통된) 값을 가지고 있는 행들을 반환한다 + - 교집합 + + ### OUTER JOIN + + **LEFT OUTER JOIN (LEFT JOIN)** + + - 왼쪽 테이블의 모든 데이터를 유지하고 오른쪽 테이블에서는 왼쪽 테이블과 일치하는 데이터 값만 붙인다 일치하는게 없다면 NULL + + **RIGHT OUTER JOIN (RIGHT JOIN)** + + - 왼쪽 테이블의 모든 데이터를 유지하고 오른쪽 테이블에서는 왼쪽 테이블과 일치하는 데이터 값만 붙인다 일치하는게 없다면 NULL + + **FULL OUTER JOIN** + + - 양쪽 테이블의 모든 데이터를 합집합해서 반환 + - 공통된 값이 없다면 NULL + - MySQL에서는 지원하지 않아서 LEFT JOIN과 RIGHT JOIN을 UNION해서 사용한다 + + ### **CROSS JOIN** + + - 두 테이블 간에 가능한 모든 경우의 수를 반환한다 + - = 한 쪽 테이블의 행과 다른 쪽 테이블의 모든 행을 조인 + - 나오는 전체 행의 개수는 조인하는 두 테이블의 행의 개수를 각각 곱한 수 + +- 트랜잭션이란? + + ### 트랜잭션 + + 데이터 베이스에서 하나의 작업 단위 + + - 여러 SQL 작업이 실행될 때 하나라도 실패한다면 나머지 전부도 같이 실패하게 만들어서 데이터의 무결성을 보장한다 + - COMMIT : 모든 작업이 정상적으로 끝났으니 DB에 저장 + - ROLLBACK : 작업 도중 문제가 발생해 현재 작업들 모두 취소 + - **트랜잭션의 4가지 특징 → ACID** + - 원자성 Atomicity + - 작업이 하나라도 실패하면 나머지 모두 취소 + - 트랜잭션 내의 작업은 모두 성공하거나 모두 실패 + - 중간에 에러 발생하면 → ROOLBACK → 전부 취소됨 + - 일관성 Consistency + - 트랜잭션 전후로 데이터베이스의 제약 조건이나 규칙이 항상 일관되게 유지되어야 한다 + - 고립성 Isolation + - 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리되어야 한다 + - 영속성 Durability + - 성공적으로 완료된(COMMIT된) 트랜잭션의 결과는 무조건 저장이 되어야 한다 + - 영구적으로 보존 +- Join on 과 where의 차이점 + + join 과정에서 데이터 필터링이 적용되는 시점의 차이가 있다 + + ### ON + + - **조인 전 조건 필터링:** 테이블을 합치기 **전**에 어떤 기준으로 데이터를 이어 붙일지 결정 + - **기준 데이터 보존:** LEFT JOIN 등에서 기준이 되는 테이블(왼쪽)의 데이터 행을 무조건 살려두고 싶을 때 핵심 역할 + - 두 테이블의 데이터를 합칠 때 짝을 지어주는 연결 고리 조건 + + ### **WHERE** + + - **조인 후 조건 필터링:** 테이블 조인이 모두 끝난 **후**에, 임시로 완성된 결과물에서 데이터를 걸러냅니다. + - **결과물 정제:** 조인 방식과 상관없이 최종 결과 테이블에서 조건에 안 맞는 행은 모두 잘라냅니다 + - 다 합쳐진 덩어리 중에서 내가 최종적으로 화면에 보여줄 진짜 데이터만 추려내는 조건 \ No newline at end of file diff --git a/mission/chapter01/ERD.png b/mission/chapter01/ERD.png new file mode 100644 index 0000000..0bdb30b Binary files /dev/null and b/mission/chapter01/ERD.png differ diff --git a/mission/chapter01/mission.md b/mission/chapter01/mission.md new file mode 100644 index 0000000..d6bb719 --- /dev/null +++ b/mission/chapter01/mission.md @@ -0,0 +1,109 @@ +### 피어리뷰 (Spring A팀 레오) + +### 워크북 리뷰 +![워크북 캡쳐](워크북캡쳐.png) + +### 워크북 리뷰 + + +###리뷰 작성하는 쿼리 + +쿼리문 + + + + +###마이 페이지 화면 쿼리 + +쿼리문 + + + + +###내가 진행중, 진행 완료한 미션 모아서 보는 쿼리(페이징 포함) + +쿼리문 + + + + +###홈 화면 쿼리 +(현재 선택 된 지역에서 도전이 가능한 미션 목록, 페이징 포함) + +쿼리문 + + \ No newline at end of file diff --git "a/mission/chapter01/\354\233\214\355\201\254\353\266\201\354\272\241\354\263\220.png" "b/mission/chapter01/\354\233\214\355\201\254\353\266\201\354\272\241\354\263\220.png" new file mode 100644 index 0000000..1e660fc Binary files /dev/null and "b/mission/chapter01/\354\233\214\355\201\254\353\266\201\354\272\241\354\263\220.png" differ