복수행 연산자 (IN, NOT IN, ANY, ALL, EXISTS) 차이점 > db

본문 바로가기

db

복수행 연산자 (IN, NOT IN, ANY, ALL, EXISTS) 차이점

페이지 정보

작성자 서방님 댓글 0건 조회 20회 작성일 07-12-28 13:42

본문

일단 쉬운 in , not in 부터 설명을 드리죠
만약 emp라는 테이블에 name이라는 컬럼이 있다고 가정하겠습니다.
name 에는
a,b,c,d,e,f라는 값이 들어있습니다.

그럼

첫째
select name from emp where name in ('a','b','c')
이라는 sql문은 name값이 a나 b나 c중에 일치되는게 있으면
출력이 되는겂니다.
따라서 결과는 a,b,c겠죠?

둘째
select name from emp where name not in ('a','b','c')
는 조건에 해당하는 a,b,c중에 해당하는게 없어야 됩니다.
따라서 결과는 d,e,f가 되겠죠

이제 any , all , exists 등은 서브쿼리 할시에
이용하는 것들입니다.
만약 서브쿼리를 모르신다면 서브쿼리 공부하실때 자연히 이해되실겁니다.

예제 만들기가 마땅치 않아
오라클의 scott계정 테이블을 이용하겠습니다.

select * from emp
where salary > any (100,200,300)
위의 쿼리는 조건값 100,200,300 중 아무거나(any)중에 하나만
조건에 해당되면 참이 되는겂니다.
즉 위의 쿼리는 select * from emp where sal > 100 과 같은 얘기가 됩니다.

이와 반대로
select * from emp
where salary > all (100,200,300)
위의 쿼리는 100,200,300 조건값보다 모두(all) 커야 합니다.
따라서 select * from emp where sal>300 과 같은 얘기가 되겠죠.

마지막으로
select * from emp outer
where exists (select * from emp where manager_id = outer.empno)
이런 구문은 서브쿼리절에 해당되는 데이타가
있어야 결과값이 참이 되는 케이스입니다.

 

댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
220
어제
282
최대
592
전체
37,318

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]