리오집사의 기억저장소

목차

     

  • 01. WHERE 절의 필요성
  • 02. WHERE 절의 기본 사용법
  • 03. WHERE 절의 고급 사용법

 

01. WHERE절의 필요성

사용 관점에서 단순히 SELECT와 FROM 절만 이용하면, 실제로 원하는 자료가 제대로 있는지 확인하기 어렵다. 성능 관점에서 보면, SELECT와 FROM 절만 이용하는 필요하지 않은 자료들까지 DB로부터 요청하는 SQL문은 대량의 데이터들을 검색하기 위해 DB가 설치되어 있는 서버의 CPU나 MEMORY 같은 시스템 자원들을 과다하게 사용함으로써 많은 사용자들의 QUERY에 대해 바로 처리를 해주지 못하게 되고, 또한 검색된 많은 자료들이 네트워크를 통해서 전달됨으로써 문제점들이 발생하게 된다.

 

02. WHERE절의 기본 사용법

SELECT [DISTINCT] 칼럼명 [ALIAS명]
FROM 테이블명
WHERE 조건식;
UPDATE 테이블명
SET(컬럼명=컬럼값, ...)
WHERE 조건식;
DELETE FROM 테이블명
WHERE 조건식;

 

예시) TEAM 테이블에서 팀명이 FC 서울인 정보를 조회하라.

SELECT *
    FROM TEAM
    WHERE TEAM_NAME = 'FC서울';

 

03. WHERE 절의 고급 사용법

ⓐ 비교연산자 이용하기 ( = , >= , <= , < , > )

ⓑ 논리연산자 이용하기 ( AND, OR, NOT )

   ->처리 우선순위 : NOT > AND > OR

예시1) 팀ID가 K02이고, 포지션이 미드필더이며, 키가 180 이상인 플레이어의 [이름,등번호, 포지션]을 조회하라

SELECT PLAYER_NAME, BACK_NO, POSITION
FROM PLAYER
WHERE TEAM_ID = 'K02'
AND POSITION = 'MF'
AND HEIGHT >= 180;

 

예시2) 팀ID가 K02 또는 K07이고, 포지션이 미드필더 또는 DF인 플레이어의 [이름,등번호, 포지션]을 조회하라

SELECT PLAYER_NAME, BACK_NO, POSITION
FROM PLAYER
WHERE (TEAM_ID = 'K02' OR TEAM_ID = 'K07')
AND (POSITION = 'MF' OR POSITION = 'DF');

ⓒ SQL 비교연산자

연산자 의미 
BETWEEN a AND b a와 b의 값 사이에 있으면 TRUE
IN(LIST) 리스트에 있는 값 중에서 어느 하나라도 일치하면 TRUE 
LIKE '비교문자열' 비교문자열과 형태가 일치하면 TRUE
IS NULL NULL 값이면 TRUE 

 

LIKE에서는 '와일드카드' 를 사용할 수 있다.  

와일드카드란? 한개 혹은 0개 이상의 문자를 대신해서 사용하기 위한 특수문자

  • % : 0개 이상의 어떤 문자를 의미
  • _  : 1개의 단일 문자를 의미

 

NULL이란?

값이 존재하지 않는 것으로/ 확정되지 않은 값을 표현할 때 사용된다.

즉 어떤 값보다 크거나 작지도 않고 공백이나 0과 달리 비교 자체가 불가능한 값인 것이다.

그렇기 때문에 NULL값의 비교 연산은 불가능하며,

만일 비교연산을 실행하면 FALSE를 리턴하고,

수치 연산자( + , - , * , /)를 통해서 NULL값과 연산을 하게 되면 NULL값을 리턴하게 된다.

단지 NULL 값인지 아닌지를 IS를 통해서만 판단할 수 있다.

(한마디로 IS NULL 로만 널값 여부를 판단할 수 있다.)

 

ⓓ 논리연산자의 부정표현

 종류 연산자  의미 
 부정 논리 연산자  !=  같지 않다.  (VAX, UNIX, PC)
 ^=  같지 않다. (IBM)
 <>  같지 않다. (모든 운영체제에서 사용가능)
 NOT 칼럼명 = ~와 같지 않다. 
 NOT 칼럼명 >  ~보다 크지 않다.
 부정 SQL 연산자  NOT BETWEEN a AND b  a 미만, b 초과 면 TRUE
 NOT IN(list)  list값과 일치하지 않으면 TRUE
 IS NOT NULL  NULL이 아니면 TRUE

 

[오라클/SQL] 05. 검색조건 WHERE절
[오라클/SQL] 05. 검색조건 WHERE절

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band