2016년 1월 18일 월요일

[oracle]상호 관련 부속질의어

형태
select ...
from 테이블1
where 연산자 (
                   select ...
                   from 테이블2
                   where 테이블1.컬럼 = 테이블2.칼럼

         );


* 서브쿼리에서 메인쿼리 테이블의 컬럼을 참조 할 수 있다.
* 메인쿼리에서 서브쿼리 테이블의 컬럼을 참조 할 수 없다.


/*      


/*
exists 연산자

*/

/*
예)
*/


select * from professor;


select * from course;

select name "강의중인 교수이름"
from professor p
where professor_id = (select c.professor_id from course c
                      where p.professor_id = c.professor_id
                      GROUP by c.professor_id
                      );
                     
select name "강의중인 교수이름"
from professor p
where  exists (select c.professor_id from course c
                      where p.professor_id = c.professor_id
                   
                      );

/*
위 두개의 쿼리는 같은 결과를 출력한다.
즉 exists 연산자는 서브쿼리에서 선택되는 로우에 대해 중복을 제거하고
같은 값이 있는지에대한 연산을 한후 조건이 참인 열을 출력하게된다.
*/

/* not exists 연산자
*/

/*
exists 연산자의 반대의미로 서브쿼리에서 중복을 제거하고
선택된 컬럼의 열들의 대해서 메인쿼리 값을 비교하여 값이 다른
열을 출력하게된다.
*/

select name "강의를 하지 않는 교수이름"
from professor p
where not exists (select c.professor_id from course c
                      where p.professor_id = c.professor_id
                   
                      );

댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1