SQL 기본 -5. WHERE문 사용

SSAD·2023년 2월 23일
0

SQLD

목록 보기
7/10

5. WHERE문 사용

1. WHERE문이 사용하는 연산자

  • WHERE문이 사용할 수 있는 연산자는
    비교 연산자,
    부정 비교 연산자,
    논리 연산자,
    SQL 연산자,
    부정 SQL 연산자가 있음

비교 연산자

= : 같은 것을 조회
< : 작은 것을 조회
<= : 작거나 같은 것을 조회
> : 큰것을 조회
>= : 크거나 같은 것을 조회

부정 비교 연산자

!= : 같지 않은 것을 조회
^= : 같지 않은 것을 조회
<> : 같지 않은 것을 조회
NOT 칼럼명 = : 같지 않은 것을 조회
NOT 칼럼명 > : 크지 않은 것을 조회

논리 연산자

AND : 조건을 모두 만족해야 참
OR : 조건중 하나만 만족해도 참
NOT : 참이면 거짓으로 바꾸고 거짓이면 참으로 바꿈

SQL 연산자

LIKE '%비교 문자열%' : 비교 문자열을 조회 '%'는 모든 값을 의미
BETWEEN A AND B : A와 B 사이의 값을 조회
IN (list) : OR를 의미하며 list 값 중 하나만 일치해도 조회
IS NULL : NULL 값을 조회

부정 SQL 연산자

NOT BETWEEN A AND B : A와 B사이의 해당되지 않는 값을 조회
NOT IN (list) : list와 불일치한 것을 조회
IS NOT NULL : NULL 값이 아닌 것을 조회
SELECT * FROM EMP
WHERE EMPNO=1001
	AND SAL >= 10000;
  • 위의 예는 EMP 테이블에서 EMPNO가 1001이고 SAL이 1000보다 크거나 같은 것을 조회

2.Like 문 사용

  • Like문은 와일드카드를 사용해서 데이터를 조회

와일드카드

%

  • 어떤 문자를 포함한 모든 것을 조회
  • '조%'는 '조'로 시작하는 모든 문자를 조회

_(underscore)

  • 한 개인 단일 문자를 의미
SELECT * FROM EMP
WHERE ENAME LIKE 'test%";
  • ENAME이 'test'로 시작하는 모든 데이터를 조회
SELECT * FROM EMP
WHERE ENMAE LIKE '%1";
  • ENAME의 마지막이 '1'로 끝나는 모든 것을 조회
SELECT * FROM EMP
WHERE ENAME LIKE '%est%';
  • ENAME의 중간에 'est'가 있는 모든 것을 조회
SELECT * FROM EMP
WHERE ENAME LIKE 'test1';
  • 와일드 카드를 사용하지 않으면 '='와같음
SELECT * FROM EMP
WHERE ENAME LIKE 'test_';
  • ENAME 칼럼에서 'test'로 시작하고 하나의 글자만 더 있는 것을 조회

3. Between문 사용

  • Between문은 지정된 범위에 있는 값을 조회
  • "Between 1000 and 2000"은 1000과 2000을 포함하고 1000과 2000 사이의 값을 조회
SELECT * FROM EMP
WHERE SAL BETWEEN 1000 AND 2000;
  • 위의 예는 급여(SAL)가 1000이상 2000이하인 직원을 조회
SELECT * FROM EMP
WHERE SAL NOT BETWEEN 1000 AND 2000;
  • 위의 예는 급여(SAL)가 1000 미만 2000초과인 값을 조회

4. IN문 사용

  • IN문은 "OR"의 의미를 가지고 있어서 하나의 조건만 만족해도 조회가 됨
SELECT * FROM EMP
WHERE JOB IN ('CLERK', 'MANAGER');
  • IN은 OR의 의미를 가져, JOB컬럼이 CLERK이거나 MANAGER인 레코드를 조회
SELECT * FROM EMP
WHERE (JOB, ENAME)
IN (('CLERK', 'test1'),('MANAGER','test4'));
  • 괄호를 사용해서 원하는 데이터를 칼럼명에 대응되도록 입력하므로,
    IN문으로 여러 개의 칼럼에 대한 조건을 지정할 수 있음

5. NULL 값 조회

1. NULL의 특징

  • NULL은 모르는 값을 의미
  • NULL은 값의 부재를 의미
  • NULL과 숫자 혹은 날짜를 더하면 NULL이 됨
  • NULL과 어떤 값을 비교할 때, '알수없음'이 반환

2. NULL값 조회

  • NULL을 조회할 경우 IS NULL을 사용하고
    NULL값이 아닌 것을 조회할 경우는 IS NOT NULL을 사용
SELECT * FROM EMP
WHERE MGR IS NULL;
  • MGR 컬럼이 NULL인것을 조회
SELECT * FROM EMP
WHERE MGR IS NOT NULL;
  • MGR 컬럼이 NULL이 아닌것을 조회

NULL 관련 함수

NVL 함수

  • NULL이면 다른 값으로 바꾸는 함수
  • NVL(MGR, 0)은 MGR 컬럼이 NULL이면 0으로 바꿈

NVL2 함수

  • NVL 함수와 DECODE 함수를 하나로 만든 것
  • NVL2(MGR, 1, 0)은 MGR 컬럼이 NULL이 아니면 1 NULL이면 0을 반환

NULLIF 함수

  • 두 개의 값이 같으면 NULL을 같지 않으면 첫 번째 값을 반환
  • NULLIF(EXP1, EXP2)은 EXP1과 EXP2가 같으면 NULL
    같지 않으면 EXP1을 반환

COALESCE

  • NULL이 아닌 최초의 인자 값을 반환
  • COALESCE(EXP1,EXP2,...) EXP1이 NULL이 아니면 EXP1 값을
    그렇지 않으면 그뒤의 값이 NULL 여부를 판단하여 값을 반환
profile
learn !

0개의 댓글