[DQL] - SELECT_WHERE

9004 단어 DBOracleDBOracle

WHERE

2.1 기본 WHERE절

SELECT 칼럼명, 칼럼명1... 칼럼명n
FROM 테이블명
WHERE 칼럼이름 비교연산자 조건값;

EMP 테이블로 실습해보자!

SELECT * FROM emp;

2.2 오라클 기본 연산자

2.2.1 비교 연산자

연산자설명
=같다
>크다
<작다
>=크거나 같다
<=작거나 같다
<>,!=, ^= 같지 않다
SELECT * FROM emp
1. WHERE deptno <> 30;
2. WHERE deptno != 30;
3. WHERE deptno ^= 30;
4. WHERE NOT deptno = 30;

1. EMP 테이블에서 deptno 가 20 이고 sal 이 2000 이상이거나 hiredate 가 82년 01월 01일 이전인 사원을 조회해 보자.

CODE

  SELECT * 
  FROM emp 
  WHERE deptno = 20 
      AND (sal >= 2000 OR hiredate <= '82/01/01');

2.2.2 논리연산자

  • 비교 연산자나 기타 WHERE 에 조건구문이 두 개 이상일 경우 논리연산자를 이용하여 조건을 논리적 으로 연결하여 조건에 맞는 값을 조회
연산자설명
조건A AND 조건B두 가지 조건이 모두 만족되도록 결과 조회교집합
조건A OR 조건B두 가지 조건 중 하나라도 만족되도록 결과 조회합집합
NOT 조건A조건을 만족하지 않도록 결과 조회여집합

2.3 WHERE 절에서 사용할 수 있는 기타 연산자

연산자설명
BETWEEN 조건 A AND 조건 Ba 와 b 사이의 데이터를 출력(a, b 포함)
IN (값1...)테이블 데이터 값 중 어느 하나와 일치하는 데이터를 출력
LIKE문자 형태로 일치하는 데이터를 출력(%, _사용)
IS NULLNULL 값을 가진 데이터를 출력
NOT BETWEEN a AND ba 와 b 사이에 있지 않은 데이터를 출력(a, b 포함하지 않음)
NOT IN (값1...)테이블 데이터 값의 값과 일치하지 않는 데이터를 출력
NOT LIKE문자 형태와 일치하지 않는 데이터를 출력
IS NOT NULLNULL 값을 갖지 않는 데이터를 출력

2. EMP 테이블에서 deptno 가 20,30인 사원들의 정보를 조회해 보자.

CODE

  SELECT * 
  FROM emp 
  WHERE deptno 
      IN(20,30);

2.3.1 IN, NOT IN 연산자

3. empno가 7698 에서 7902 까지의 사원을 조회해 보자.

CODE

  SELECT * 
  FROM emp 
  WHERE empno 
      BETWEEN 7698 
          AND 7902;

2.3.2 BETWEEN, NOT BETWEEN 연산자

4. 1980년이 아닌 해에 입사한 직원을 조회해 보자.

CODE

  SELECT * 
  FROM emp 
  WHERE hiredate 
          NOT BETWEEN '1980/01/01' 
          AND '1980/12/31';

2.3.3 LIKE, NOT LIKE 연산자

5. EMP 테이블에서 이름에 K가 들어가는 사원의 ename 와 empno 을 조회해 보자.

CODE

  SELECT ename, empno 
  FROM emp 
  WHERE ename 
      LIKE '%K%';

2.3.4 IS NULL, IS NOT NULL 연산자

6. EMP 테이블에서 이름에 K로 시작하는 사원의 ename 와 empno 을 조회해 보자.

CODE

  SELECT ename, empno 
  FROM emp 
  WHERE ename 
      LIKE 'K%';

7. EMP 테이블에서 이름에 K 로 끝나는 사원의 ename 와 empno 을 조회해 보자.

CODE

  SELECT ename, empno 
  FROM emp 
  WHERE ename 
      LIKE '%K';

8. EMP 테이블에서 이름에 두 번째 문자가 A인 사원의 ename 와 empno 을 조회해 보자.

CODE

  SELECT ename, empno 
  FROM emp 
  WHERE ename 
    LIKE '_A%';

9. 이름에 'A'가 없는 직원 정보를 조회해 보자.

CODE

  SELECT * 
  FROM emp 
  WHERE ename 
      NOT LIKE '%A%'

Reference

  • 테이블 자료 : Oracle - EMP 테이블
  • 참고도서(책) : SQL활용 + 실습 후 정리
  • 🎈2020.10.29

좋은 웹페이지 즐겨찾기