본문 바로가기
Database/Oracle

[Oracle] 8.서브쿼리

by tangle96 2021. 6. 23.

개인적으로 SQL 문의 꽃이 아닐까 생각한다

 

원하는 조건은 단순하지 않다.

 

원하는 sql문을 또 sql문에 적용시켜 값을 가져오는 복합적 성질을 띈다고 생각한다.

 

inner join이 쉽거나 서브쿼리가 쉽거나 나는 후자였다.

 

Q.--전체 사원의 평균급여보다 급여가 많은 사원 정보를 검색하라.

 

바로 예제로 들어가보자 보면이제 위의 조건문이 SQL문으로 스르륵 읽혀야한다.

 

적어도 서브쿼리를 바로 적용하기 위해서는 말이다.

 

영어구문처럼 뒤의 구문(급여가 많은 사원정보 검색) 은 앞쪽으로

 

앞의 구문(전체 사원의 평균 급여보다~)는 뒤로 보낼 생각을 해보자

 

보다 는 중간에 비교 및 연산을 연결 시켜주는 다리다

 

 

영어구문 처럼 뒤에서 와보겠다.

 

'전체 사원의 평균 급여' 를 일단 구해보자

 

SELECT AVG(SALARY) FROM EMPLOYEE; 아닌가?

 

보자마자 쿼리문이 튀어나왔다면 벌써 절반했다.

 

그럼 우린이제 그 전체사원의 평균 급여보다 큰,많은 사원정보만 찾으면 된다.

 

사원 정보와 급여를 연결 시키는거다

 

SELECT * FROM EMPLOYEE WHERE SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE);

 

가독성이 좋았으면 좋겠다.

 

우리는 사원중에 평균 급여를 뽑아내어 그 급여보다 큰 사원정보를 정확히 출력했다.

 

결과에 의심이 없으며 만족스럽나요?

 

뒷 구문만 따로 실행하면 이런 결과가 나옵니다 (실행먼저 하셔서 확인해보고 앞 구문 작성하셔도 좋습니다)

 

 

네 맞습니다 평균급여가 2073보다 큰 급여 값을 가진 사원들의 정보임을 증명해줍니다 ㅎㅎ

 

 

 

'Database > Oracle' 카테고리의 다른 글

Spring Frame work CRUD -Oracle DB(employee)  (0) 2021.07.05
[Oracle] 7.Oracle 문제 풀이 정리  (0) 2021.06.23
[Oracle] 6. 다양한 함수  (0) 2021.06.07
[Oracle] 5.Order by  (0) 2021.06.07
[Oracle] 4.Group by / Having  (0) 2021.06.04

댓글