WHERE절

HELLO_DINO·2022년 10월 11일
0

SQL전문가가이드

목록 보기
14/28

WHERE 조건절 개요

WHERE을 이용해 자료를 제한할 수 있다.
WHERE절은 두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수도 있다.

WHERE절에 조건이 없는 FTS(Full Table Scan) 문장은 SQL 튜닝의 1차적인 검토 대상이 된다.(FTS는 무조건 나쁜 것은 아니며 병렬 처리 등을 이용해 유용하게 사용하는 경우도 많다.)

WHERE절 사용법.

SELECT [DISTINCT/ALL]
	칼럼명 [ALIAS명]
FORM 테이블명
WHERE 조건식;

WHERE절은 FROM절 다음에 위차하며, 조건식 아래 내용으로 구성된다.

  • 칼럼명(보통 조건식의 좌측에 위치)
  • 비교 연산자
  • 문자, 숫자, 표현식(보통 조건식의 우측에 위치)
  • 비교 칼럼명(JOIN 사용 시)

연산자의 종류

  • 비교 연산자(부정 비교 연산자 포함)
  • SQL 연산자(부정 SQL 연산자 포함)
  • 논리 연산자

연산자 종류

구분연산자연산자의 의미

=같다.

>보다 크다.
비교 연산자>=보다 크거나 같다.

<보다 작다.


<=
보다 작거나 같다.

BETWEEN a AND ba와 b의 값 사이의 값을 갖는다.(a와 b 포함)
SQLIN (list)리스트에 있는 값 중에서 어느 하나라도 일치한다.
연산자LIKE '비교문자열'비교문자열과 형태가 일치한다(%, _ 사용)


IS NULL
NULL 값을 갖는다.

AND앞의 조건과 뒤의 조건이 참이면 참이다.
논리 연산자OR앞의 조건과 뒤의 조건 중 하나가 참이면 참이다.


NOT
뒤에 오는 조건에 반대되는 결과를 되돌려 준다.

!=같지 않다.
부정^=같지 않다.
비교<>같지 않다(ISO 표준, 모든 운영체제에서 사용 가능)
연산자NOT 칼럼명 =~와 같이 않다.


NOT 칼럼명 >
~보다 크지 않다.
부정NOT BETWEEN a AND ba와 b의 사이에 있지 않다(a, b 포함X)
SQLNOT IN (list)list 값과 일치하지 않다.
연산자IS NOT NULLNULL 값을 갖지 않다.

연산자 우선순위

연산자 우선순위설명
1괄호 ()
2비교 연산자, SQL 연산자
3NOT 연산자
4AND
5OR

비교 연산자

여기서부터는 EMP 테이블이 사용됩니다.

SELECT * FROM EMP WHERE SAL > 2000;

SELECT * FROM EMP WHERE SAL <= 1000;

SQL 연산자

SQL 연산자는 SQL 문장에서 사용하도록 기본적으로 예약돼 있는 연산자로서 모든 데이터 타입에 대해 연산이 가능한 4가지 종류가 있다.

SELECT * FROM EMP WHERE SAL BETWEEN 800 AND 1500;

SELECT * FROM EMP WHERE SAL IN (1000, 1500, 2000, 2500, 3000);

SELECT * FROM EMP WHERE ENAME LIKE 'SCOTT';

SELECT * FROM EMP WHERE ENAME LIKE '___D';

SELECT * FROM EMP WHERE ENAME LIKE 'S%';

SELECT * FROM EMP WHERE MGR IS NULL;

논리 연산자

SELECT * FROM EMP WHERE SAL > 800 AND SAL <= 1250;

SELECT * FROM EMP WHERE SAL > 800 OR SAL <= 1250;

SELECT * FROM EMP WHERE SAL > 800 AND NOT SAL <= 2500;

부정 연산자

SELECT * FROM EMP WHERE DEPTNO != 20 AND DEPTNO <> 30;

SELECT * FROM EMP WHERE NOT SAL <= 2500;

SELECT * FROM EMP WHERE DEPTNO NOT IN (10, 30);

SELECT * FROM EMP WHERE COMM IS NOT NULL;

0개의 댓글