SQLD - WHERE 문 사용

헨도·2024년 2월 1일
0

SQLD

목록 보기
16/28
post-thumbnail

WHERE 문 사용

WHERE 문이 사용하는 연산자

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

비교 연산자

비교 연산자설명
=같은 것을 조회한다.
<작은 것을 조회한다.
<=작거나 같은 것을 조회한다.
>큰 것을 조회한다.
>=크거나 같은 것을 조회한다.

부정 비교 연산자

부정 비교 연산자설명
!=같지 않은 것을 조회한다.
^=같지 않은 것을 조회한다.
<>같지 않은 것을 조회한다.
NOT 컬럼명 =같지 않은 것을 조회한다.
NOT 컬럼명 >같지 않은 것을 조회한다.

논리 연산자

논리 연산자설명
AND조건을 모두 만족해야 참(True)이 된다.
OR조건 중 하나만 만족해도 참(True)이 된다.
NOT참이면 거짓(False)으로 바꾸고 거짓이면 참(True)으로 바꾼다.

SQL 연산자

SQL 연산자설명
LIKE '%비교 문자열%'비교 문자열을 조회한다. '%'는 모든 값을 의미한다.
BETWEEN A AND BA 와 B 사이의 값을 조회한다.
IN (list)OR 를 의미하며 list 값 중에 하나만 일치해도 조회한다.
IS NULLNULL 값을 조회한다.

부정 SQL 연산자

부정 SQL 연산자설명
NOT BETWEEN A AND BA 와 B 사이의 해당되지 않는 값을 조회한다.
NOT IN (list)list 와 불일치한 것을 조회한다.
IS NOT NULLNULL 이 아닌 것을 조회한다.

Example )

  • EMP 테이블에서 EMPNO 가 1001이고 SAL 이 1000 보다 크거나 같은 것을 조회한다.
SELECT *
FROM EMP
WHERE
	EMPNO = 1001
    AND SAL >= 1000;

LIKE 문 사용

  • LIKE 문은 와일드 카드를 사용해서 데이터를 조회할 수 있다.

와일드 카드

와일드 카드설명
%- 어떤 문자를 포함한 모든 것을 조회한다.
- 예를 들어 '조%'는 '조'로 시작하는 모든 문자를 조회한다.
_ (underscore)한 개의 단일 문자를 의미한다.

Example )

  • ENAME 이 'test'로 시작하는 모든 데이터를 조회한다.
SELECT *
FROM EMP
WHERE
	ENAME LIKE 'test%';
  • ENAME의 마지막이 '1'로 끝나는 모든 것을 조회한다.
SELECT *
FROM EMP
WHERE
	ENMAE LIKE '%1';

BETWEEN 사용

  • BETWEEN 문은 지정된 범위에 있는 값을 조회한다.
  • "BETWEEN 1000 and 2000" 은 1000과 2000을 포함하고 1000과 2000 사이의 값을 조회한다.

Example )

  • 급여(SAL)가 1000 이상 2000 이하 사이의 값을 조회한다.
SELECT *
FROM EMP
WHERE
	SAL BETWEEN 1000 AND 2000;

IN 문 사용

  • IN 문은 "OR"의 의미를 가지고 있어서 하나의 조건만 만족해도 조회가 된다.
  • 예를 들어 JOB이 "CLERK"이거나 "MANAGER"인 것을 조회할 때 "JOB IN ('CLERK', 'MANAGER')"를 사용한다.
SELECT *
FROM EMP
WHERE
	JOB IN ('CLERK', 'MANAGER');
  • 괄호를 사용하면 원하는 데이터를 컬럼명에 대응되도록 입력함으로써, IN 문으로 여러 개의 컬럼에 대한 조건을 지정할 수 있다.

NULL 값 조회

NULL 의 특징

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

NULL 값 조회

  • NULL 을 조회할 경우는 IS NULL 을 사용하고 NULL 값이 아닌 것을 조회할 경우는 IS NOT NULL 을 사용한다.

Example )

  • MGR 컬럼이 NULL 인 것을 조회한다.
SELECT *
FROM EMP
WHERE
	MGR IS NULL;

NULL 관련 함수

NULL 함수설명
NVL 함수 (Oracle)- NULL 이면 다른 값을 바꾸는 함수이다.
- 'NVL(MGR, 0)' 은 MGR 컬럼이 NULL 이면 0으로 바꾼다.
NVL2 함수 (Oracle)- NVL 함수와 DECODE 함수를 하나로 만든 것이다.
- 'NVL2(MGR, 1, 0)'은 MGR 컬럼이 NULL 이 아니면 1을, NULL 이면 0을 반환한다.
NULLIF 함수 (Oracle, MS-SQL, MySQL)- 두 개의 값이 같으면 NULL 을, 같지 않으면 첫 번째 값을 반환한다.
- 'NULLIF(exp1, exp2)'은 exp1 과 exp2 가 같으면 NULL 을, 같지 않으면 exp1 을 반환한다.
COALESCE- NULL 이 아닌 최초의 인자 값을 반환한다.
- 'COALESCE(exp1, exp2, exp3, ...)' 은 exp1 이 NULL 이 아니면 exp1 의 값을, 그렇지 않으면 그 뒤의 값의 NULL 여부를 판단하여 값을 반환한다.
profile
Junior Backend Developer

0개의 댓글