Database

[Oracle Database] 3. WHERE 절에 대해 알아보자.

myeongju 2024. 7. 14. 18:34
반응형

앞서 설명한 SELECT 문에서 WHERE 절이 나오는 것을 확인할 수 있었지만, 이번에는 WHERE 절에 대해 자세히 알아보자.

 

WHERE절이란?

SELECT문으로 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는데 사용

SELECT [조회할 열1 이름], ... , [열N 이름]
FROM [조회할 테이블 이름]
WHERE [조회할 행을 선별하기 위한 조건식];

 

위의 쿼리를 실행하면 조회할 테이블의 각 행에 조건식을 대입하여 결과가 True인 데이터만 출력한다.

 

AND, OR 연산자

AND : 피연산자가 둘 다 TRUE → TURE

OR : 피연산자가 하나 이상이 TRUE → TRUE

 

연산자

  • 산술 연산자 : +, -, *, /
  • 비교 연산자
    • 대소 비교 연산자 : >, <, ≥, ≤
    • 등가 비교 연산자 : =, ≠
  • 논리 부정 연산자 : NOT

 

BETWEEN AND 연산자

특정 열 값의 최소, 최대 범위를 지정하여 해당 범위 내의 데이터만 조회할 경우 사용된다.

기본 형식

SELECT [조회할 열1 이름], [열2 이름], ..., [열N 이름]
FROM [조회할 테이블 이름]
WHERE 열 이름 BETWEEN 최솟값 AND 최댓값;
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 2500;

     EMPNO ENAME                JOB                       MGR HIREDATE        SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
      7499 ALLEN                SALESMAN                 7698 81/02/20       1600        300         30
      7782 CLARK                MANAGER                  7839 81/06/09       2450                    10
      7844 TURNER               SALESMAN                 7698 81/09/08       1500          0         30

 

IN 연산자

숫자로 구성된 데이터는 범위를 지정할 수 있으므로 BETWEEN ~ AND를 사용할 수 있지만, 주소(addr)와 같은 데이터는 문자로 표현되기 때문에 범위 지정이 안된다. 이럴 때는 IN 연산자를 사용한다.

 

기본 형식

SELECT [조회할 열1 이름], ..., [열N 이름]
FROM [조회할 테이블 이름]
WHERE 열 이름 IN (데이터1, ..., 데이터N);
//OR 사용
SELECT * FROM EMP
WHERE JOB = 'MANAGER'
OR JOB = 'SALESMAN';

//IN 사용
SELECT * FROM emp WHERE job IN('MANAGER', 'SALESMAN');

     EMPNO ENAME                JOB                       MGR HIREDATE        SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
      7499 ALLEN                SALESMAN                 7698 81/02/20       1600        300         30
      7521 WARD                 SALESMAN                 7698 81/02/22       1250        500         30
      7566 JONES                MANAGER                  7839 81/04/02       2975                    20
      7654 MARTIN               SALESMAN                 7698 81/09/28       1250       1400         30
      7698 BLAKE                MANAGER                  7839 81/05/01       2850                    30
      7782 CLARK                MANAGER                  7839 81/06/09       2450                    10
      7844 TURNER               SALESMAN                 7698 81/09/08       1500          0         30

7 rows selected.

 

LIKE 연산자

문자열의 일부 글자를 검색

  • % : 길이와 상관없이 모든 문자 데이터
  • _ : 어떤 값이든 상관없이 한 개의 문자 데이터
select *
from wmp
where ename not LIKE '_A%';

 

반응형