youngseo's TECH blog

DB sql 쿼리문 예제 본문

카테고리 없음

DB sql 쿼리문 예제

jeonyoungseo 2022. 10. 13. 00:11

나중에 DB 짤 일이 있을 지도 모른다는 생각에 sql 쿼리문 정도는 한 번 정리해 두기로 했다.

DB 모습 참고

문제:
직원 급여(salary) 평균이 $30,000 이상인 부서에 대해, 부서의 이름과 부서에서 일하는 직원을 구하라."

중첩문은 무언가 추려내고 싶을 사용하는 같다.
예를 들어 A 상황에서의 B상황 ->직업급여 평균이 30000이상인 부서에 대해서(A)의 , 이름과 직원 구하기(B)

아래는 WITH ~AS ~로 A상황을 떼어내어 작성한 쿼리문이다.


문제: 한  이상의 사원이 근무하는 부서의 개수를 검색하라 ---- EXISTS 핵심은 '존재하니?'이다.

'EXISTS  이용해서 급여가 10000보다  직원의 이름과 급여를 검색하라'-이런 유형도 존재할 수 있다. 잘생각해보면 됨


UNIQUE

일단 UNIQUE DISTINCT 같이 쓰지 않도록 주의하자.
UNIQUE
TRUE FALSE 결과값이 나온다.

어떤 조건에서의 성별이 UNIQUE하게 나오는가, 아니면 중복되어서 나오는 하나라도 존재하는가??
WHERE UNIQUE (SELECT SEX ~~ 


문제 : 부서에 속한 사원들의 평균 급여가 가장 많은 부서의 이름과 평균 급여를 검색하라.

GROUP BY 와 HAING을 쓸 때 SELECT 문에도 포함되어 있어야 함을 잊지 말자!
평균+가장많은이 합쳐져 MAX(AVG())로 들어가야 한다. 


문제: 급여가 가장 높은 사람의 이름을 검색하라.

ALL보다 크거나 같은으로 해결할 수 있다.
ALL, ANY 의 차이 주의


문제: 매니저인 사람을 고르되, Employee 값이 나오도록 하라.

Outer join 핵심은 튜플이 같지 않은 개의 relation 결합할 있다는 것이다. Null값이 나올 있다.

문제: 3명보다 많은 사원을 가지고 있는 부서를 고른 , 중에서 40000달러가 넘는 월급을 받는 사원의 수를 부서와 함께 출력하라. (With AS문 사용하여)

이 때 만든 BIGDEPTS를 조회하고 싶을 때에도 SELECT 문을 사용해야 에러가 나지 않는다.