개발 지식/[DBMS] Oracle

[Oracle] WHERE(1) - WHERE, AND/OR 연산자

devGSP 2022. 4. 17. 20:48
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

(1) WHERE

 

설명

데이터 로우를 출력할 때 원하는 조건에 해당하는 로우만 출력하고 싶을 때 사용

 

문법

SELECT ... FROM ... WHERE [컬럼명] = [조건]

-- 조건으로 숫자가 들어갈 경우 그냥 입력, 문자열이 들어갈 경우 작은따옴표를 '문자열'처럼 양 옆에 붙임

-- 부등호도 사용할 수 있음(>, <, >=, <=)

SELECT *
  FROM EMP;
  
SELECT *
  FROM EMP
 WHERE DEPTNO = 30;
 
SELECT *
  FROM EMP
 WHERE JOB = 'MANAGER';

 

결과

SELECT *
  FROM EMP;

w1_q1

 

SELECT *
  FROM EMP
 WHERE DEPTNO = 30;

w1_q2

SELECT *
  FROM EMP
 WHERE JOB = 'MANAGER';

w1_q3

 

 

(2) AND, OR 연산자

 

설명

WHERE절 뒤에 추가하여 조건을 좀 더 복잡하게 사용할 수 있음

AND 연산자는 연결한 조건을 모두 만족했을 때, OR 연산자는 여러 조건 중 하나 이상을 만족할 경우 데이터를 출력함

 

문법

SELECT ... FROM ... WHERE [컬럼명] = [조건] AND(OR) [컬럼명1] = [조건1] (AND(OR) [컬럼명2] = [조건2]) ...

-- AND, OR을 뒤에 계속 더하여 조건을 디테일하게 설정할 수 있음

-- AND와 OR를 여러 개 사용할 시 적용되는 순서와 범위에 유의해야 함

-- AND와 OR를 여러 개 사용할 시 괄호를 붙여서 적용 순서 및 범위를 명확히 할 수 있음

SELECT *
  FROM EMP
 WHERE SAL >= 2500
      OR JOB = 'MANAGER';
 
 SELECT *
  FROM EMP
 WHERE SAL >= 2500
     AND JOB = 'MANAGER';
     
     SELECT *
  FROM EMP
 WHERE SAL >= 2500
    AND DEPTNO = 20
      OR JOB = 'MANAGER';
      
SELECT *
  FROM EMP
 WHERE SAL >= 2500
      OR JOB = 'MANAGER'
     AND DEPTNO = 20;
     
SELECT *
  FROM EMP
 WHERE (SAL >= 2500
      OR JOB = 'MANAGER')
     AND DEPTNO = 20;

 

결과

SELECT *
  FROM EMP
 WHERE SAL >= 2500
      OR JOB = 'MANAGER';

w1_q4

 

 SELECT *
  FROM EMP
 WHERE SAL >= 2500
     AND JOB = 'MANAGER';

w1_q5

 

 SELECT *
  FROM EMP
 WHERE SAL >= 2500
    AND DEPTNO = 20
      OR JOB = 'MANAGER';

w1_q6


SELECT *
  FROM EMP
 WHERE SAL >= 2500
      OR JOB = 'MANAGER'
     AND DEPTNO = 20;

w1_q7


SELECT *
  FROM EMP
 WHERE (SAL >= 2500
      OR JOB = 'MANAGER'
     AND DEPTNO = 20;

w1_q8

반응형