1. 서브쿼리 종류
https://data-make.tistory.com/25
[SQL] 서브쿼리의 모든 것 - Sub Query, Inline View, Scalar, Multi Column
쿼리 안에 또 다른 쿼리 - Sub Query SELECT col1, (SELECT ...) -- 스칼라 서브쿼리(Scalar Sub Query): 하나의 컬럼처럼 사용 (표현 용도) FROM (SELECT ...) -- 인라인 뷰(Inline View): 하나의 테이블..
data-make.tistory.com
# 서브쿼리 사용 할 때 -> group by / rownum / 필드 풀스캔 필요없을때 (필드가 많을시)
# 일반적인 성능 -> join >> 서브쿼리 (메타데이터 없음)
# 스칼라서브쿼리는 성능하락
# where 절 서브쿼리 사용시 IN 보다 EXITS 추천 ; 성능우세 ( + 부등호 사용법 : 위링크 참조)
https://runtoyourdream.tistory.com/112
> > 다음과 같이 사용가능
SELECT ... FROM ... WHERE EXIST ( SELECT 1 FROM ... WHERE....)
출처: https://rgy1989.tistory.com/entry/SQL-EXIST-NOT-EXIST [어쩌다 한번씩 쓰는 블로그:티스토리]
# FROM 절 인라인뷰 (서브쿼리) 의 사용이유
https://wyatt37.tistory.com/36
1. 특정 필드 별칭(임시필드) 조회 불가 (WHERE 혹은 연산불가 ) -> 인라인뷰로 해당 별칭 필드 참조 가능
-- > 예 )
/* FROM 절에서 인라인뷰를 통해 임시 테이블을 만든 후, dens를 참조한다. */
SELECT name, dens
,CASE
WHEN dens > 1000 THEN '고밀도'
WHEN dens > 100 THEN '중밀도'
ELSE '저밀도'
END densgrade
FROM (
SELECT name, (popu * 10000 / area) AS dens FROM tCity
) CD;
2. INNER JOIN , FROM T1, T2 / LEFT JOIN 에 붙이는 테이블을 풀스캔 예방차 미리 필터링해서 붙이면 성능상승
( ROWNUM / GROUP BY 를 사용하여 ROW를 줄여주고 사용할 필드만 기술하여 스캔할 필드수 감소)
-- > 예 )
-- JOIN 방식
SELECT e.department_id, SUM(salary), AVG(salary), COUNT(*)
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY e.department_id
ORDER BY e.department_id;
-- INLINE VIEW 방식
SELECT e.department_id, 합계, 평균, 인원수
FROM ( SELECT department_id, SUM(salary) 합계, AVG(salary) 평균, COUNT(*) 인원수
FROM employees
GROUP BY department_id ) e, departments d
WHERE e.department_id = d.department_id
ORDER BY e.department_id;
+ 추가 ) WHERE 1=1 이란 ?
https://hyjykelly.tistory.com/5
[MSSQL] WHERE 1=1이 뭐야? 왜 쓰는 거야?
회사에 입사하고 쿼리를 사용하면서 종종 보지만, 잘 이해가 가지 않는 구문이 생겼어요. WHERE 1=1 바로 요놈! 오늘 공부해보도록 할게요. Chapter 1. WHERE 1=1이 뭐야?? 우선, WHERE는 조회하려는 데이터
hyjykelly.tistory.com
'DATA BASE' 카테고리의 다른 글
인덱스(INDEX) (0) | 2022.09.20 |
---|---|
NoSQL 이란 ? (비관계형 데이터베이스) (0) | 2022.09.20 |
[Oracle] 계층형 쿼리 (0) | 2022.09.16 |
PARTITION BY / 분석함수 [ row_number() / rank() 등 ] (0) | 2022.09.15 |
DDL/DML/DCL/TCL/ [PL/SQL] (0) | 2022.09.13 |