SQL에서 서브쿼리를 사용할 때 새로운 테이블이 생성된다.
이러한 서브쿼리가 계속 사용된다면 메모리 차원에서 문제가 생길 수 있다.
따라서 우리는 with 절을 이용해서 temporary 한 테이블을 만들수 있다.
with 임시 테이블 이름 as (쿼리)
with max_budget (value) as (select max(budget) from department) select dept_name from department, max_budget where department.budget = max_budget.value;
=> 학과 테이블로부터 budget 의 최대값을 저장하는 max_budget 이라는 임시테이블을 만든다.
=> 만들었던 임시테이블을 where 절에서 budget을 비교할때 사용한다.
* with 절을 너무 남발하면 임시테이블이 견딜 수 있는 정도가 넘어가 오히려 느려진다고 한다.
728x90
'Web > MYSQL' 카테고리의 다른 글
[MYSQL] UPDATE 문 사용법 / 튜플 값 수정하기 / 행 값 수정하기 (1) | 2019.10.04 |
---|---|
[MYSQL] Subquery (서브쿼리) 사용법 / select문 안에 select문 (2) | 2019.09.28 |
[MYSQL] DELETE 문 활용 / 튜플 삭제 / 행 삭제 (0) | 2019.08.06 |
[MYSQL] 테이블의 레코드 추가하기. INSERT 문 (0) | 2019.07.30 |
[MYSQL] ALTER문 사용법 / 컬럼 변경 / 컬럼 추가 (0) | 2019.07.29 |
댓글