SQL Server Fundamental
SQL Server Fundamentals의 2번째 과정인 Joining Data in SQL 과정을 완료했다. 😁
관계형 데이터베이스 내에서 2개 이상의 테이블의 결합을 하는 과정에 대해 배워보았다.
JOINING DATA IN SQL
JOIN을 여러번 수행해야하는 경우, 테이블명을 ALIAS를 통해 지정해준다면, 편하게 가능하다.
SELECT col1
FROM tableA as A
INNER JOIN tableB as B
ON A.primarykey = B.foreignkey
USING
- 조인하려는 키 필드 값이 각 테이블에서 동일한 경우, 사용할 수 있다.
SELECT col1
FROM tableA as A
INNER JOIN tableB as B
USING (key)
SELF JOIN
- 필드의 값을 동일한 테이블 내의 동일한 필드의 다른 값과 비교 시 사용한다.
- INNER JOIN을 사용해서 SELF JOIN을 실행한다.
CASE
- if-then-else 문을 수행하는 방법
- CASE 조건을 여러개 사용할 때, 범위는 1가지 씩만 주어야한다.
CASE WHEN 조건 col THEN 결과 표시 값
ELSE 결과 표시 값 END AS 표시될 컬럼 명
OUTER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL JOIN : LEFT + RIGHT
- LEFT JOIN과 RIGHT JOIN은 테이블 간의 순서만 바꾸면, 동일한 결과가 제시된다.
CROSS JOIN
- 테이블 간의 가능한 모든 조합을 만드는 방법
- ON, USING을 사용하지 않는다.
SEMI-JOIN, ANTI-JOIN
- 오른쪽 테이블을 사용하여, 왼쪽 테이블에 보관할 레코드를 결정하는 방법
- 두 번째 테이블 값에 의존하는 WHERE 결과와 유사한 방식이다.
- SEMI-JOIN : 서브쿼리를 활용하여 'IN'을 사용 = 오른쪽 테이블의 조건과 일치
- ANTI-JOIN : 서브쿼리를 활용하여 'NOT IN'을 사용 = 오른쪽 테이블의 조건과 불일치
- 다른 테이블의 레코드에서 한 테이블의 레코드를 필터링하는데 유용하게 사용된다.
SUBQUERY
- WHERE > SELECT > FROM 순서로 많이 사용된다.
- () 내에 쿼리를 입력하여 사용한다.
- GROUP BY 대신, SELECT 서브 쿼리문을 활용 가능하다.
SELECT col1
FROM TableA
WHERE (SELECT col1
FROM TableB
WHERE col2 = value);
'Algorithm > SQL' 카테고리의 다른 글
[SQL] 데이터 캠프 수강 (5) - PostgreSQL Summary Stats and Window Functions (0) | 2021.03.23 |
---|---|
[SQL] 데이터 캠프 수강 (4) - Intermediate SQL (0) | 2021.03.21 |
[SQL] DataCamp 수강 (2) (0) | 2021.03.12 |
[SQL] DataCamp 수강 (1) (0) | 2021.03.08 |
[SQL] SQL Server 연결하기 & 데이터 베이스 생성 (0) | 2021.01.30 |