-
Part 4. DQL - SELECT 2: JOIN, SET 연산자, SUBQUERY카테고리 없음 2020. 4. 21. 05:43
Chapter 1. JOIN-JOIN (조인문) : 여러 테이블의 레코드를 조합하여 하나가 아닌 열의 표현을 한 것 – 2개 이상의 테이블에서 관련성을 가지고 있는 데이터를 따로 분류하여 new 가상의 테이블을 이용하여 출력 -- JOIN 시 접속에 사용하는 두 테이블의 칼럼 이름이 다른 경우 – Oracle 전용구문
ANSI 병구문
- JOIN시 연결에 사용하는 2개의 테이블의 컬럼 이름이 서로 같은 경우 | Oracle 전용구문
醫ANSI, 오직 구문 USING 사용
JOIN의 종류
>
INNER JOIN(내부 조인): 테이블A와 테이블B의 전부 조건 구문에 일치하는 데이터만 반환→일반으로 사용, 교집합→SELECT<컬럼>FROM
INNER JOIN ON<조건구문>;-OUTER JOIN(외부조인): INNNNER JOIN: 테이블A와 테이블B 전부 조건구문<모든 테이블OIN> 3) RIGHTOUTER JOIN: 테이블 B 전체 반환, 테이블 A 조건 구문에 일치하는 데이터만 반환
4. FULL OUTER JOIN : 테이블 A, B 모두 반환
- 비등가 조인 NON-EQUIJOIN : 지정한 컬럼 값이 일치하는 경우가 아닌 값의 범위에 포함된 행을 연계하는 방식 |'=' 등가 연산자가 아닌 다른 연산자 사용
·SELF JOIN: 같은 테이블을 조인, 즉 자기 자신과 조인을 연결하는 방식
다중 JOIN : 여러 조인문을 한번에 사용할 수 있습니다.
Chapter 2. SET 연산자-집합연산자(Set Operator): 2개 이상의 테이블에서 조인을 사용하지 않고 관련된 데이터를 조회하는 방법 2 복수의 질의 결과를 연결하여 하본인에게 연결하는 방식-집합연산자 조건 3SELECT절의 "칼럼 수가 동일"해야 하는 3SELECT절의 동일 위치에 존재하는 컬럼의 "데이터 타입이 상호 교환 가능"해야 한다 1)UNION과 UNION ALL은 복수의 쿼리한 결과를 합계하여 UNIO+N 연산자를 제거하고,
2.UNION ALLYUNION과의 차이점은 중복 포함
3) INTERSECT: 복수의 SELECT 결과에서 공통되는 부분만 결과로 추출...수행 결과에 대한 교집합
4) MINUS: 선행 SELECT 결과에서 그 후의 SELECT 결과와 겹치는 부분을 제외한 나쁘지 않습니다.
Chapter 3. SUBQUERY-사부쿠에리(Sub Query) : 하과인의 SQL문 안에 포함되어 있는 역시 다른 SQL문 알려지지 않은 조건에 증거한 값을 검색하는 select문을 작성하는데 유리하다. | 메인 쿼리가 서브 쿼리를 포함하는 종속적 관계 서브크엘리는 분명히 소괄호로 묶어야 한다 서브 에리는 연산자의 오른쪽에 위치해야 한다 | 서브 에리는 지원할 수 없다 1)의 서브퀘리 유형 조회 결과 (2)의 복수의 서브퀘리 수가 1개)
다중행 서브크에리: 서브크에리 조회 결과값(행, 추플)이 여러 개 있을 때| 다중행 서브크에리 전에는 일반 비교 연산자 사용 불가| 사용 가능 연산자: IN/NOTIN, ANY, ALL, EXIST
- 인라인 뷰(FROM 절에서의 서브 쿼리) → FROM 절에 서브 에리를 사용한 것
- WITH: 서브퀘리에이름을 붙이고 인라인뷰에서 사용하면 서브퀘리 이름으로 FROM절에 사용 가능 – 동일 서브 에리가 여러 번 사용될 경우 중복 작성을 피할 수 있고, 실행 속도도 빨라지는 장점이 있습니다.
Chapter 4. 기타 - RANK( ) OVER : 중복순위 다소 소리는 해당 개수만큼 건담을 뛰어 반납 + 1, 2, 3, 4, 5, 6, 8, 9...
- DENSE_RANK( ) OVER: 중복 순위와 상관없이 순차적으로 반환 | 1、2、3、4、5、6、7、8、9...
ROW_NUMBER( ) OVER : 중복과 관계없이 순서대로 반환_중복이 있더라도 등수대로 보기