2021.02.22 update by 슬픈앙마류
Join의 활용
- 두 개 이상의 Table, View, 혹은 Materialized View를 조합해서 하는 Query
- Join 조건은 Where 절에서 작성하며, 서로 다른 테이블에서 두 개의 column을 비교
- 여러 테이블에 동일한 column 명이 있을 경우 접두어를 붙여서 구분
※ Table Alias
1) Join시 여러 개의 테이블을 사용함으로써 야기되는 column의 모호성과 테이블의 혼란을 피하기 위해서 사용
2) FROM 절에서 테이블에 대한 임의의 Alias를 부여
3) Alias는 현재 SELECT 문에 대해서만 유효

[SQL] 3. Function
2021.02.19 update by 슬픈앙마류 기본적인 문법에 대해서 어는 정도 이해하셨을 것으로 생각합니다. 이번 게시물은 함수의 활용입니다. [SQL] 온라인에서 SQL 실행 TEST하기 2021.02.16 update by 슬픈앙마류 S
nindo.tistory.com
1. Equijoin
1) A 테이블의 PK와 B 테이블의 FK를 조인한다.
2) Primary Key 무결성 제약 조건 (PK)
- 하나의 테이블에서 중복된 2개의 row를 가지지 않기 위해 명시한 column이나 column set
- PK는 Null을 허용하지 않는다.
3) Foreign Key
- Unique Key나 Primary Key를 참조하기 위한 column
2. Outer Join
Equijoin으로 만족하지 않는 행을 출력할 때 사용한다.

(좌) EMP 테이블의 deptno가 40인 사원은 존재하지 않는다. 그러므로 Equijoin을 하게 되면 (우) DEPT 테이블의 40번 부서는 출력되지 않는다. Outer join의 operator는 (+)이며 WHERE 절에서 테이블의 부족한 정보를 가지고 있는 쪽에 보정의 의미로 삽입을 한다. 상기 슬라이더의 조인에 outer join을 하게 되면 다음과 같다.

3. Non-equijoin
테이블과 테이블의 관계가 equijoin이 될 수 없고, A 테이블의 특정 column이 B 테이블 값들의 사이에 위치한다면 Non-equijoin관계이다.

Emp 테이블의 sal column과 salgrade 테이블의 관계를 살펴보자.
- Salgrade 테이블은 사원들의 sal에 대한 등급을 나타내고 있다. 그러므로 emp 테이블의 sal column과 salgrade 테이블의 어떠한 column과도 equality 관계는 찾을 수 없다.
- 사원들의 sal은 salgrade 테이블의 losal과 hisal column 사이에 존재하므로 이를 이용해서 grade를 출력할 수 있다.
Non-equijoin 관계의 operator는 <=, >= 그리고 BETWEEN ~ AND가 사용된다.
일반적으로 BETWEEN low AND high 연산자를 많이 사용한다.

4. Self join
1) A 테이블 자신과의 join이다.
2) FROM 절에서 테이블 alias를 각기 다르게 부여를 하고, SELECT 및 WHERE 절에서 서로 다른 접두어를 붙여서 마치 다른 테이블인 듯 사용한다.


5. Cartesian product
1) A 테이블의 모든 행과 B 테이블의 모든 행이 조인되는 경우
2) 조인 조건이 생략되거나 부적절한 경우에 생성되며 대부분 무의미한 정보가 출력


상기 테이블의 관계를 살펴보자.
- emp 테이블에 4개의 row 가 있고 dept 테이블에도 4개의 row가 있다.
- WHERE 절에 적절한 조인 조건을 명시하지 않으면 emp 테이블의 모든 행과 dept 테이블의 모든 행이 각각 조인되므로 출력되는 결과는 4*4=16 행이 출력된다.
- 즉, Adams는 부서 번호 20인 Research 부서에 속해 있으나 나머지 10, 30, 40번 부서에 속한 것처럼 모든 정보를 출력하므로 무의미한 정보의 조합에 불과하다. 그러므로 조인 조건의 설정 시 세심한 주의가 필요하다.
“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"
[SQL] 온라인에서 SQL 실행 TEST하기
2021.02.16 update by 슬픈앙마류 SQL 공부를 하고자 하여도 DB 설치나 개발 환경이 여의치 않아 시작조차 못하시는 분들을 위해 온라인에서 무료로 SQL 실행을 지원하는 사이트가 있으니 포기하지 마시
nindo.tistory.com
[SQL] 1. 기본 문법(1)
2021.02.17 update by 슬픈앙마류 SQL을 공부하시는 분들에게 조금이라도 도움이 되고자 기본 문법부터 많이 사용하는 기능들과 성능에 관련된 내용들을 간단하게 정리해서 올릴 예정입니다. [SQL] 온
nindo.tistory.com
[SQL] 2. 기본 문법(2)
2021.02.18 update by 슬픈앙마류 SQL 공부하기 위한 기본 문법 두 번째 게시물입니다. [SQL] 1. 기본 문법(1) 2021.02.17 update by 슬픈앙마류 SQL을 공부하시는 분들에게 조금이라도 도움이 되고자 기본 문법
nindo.tistory.com
[SQL] 3. Function
2021.02.19 update by 슬픈앙마류 기본적인 문법에 대해서 어는 정도 이해하셨을 것으로 생각합니다. 이번 게시물은 함수의 활용입니다. [SQL] 온라인에서 SQL 실행 TEST하기 2021.02.16 update by 슬픈앙마류 S
nindo.tistory.com
'IT 이야기 > SQL' 카테고리의 다른 글
| [SQL] 6. SubQuery (0) | 2021.02.22 |
|---|---|
| [SQL] 5. Aggregate Function (0) | 2021.02.22 |
| [SQL] 3. Function (0) | 2021.02.19 |
| [SQL] 2. 기본 문법(2) (0) | 2021.02.17 |
| [SQL] 1. 기본 문법(1) (0) | 2021.02.17 |
댓글