데이터 필터링

KOO HEESEUNG·2021년 10월 13일
0

SQL 기초

목록 보기
4/8
post-thumbnail

스크립트는 <SQL in 10 Minutes(5th Edition)>(벤 포터 著, 인사이트) 에서 제공하는 것을 사용하였고, DBMS는 Oracle에서 제공하는 연습용 사이트, Oracle Live SQL(https://livesql.oracle.com) 을 사용하였습니다.

WHERE 절

데이터베이스 테이블에서 데이터를 가져올 때, 조건에 맞는 행을 가져오는 경우가 많다.
조건을 지정하기 위해서는 WHERE 절을 사용한다.
WHERE 절은 FROM 바로 다음에 적는다.

SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49

WHERE 절 연산자

익히 알법한 것을 제외하고 서술하겠다.

연산자설명
<> 또는 !=같지 않다
!<~보다 작지 않다
!>~보다 크지 않다
BETWEEN n AND mn과 m 사이의 값
IS NULL값이 NULL이다

WHERE 절 조합 - AND, OR 연산자

WHERE 절에는 ANDOR 를 사용하여 조건을 여러개 지정할 수 있다.

AND : 연결된 조건들을 모두 만족하는 조건으로 필터링
OR : 연결된 조건들 중 하나 이상 만족하는 조건으로 필터링

ANDOR 보다 우선순위가 높기 때문에 두 연산자를 모두 사용하여 필터링할 경우, 괄호( )를 사용하여 먼저 필터링할 연산자를 정하는 것이 좋다.

IN 연산자

조건 범위를 지정할 때 사용한다. OR 연산자와 같은 역할을 수행한다.
즉, 아래 두 문장은 같은 문장이다.

SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ('DLL01', 'BRS01');

SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';

IN 연산자의 장점

  • 조건이 많을 때 OR 보다 깔끔하고 읽기 편하다.
  • OR 보다 목록 처리 속도가 빠르다.
  • ANDOR 과 함께 사용할 때 우선순위 관리가 편하다.

NOT 연산자

WHERE 절의 조건을 역으로 만든다.
반드시 다른 연산자와 함께 사용해야 한다. (단독 사용 X)
필터링하려는 열 앞에 적는다.
<> 연산자와 같은 역할이다.

SELECT prod_name
FROM Products
WHERE NOT vend_id = 'DLL01'; -- 조건 : "vend_id가 DLL01이 아닌"

SELECT prod_name
FROM Products
WHERE vend_id <> 'DLL01';

0개의 댓글