Backend/SQL

SQL 기본 및 활용 (4) - WHERE 절

rachel_13 2022. 11. 5. 01:55

조건부 검색을 위해 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