IT 꿈나무의 일상

[ORACLE] SQL 연산자 (비교 / 결합 / in /any / exists ) 실습 본문

DB

[ORACLE] SQL 연산자 (비교 / 결합 / in /any / exists ) 실습

viera 2021. 8. 8. 16:48
반응형

# 실습을 위하여 DEPT와 EMP 테이블을 사용하였습니다.

 

1. 비교 연산자 동시 사용 (<>)

- 두 조건중 어느하나만 만족하면 해당 데이터 출력

- 해당 쿼리문은 sal컬럼 데이터가 1600 이상 or 이하인 값을 출력함으로 sal=1600인 데이터를 제외한 나머지값 출력

SQL> select deptno, sal ,comm
  2  from emp
  3  where sal <> 1600;

    DEPTNO        SAL       COMM
---------- ---------- ----------
        20        800
        30       1250        500
        20       2975
        30       1250       1400
        30       2850
        10       2450
        20       3000
        10       5000
        30       1500          0
        20       1100
        30        950
        20       3000
        10       1300

 

 

2. IN 연산자 사용

- in 연산자는 다중 데이터값에 대한 조건을 설정할 때 사용됩니다.

- 해당 쿼리문은 deptno 컬럼 데이터가 10 또는 20인 값을 출력합니다.

SQL> select deptno, avg(sal) sal ,comm
  2  from emp
  3  where deptno in (10,20)
  4  group by deptno, comm;

    DEPTNO        SAL       COMM
---------- ---------- ----------
        20       2175
        10 2916.66667

 

3. Any 연산자

- 해당 연산자 다음 여러값 중 어느 하나의 값만 만족해도 해당 데이터를 추출하는 연산자 입니다.

- 비교연산자(>, <, = )를 사용할시 in 연산자를 사용할 수 없기 때문에 이러한 경우 ANY나 ALL을 사용합니다.

 

 

4.  결합 연산자 ( || )

- 주로 DB 관리자들이 스크립트 생성시 사용됩니다.

- 해당 연산자를 사용하면 해당 유저에 영향을 주진 않고 유저내의 테이블로 스크립스 생성해줍니다.

# 쿼리문
SQL> SELECT 'DROP TABLE ' || OWNER || '.' ||TABLE_NAME||';'스크립트
  2  FROM DBA_TABLES
  3  WHERE OWNER='VIERA';
# 결과값

스크립트
------------------------------
DROP TABLE VIERA.FLOAT_T;
DROP TABLE VIERA.DEPT;
DROP TABLE VIERA.EMP;
DROP TABLE VIERA.SALGRADE;
DROP TABLE VIERA.SALES;

 

5. EXISTS 연산자

- 존재 유무의 연산자로 반드시 주 쿼리와 연결되는 조인 조건을 가지고 있어야 합니다.

- 해당 쿼리문은 emp , dept 테이블에서 deptno 컬럼 데이터가 동일할때, 

  dept테이블의 deptno, loc 컬럼 데이터를 출력한 결과입니다.

SQL> SELECT DEPTNO, LOC
  2  FROM DEPT
  3  WHERE EXISTS (SELECT * FROM EMP WHERE EMP.DEPTNO=DEPT.DEPTNO);

    DEPTNO LOC
---------- -------------
        10 NEW YORK
        20 DALLAS
        30 CHICAGO

 

6. NOT EXISTS 연산자

- 존재 유무의 연산자로 반드시 주 쿼리와 연결되는 조인 조건을 가지고 있어야 합니다.

- EXISTS 연산자와는 반대로 해당 조건에 만족하지 않는 값을 가져옵니다. 

SQL> SELECT DEPTNO, LOC
  2  FROM DEPT
  3  WHERE NOT EXISTS (SELECT * FROM EMP WHERE EMP.DEPTNO=DEPT.DEPTNO);

    DEPTNO LOC
---------- -------------
        40 BOSTON
반응형
Comments