- 1023 (25일차)- sql 5일2023년 10월 23일 17시 34분 39초에 업로드 된 글입니다.작성자: 삶은고구마
조인 JOIN시 각 테이블의 공통점이 무엇인지,
내부 조인시 무엇이 제외되는지에 따라 LEFT JOIN, RIGHT JOIN을 한다.
SELF JOIN(동일한 테이블을 조인, EX)EMPLOYEE-MANAGER ID)
SUBQUERY 서브쿼리
--하나의 쿼리(메인쿼리) 안에 포함 된 또 다른 쿼리(서브쿼리)
--존재하지 않는 조건에 근거해서 값을 검색하는 경우 유용하다
--EX)employee 테이블에서 사원'명' 을 출력할때.(사원'명은 해당 테이블에 없음..)
--메인 쿼리 안에 서브 쿼리를 포함하는 종속 관계
--메인쿼리 실행 중에 서브쿼리를 먼저 실행하고 그 결과를 메인쿼리에 반환한다.조건
1.서브쿼리는 반드시 소괄호로 묶어서 처리한다.
2.서브쿼리 내 order by는 지원하지 않는다.메인-서브 구조 서브 쿼리 구분
일반 서브 쿼리(단독) 메인쿼리와 상관없이 서브쿼리가 단독으로 실행 가능한 경우
(해당 쿼리문만 선택해서 실행해도 작동됨)상관 서브 쿼리
(상호 연관)메인쿼리로 부터 값을 받아 서브쿼리를 실행함. 일반 서브 쿼리
실행 결과에 따른 구분1행1열
n행1열
1행n열
n행m열
.....위치에 따른 구분 select
where
from..
(group by, order by등에서도 사용되지만
보통 저 세개의 위치에서 잘 쓰임.)일반 서브 쿼리
any / some (values..)
: value중에 하나만 충족해도 true
all (values..)
:모든 value를 충족해야 true
서브 쿼리 실행 결과에 따른 구분 - 1행1열 / n행1열 / 1행n열 / n행m열
1)1행1열
select * from employee where --salary>(전 사원 급여 평균 값); salary>(select avg(salary) from employee);
상관 서브 쿼리
상호 연관 서브 쿼리
메인쿼리로 부터 가져온 값을 이용해 서브쿼리를 실행
그 결과 집합을 메인쿼리에 반환한다.
블럭을 잡아 단독실행하는 것이 불가능하다(<->일반서브쿼리)
메인쿼리의 별칭을 꼭 사용한다.
exists(서브쿼리 내용) -> where절 사용
true/false 반환
exists안의 서브쿼리 실행 결과 행이
1행 이상이면 true 반환.
0행이면 false 반환.
위치에 따른 구분
1.select : 스칼라
스칼라값:단일값
서브쿼리의 결과가 1행 1열인 상관 서브쿼리
필터 where절 이후에 처리
2.where
3.from : 인라인뷰
from 절에 사용하는 서브쿼리복잡한 연산처리를 함에 있어 중복을 제거 가능.ex)남자사원만 조회새로운 테이블이 하나 더 있다고 생각하자.
그 외 group by, order by..
인라인 뷰 (INLINE-VIEW)
단
from절에 사용한 서브쿼리를 칭한다.
복잡한 연산처리를 함에 있어 중복을 제거 가능.
남자 사원만 조회 등등..
새로운 테이블이 하나 더 생겼다 생각하면 된다.
'공부 > 학습' 카테고리의 다른 글
1031 jdbc - day2 (0) 2023.10.31 1030 jdbc -day1 (0) 2023.10.30 1027 (29일차) - sql 9일차 (0) 2023.10.27 1026 (28일차) -sql 8일 (0) 2023.10.26 1024 (26일차)- sql 6일 (0) 2023.10.24 다음글이 없습니다.이전글이 없습니다.댓글