WHERE 절
- 테이블의 데이터 중 원하는 조건에 맞는 데이터만 조회하고 싶을 경우 사용
- 여러 조건 동시 전달 가능 (AND와 OR로 조건 연결)
- NULL 조회 시 IS NULL / IS NOT NULL 연산자 사용
- = 연산자로 조회 불가
- 연산자를 사용하여 다양한 표현이 가능
- 조건 전달 시 비교 대상의 데이터 타입 일치하는 것이 좋음
- 예) EMP 테이블의 부서번호 컬럼의 데이터타입은 숫자인데 문자 상수로 비교 시 성능 문제 발생
** 문법
** 주의사항
- 문자나 날짜 상수 표현 시 반드시 홑따옴표 사용 (다른 절에서도 동일 적용)
- 예) 'SMITH' 등
- ORACLE은 문자 상수의 경우 대소문자를 구분
- MSSQL은 기본적으로 문자 상수의 대소문자를 구분하지 X
예1) 이름이 SMITH인 직원 조회 (조건절에 문자 상수 사용)
- ORACLE은 대소문자 구분 → 데이터가 SMITH로 저장, 소문자로 조회 시 출력 X
예2) SAL이 1500 이상인 사원 정보 조회 (숫자 상수 전달)
- 문자, 날짜가 아닌 숫자 상수 전달할 때는 홑따옴표 사용 X
예3) COMM 값이 NULL인 직원 정보 출력
- IS NULL 사용, COMM = NULL로 조회 불가
예4) 여러 조건 전달 - AND 연산자 사용
- DEPTNO가 10이면서 SAL이 2000 이상인 직원 조회
예5) 여러 조건 전달 - OR 연산자 사용
- DEPTNO가 10이거나 SAL이 2000 이상인 직원 정보 출력
IN 연산자
- 포함연산자로 여러 상수와 일치하는 조건 전달 시 사용
- 상수를 괄호로 묶어서 동시에 전달
- 문자와 날짜 상수의 경우 반드시 홑따옴표와 함께
예) SMITH와 SCOTT의 직원 정보 출력
- OR 연산자를 통해 표현할 수도 있지만 IN 연산자를 통해 ENAME = 구문의 중복을 막을 수 있음
BETWEEN A AND B 연산자
- A보다 크거나 같고 B보다 작거나 같은 조건을 만족
- A와 B에 범위로 묶을 상수값 전달 (문자, 숫자, 날짜 모두 가능)
- A가 B보다 작아야 함 → 반대로 작성 시 아무것도 출력되지 X
- A와 B도 범위에 포함 ! (A 이상 B 이하)
예) SAL이 2000 이상 3000 이하인 직원 정보 출력
- SAL의 반복 사용 → BETWEEN A AND B 연산자 사용
- 반대로 사용 시 조회 X → 범위 체크 중요
LIKE 연산자
- 정확하게 일치하지 않아도 되는 패턴 조건 검사 시 사용
- %, _
- % : 자리수 제한 없는 모든 값
- _ : _ 하나 당 한 자리수의 모든 값
예)
ENAME LIKE 'S%' : 이름이 S로 시작 (길이 상관 X)
ENAME LIKE '%S%' : 이름에 S가 포함되는 (길이 상관 X)
ENAME LIKE '%S' : 이름이 S로 끝나는 (길이 상관 X)
ENAME LIKE '_S%' : 이름의 두 번째 글자가 S인 (길이 2 이상)
ENAME LIKE '__S__' : 이름의 가운데 글자가 S이고 길이가 5글자
NOT 연산자
- 조건 결과의 반대집합. 즉, 여집합
- NOT IN, NOT BETWEEN A AND B, NOT LIKE, NOT NULL 등으로 사용
예) NOT 연산자의 사용
- SAL <= 3000으로 사용하면 되므로 이런 경우에는 굳이 NOT 연산자 사용 X
'sqld' 카테고리의 다른 글
2-6) ORDER BY 절 (0) | 2024.08.21 |
---|---|
2-5) GROUP BY 절과 HAVING 절 (0) | 2024.08.21 |
2-3) 함수 (0) | 2024.08.21 |
2-2) SELECT 문 (0) | 2024.08.20 |
2-1) 관계형 데이터베이스 개요 (0) | 2024.08.19 |