본문 바로가기
Algorithm/SQL

[SQL] DataCamp 수강 (3)

by 호찌민 2021. 3. 14.

SQL Server Fundamental

SQL Server Fundamentals의 2번째 과정인 Joining Data in SQL 과정을 완료했다. 😁

관계형 데이터베이스 내에서 2개 이상의 테이블의 결합을 하는 과정에 대해 배워보았다.

 

<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);