반응형
앞서 설명한 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%';
반응형