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

본문 바로가기
사이트 내 전체검색

db

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

페이지 정보

작성자 서방님 댓글 0건 조회 178회 작성일 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 464건 20 페이지
게시물 검색

회원로그인

접속자집계

오늘
130
어제
225
최대
1,347
전체
154,889
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.