본문 바로가기
[ Developer ]/Oracle SQL

[SQL] WHERE 절 쿼리에 조건 주기

by 김현섭. 2016. 5. 9.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
SQL - WHERE

# SELECT의 WHERE절
  • 하나 이상의 테이블에서 여러 데이터를 가져온다 (조건에 맞는)
  • 컬럼 값과 Value를 비교한다
  • 자바의 비교 연산과 동일하게 사용
  • 자바 비교 연산 외 연산자
    • IN, LIKE, NOT
    • IN : 하나의 컬럼에 여러 개의 값을 검색
    • LIKE : 하나의 컬럼에 포함된 값을 검색
      • WILD CARD가 사용
      • %, _
  • WHERE절은 여러 개의 조건을 지원 (AND, OR 사용)
  • AND가 우선 순위를 갖고 괄호도 사용한다
SELECT [COLUMN], [COLUMN], [...]
FROM [TABLE]
WHERE [CONDITIONS]

where절은 SELECT로 불러오는 데이터들에 대해 조건식을 주는 것이다
하나의 값은 =(이퀄)도 가능하지만
여러개는 IN과 같은 LIST로 조건을 걸 수 있다

문자는 LIKE로 비교해야 하는데 %는 모든 문자 *와 같고
하나의 글자는 _로 사용한다 ?와 같은 기능



# SELECT 데이터 필터링 (연봉이 12000 이상인 사람의 성)


WHERE을 이용해서 기존 자바의 비교 연산자를 이용해서 조건을 입력한다
WHERE 이후에 SALARY >= 12000의 조건으로 연봉이 12000보다 크거나 같은 데이터들을 가져온다


# SELECT WHERE에서의 NOT
SELECT에서 조건식을 묶었을 때 !으로 낫을 표현하지 않고 NOT을 써줌으로 표현한다
조건식에는 != 표현 가능


# 사원번호가 176인 사원의 LAST_NAME과 부서 번호를 조회


자바와는 달리 =(이퀄)은 한번만 써줘도 된다


응용해서 부서 번호가 30보다 작은 부서에서 일하는 사원들의 이름과 사번을 조회할 수도 있다


위의 방식에서 AND 조건을 통해서 다른 조건을 걸어 필터할 수 있다


이와 같이 응용해서 연봉이 5000이상인 사원들만도 출력이 가능하다


# IN
WHERE에서 OR 대신에 선택한 값들만 골라서 출력해주는 문장이 있다


IN 을 사용해서 괄호 안에 값을 입력한다면 그 값이 입력된 것만 출력된다

IN 앞에 NOT을 붙여준다면 20, 50이 제외된 값들이 나오게 된다


IN은 같은 컬럼이 여러 개 값을 선택할 때만 사용할 수 있다

만약 부서 번호에 20과 연봉이 5000 이상인 조건을 건다면
IN을 사용할 수 없다

다른 컬럼이기 때문이다