본문 바로가기
CS-SQL-DB

SQL WHERE 조건절 형태와 NULL값

by Jann 2021. 9. 3.
728x90

WHERE 조건절 형태

SQL WHERE 절 조건이 들어갈 수 있다

- WHERE 절 숫자형 데이터 조건

SELECT 열 이름1, 열 이름 2
FROM 테이블명
WHERE 비교할 열 이름 = 숫자;

 

 

- WHERE 절 문자/날짜형 데이터 조건

SELECT 열 이름1, 열 이름 2
FROM 테이블명
WHERE 비교할 열 이름 = '문자';

작은따옴표 (' ')안에 기재해야 한다.

 

 

 

- WHERE 절 내 비교연산자 활용

A=B A와 B가 같다.
A<>B , A!=B , A ^=B  A와 B가 같지 않다.
A< B A가 B보다 작다 (미만)
A <= B A가  B보다 작거나 같다 (이하)
A >= B A가 B보다 크거나 같다 (이상)
BETWEEN A AND B A와 B사이의 값:
지정된 두 값 사이에 있는 경우
IS NULL NULL 값을 가진 열을 검색하는 경우
IN NOT NULL NULL 값이 아닌 열을 검색하는 경우

 

 

 

WHERE 절의 논리연산자 AND, OR, IN, NOT IN

 

-AND연산자

조건을 모두 만족해야 하는 경우 (교집합)

SELECT 열 이름1, 열 이름 2
FROM 테이블명
WHERE 조건절1 AND 조건절2;

 

-OR 연산자

하나의 조건이라도 만족하면 출력하게 된다.(합집합)

 

SELECT 열 이름1, 열 이름 2
FROM 테이블명
WHERE 조건절1 OR 조건절2;

 

 

- IN 연산자

OR 연산자를 여러번 사용할 경우 하나로 묶을 수 있다.

SELECT 열 이름1, 열 이름 2
FROM 테이블명
WHERE 비교할 열 이름 IN (조건1,조건2);

IN연산자는 OR 연산자보다 처리 속도가 빠르기에 데이터의 양이 많을 때 좀더 빠르게 실행할 수 있다.

 

IN 연산자 안에 다른 SELECT 문장을 사용하는 SUB-QUERY 구문에서 사용할 수 있다.

 

 

- NOT IN 연산자

특정 테이블로부터 특정한 조건들 안에 속하지 않는 모든 데이터를 추출할 경우 

 

SELECT 열 이름1, 열 이름 2
FROM 테이블명
WHERE 비교할 열 이름 NOT IN (조건1, 조건2);

 

NULL 이란?

 

데이터가 존재하지 않는다는 것을 의미하며, SPACE(공백) 또는 숫자 0과는 다른 개념이다.

 

NULL을 사용할 때는 연산자 '='를 사용할 수 없으며, NULL값인 행을 찾을 때는 IS NULL,

NULL 값이 아닌 행을 찾을 때는 IS NOT NULL을 사용한다.

 

NULL 값은 오름차순 혹은 내림차순으로 정렬 시 가장 큰 값으로 분류된다.

 

 

NULL 값의 처리 함수

 

- NVL(열 이름, 0)

: 해당 열의 값이 NULL이면 2의 값 리턴 (0으로 처리)

 

- NVL2(열 이름, expr1, expr2) :

해당 열의 값이 NULL이 아닐 경우에는 expr1, NULL일 경우에는 expr2의 값

 

 

728x90

댓글