검색 조건에 같은 컬럼에서 여러개 레코드를 취득하고 싶은 경우가 있습니다.
예를 들어 A라는 컬럼에 값이 1,3,4,7 인 레코드를 취득하고 싶은 경우 OR 조건을 사용해서 취득하기도 합니다.
OR 조건 예제
SELECT
*
FROM
STUDENT_GRADE
WHERE A = 1 OR A = 3 OR A = 4 OR A = 7
OR 조건을 사용해 동일한 컬럼에서 여러 개의 값을 취득할 수 있지만 취득하고 싶은 값이 많아지면 OR 조건과 컬럼 명도 계속해서 나열해줘야 합니다.
IN 사용 방법
IN을 사용하면 하나의 컬럼에서 여러개 값을 취득할 수 있습니다.
위에서 사용한 OR 조건을 IN으로 바꾸면 아래와 같습니다.
IN 예제
SELECT
*
FROM
STUDENT_GRADE
WHERE A IN (1,3,4,7)
조건문이 심플해졌습니다.
또한 취득하고 싶은 값이 늘어나도 컬럼 이름은 한 번만 작성해도 됩니다.
NOT IN 사용 방법
반대로 지정한 값 이외의 값을 취득하고 싶은 경우에는 NOT IN을 사용합니다.
NOT IN 예제
SELECT
*
FROM
STUDENT_GRADE
WHERE A NOT IN (1,3,4,7)
A컬럼 값이 1,3,4,7이 아닌 모든 레코드를 취득합니다.
NOT IN을 사용할 때 주의점이 있습니다.
처리 속도가 느려질 수 있습니다.
내부에서는 모든 데이터를 검색하게 됩니다.
즉, 검색 조건에 지정한 값 이외의 모든 데이터를 찾게 됩니다.
데이터가 많은 대량의 테이블에서는 주의해서 사용해야 합니다.
댓글