조건부 검색을 위해 WHERE절을 사용한다.
WHERE절은 조회하려는 데이터에 특정 조건을 부여할 목적으로 사용되므로 FROM 절 뒤에 온다.
사용법
SELECT [DISTINCT | ALL] 칼럼명 [ALAS명] FROM 테이블명 WHERE 조건식;
//조건식
-비교연산자 -문자, 숫자, 표현식 -비교칼럼명(JOIN)
1. 비교연산자
연산자 | 의미 |
= | 같다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
2. SQL 연산자
연산자 | 의미 |
BETWEEN A AND B | A와 B 사이에 값이 있을 경우 (A,B값도 포함) |
IN (list) | 리스트에 있는 값 중에서 하나라도 일치하는 값이 있을 경우 |
LIKE '비교문자열' | 비교 문자열과 형태가 일치할 경우 |
IS NULL | NULL 값인 경우 |
IN 연산자
SELECT ENAME, JOB, DEPTNO FROM EMP WHERE (JOB, DEPTNO) IN (('MANAGER', 20),('CLERK',30));
LIKE 연산자
[와일드카드]
% : 0개 이상의 어떤 문자
_ : 1개 이상의 단일 문자
ex) "장"씨 성을 가진 선수들의 정보를 조회하는 WHERE절
SELECT * FROM PLAYER WHERE PLAYER_NAME LIKE '장%';
BETWEEN A AND B 연산자
ex) 키가 170센티미터 이상 180센티미너 이하인 선수들의 정보
SELECT * FROM PLAYER WHERE HEIGHT BETWEEN 170 AND 180;
IS NULL 연산자
- NULL : 값이 존재하지 않는다. 확정되지 않은 값. 비교가 불가능하다.
[특징]
- NULL값과의 수치연산은 NULL값을 리턴한다.
- IS NULL : 칼럼이 NULL 값인지 확인하기 위해 사용한다.
SELECT * FROM PLAYER WHERE POSITION IS NULL;
3. 논리 연산자
연산자 | 의미 |
AND | 앞, 뒤 조건을 동시에 만족해야 한다. |
OR | 앞, 뒤 둘 중 하나만 참(TRUE)이면 된다. |
NOT | 조건의 반대되는 결과를 반환한다. |
4. 부정 연산자
부정 논리 연산자
연산자 | 의미 |
!= | 같지 않다. |
^= | 같지 않다. |
<> | 같지 않다. |
NOT 칼럼명 = | ~와 같지 않다. |
NOT 칼럼명 > | ~보다 크지 않다. |
부정 SQL 연산자
연산자 | 의미 |
NOT BETWEEN A AND B | A와 B사이에 있지 않다. |
NOT IN (list) | list값과 일치하지 않는다. |
IS NOT NULL | NULL 값을 갖지 않는다. |
5. ROWNUM / TOP
ROWNUM - Oracle에서 사용
- 임시 일련번호 부여한다.
- 테이블이나 집합에서 원하는 만큼의 행만 가져오려고 할 때 WHERE 절에서 행의 개수를 제한하는 목적으로 사용한다.
- 테이블 내의 고유한 키나 인덱스 값을 만들 수 있다.
SELECT * FROM PLAYER WHERE ROWNUM=1;
OR
SELECT * FROM PLAYER WHERE ROWNUM<=1;
OR
SELECT * FROM PLAYER WHERE ROWNUM<2;
TOP - SQL Server에서 사용
출력되는 행의 개수 제한
SELECT TOP(1) PLAYER_NAME FROM PLAYER;
'Backend > SQL' 카테고리의 다른 글
SQL - GROUP BY, HAVING 절 (0) | 2022.11.05 |
---|---|
SQL 기본 및 활용 (3) - 트랜잭션 (0) | 2022.11.05 |
SQL 기본 및 활용 (2) - DML (0) | 2022.11.04 |
SQL 기본 및 활용 (1) - DDL (0) | 2022.11.04 |