-
[MSSQL] 10일 만에 마스터하는 MS SQL 실무 5,6 편Backend/database 2024. 2. 15. 20:18
https://www.youtube.com/watch?v=XA6iE1iYkPM&list=PL1VTPqi5Xgu9pr3oK_j4ranMGEn6fKMFp&index=7
JOIN이란?
SQL의 가장 강력한 기능
SQL SELECT 로 수행할 수 있는 매우 중요한 작업
JOIN을 사용하는 방법
하나의 열로 할 수도 있고 여러 열을 기준으로 할 수도 있음
테이블 이름이 긴 경우 ALIAS를 지정하여 간단하게 작성
JOIN의 종류
INNER JOIN
일반적인 JOIN
두 테이블에 모두 존재하는 행을 기준으로 결합
> JOIN의 기본으로 INNER를 생략할 수 있다.
LEFT JOIN
왼쪽 테이블의 모든 레코드는 일단 가져오고 일치하는 오른쪽 레코드를 붙여줌
오른쪽 테이블에 데이터가 없으면 NULL(비어있음) 을 채움
RIGHT JOIN
LEFT JOIN 과 같지만 오른쪽 테이블 기준임.
> 실무에서는 자주 사용하지 않는다.
> 테이블 위치를 바꿔 LEFT를 사용하는 경우가 많다.
FULL OUTER JOIN
양쪽의 모든 레코드를 가져오고 일치하지 않는 부분은 NULL로 채움
> 모든 조합을 일단 다 감안하는 방법
> 두 테이블로 나올 수 있는 모든 경우의 수로 연결한 다음 조건을 찾아 나가는 형식
> JOIN과 LEFT JOIN, RIGHT JOIN의 결과를 모두 합친 결과
JOIN을 중첩하는 SYNTAX
JOIN은 계속 중첩해서 사용할 수 있음
문법 자체는 특별히 달라지는 게 없고 JOIN을 연속해서 계속 사용하기만 하면 됨
JOIN 구문
관계형 데이터베이스가 주류가 되도록 만든 주역
데이터 성격별로 테이블을 따로 구분하고 합칠 때는 JOIN을 사용하여 원하는 형태로 보여주는 방식이 RDB의 핵심
쿼리의 출력
1. 테이블
1) 단일 열 테이블
2) 다중 열 행렬
2. 단일 값
출력을 활용한 (서브쿼리) 또 다른 작업 (메인 쿼리)
단일 값, 단일 열 테이블, 다중 열 행렬 > 결과를 재사용
서브쿼리를 문법적으로 구분하는 가장 쉬운 방법 > 괄호로 묶여져 있다는 점이다!
1. 테이블 형태의 서브쿼리
서브쿼리를 이용하는 SYNTAX
원래 테이블이 존재하던 위치에 서브쿼리의 결과가 하나의 테이블 형태가 되면 사용할 수 있음
가장 많이 사용하는 방법 > 테이블로써 서브쿼리를 사용하는 방법!
2. 단일값 형태의 서브쿼리
단일 값을 반환하기 때문에 값이 활용되는 모든 위치에 괄호 형태로 들어갈 수 있음
3. 단일 열 테이블
열이 하나밖에 없는 테이블
테이블 위치에서도 사용할 수 있지만 WHERE 절에서도 사용할 수 있음
WHERE 절에서는 주로 IN 구문을 함께 사용한다.
IN
한 칼럼에 여러 값 조건들을 넣고 싶을 때 사용
한 칼럼에 대하여 OR 구문을 너무 자주 쓰게 되는 경우 코드가 지저분해져서 나오게 된 코드
칼럼 IN (A, B, C)
> 단일 열 테이블이 들어가는 서브쿼리로 대체 가능
서브쿼리
장점
다양한 위치에서 사용 가능
여러 번 중첩해서 사용 가능
단점
서브쿼리가 너무 많아지면 코드가 지나치게 복잡해져 읽기 힘들어진다.
> 자주 사용하는 서브쿼리를 하나의 문장으로 저장해 테이블 처럼 사용하도록 도와주는 VIEW 기능!
VIEW
하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상의 테이블
저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 사용
필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단함
VIEW를 이용하는 SYNTAX
CREATE VIEW 뷰 이름 AS SELECT를 사용한 쿼리문> 함수를 배울 때는 CREATE FUNCTION, 테이블 생성을 배울 때는 CREATE TABLE 등으로 많이 사용한다.
> 생성된 VIEW는 계속 테이블 처럼 사용할 수 있다.
VIEW 삭제 : DROP VIEW 뷰 이름
뷰 스크립팅 > 생성, 수정, 삭제도 가능하다.
WITH 구문
서브쿼리를 재사용하는 방법 중 VIEW 처럼 CREATE, DROP 등으로 코드를 생성하지 않고도 쓸 수 있는 방법
WITH 를 사용해 서브쿼리를 정의하고 정의된 이름을 계속 사용한다는 점에서 VIEW와 유사하다.
하지만 다른 코드에서의 반복 사용성이 낮은 경우 VIEW 보다 WITH 가 더 유용하다.
서브쿼리 + VIEW, WITH (서브쿼리 때문에 길어지는 코드를 단순화해서 사용할 수 있도록 도와준다.)
'Backend > database' 카테고리의 다른 글
[MSSQL] 10일 만에 마스터하는 MS SQL 실무 9, 10 편 (0) 2024.02.18 [MSSQL] 10일 만에 마스터하는 MS SQL 실무 7, 8편 (0) 2024.02.17 [MSSQL] 10일 만에 마스터하는 MS SQL 실무_1~4편 (0) 2024.02.13