오늘은 부트캠프 53일차이다. 오전에 SQL 강의를 듣고 오후에는 JWT와 시큐리티 보안 관련해서 복습을 하였다. 저녁을 먹고 난 후에는 알고리즘 문제를 풀었다. 오늘 새로운 SQL 강의를 지급을 받았고 내일부터 꾸준히 들으면 좋을 것 같다. JWT와 보안을 이번주까지 복습을 해야 다음주부터 당장 프로젝트 시작이라서 도움이 될 것 같다.
오늘 배운 것
1. 내부 조인(Inner Join)
-각 회원은 구매를 여러번 할 수 있다.
-A는 회원테이블에는 1개, 구매테이블에는 여러 개가 있다.(일대다 관계)
-회원 테이블의 PK가 구매테이블에 FK로 들어가 있다.
-구매한 기록이 있는 회원들만 출력된다. 구매 테이블에 없는 전체 회원들까지 출력하고 싶으면 외부 조인을 사용해야 한다.SELECT <열 목록> FROM <첫 번째 테이블> INNER JOIN <두 번째 테이블> -- INNER JOIN은 'INNER' 생략가능 ON <조인될 조건> [WHERE 검색 조건]
-추가적으로 테이블 이름에 별칭을 붙일 수 있다.
SELECT buy.mem_id, member.mem_name, buy.prod_name, member.addr FROM buy JOIN member ON buy.mem_id = member.mem_id; -- 테이블 이름에 별칭을 붙이면 SELECT B.mem_id, M.mem_name, B.prod_name, M.addr FROM buy B JOIN member M ON B.mem_id = M.mem_id;
2. 외부 조인(Outer Join)
-두 테이블을 조인할 때 필요한 내용이 한쪽 테이블에만 있어도 결과를 추출 할 수 있다.
SELECT <열 목록> FROM <첫 번째 테이블(LEFT 테이블)> <LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)> ON <조일될 조건> [WHERE 검색 조건];
3. 상호조인(Cross Join)
-한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능이다.
-상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 된다.
-카티션 곱(CARTESIAN PRODUCT)라고도 한다.SELECT<열 목록> FROM <첫 번째 테이블> CROSS JOIN <두 번째 테이블>
4. 자체 조인(Self Join)
-자기 자신과 조인하므로 1개의 테이블을 사용한다. 별도의 문법이 있는 것은 아니고 1개로 조인하면 자체 조인이 된다.
SELECT <열 목록> FROM <테이블> INNER JOIN <테이블> ON <조인될 조건> [WHERE 검색 조건]