본문 바로가기
Lecture/SQL & Oracle

[4주차][1주일 10분만 따라하는 SQL] where 사용

by 알 수 없는 사용자 2012. 5. 29.
반응형

오늘은 WHERE 조건절을 소개해드릴께요.


SELECT 의 결과를 WHERE 로 원하는 일부분만 조회하는 것이 가능합니다.


같은 결과를 가져오더라도 where절을 간결하고 성능을 고려해서 짜는 것이 바로 SQL 실력이랄까요ㅎ


기본 Syntax는 이렇습니다.


SELECT * | { [DISTINCT] column | expression [alias], ... }

FROM    table

WHERE   condition(s) ;



select employee_id, last_name, job_id, department_id

from    employees   의 결과에서 


where department_id = 90   조건으로 결과조회에 제한을 걸었습니다.



영문 데이터를 조건절에 사용하실때 주의하실 점이있어요,,


키워드나 컬럼명은 대소문자를 구분하지 않고 사용할 수 있지만


데이터! 데이터는 대소문자를 구분하기때문에 'whalen'으로 조회하면 결과가 나오지 않아요~ 꼭 알아두세요~



비교 대상 값이 number 타입일 경우 다른 언어들과 마찬가지로 여러 Operator들을 사용할 수 있어요,


=,  >,  <,  >=,  <= 을 사용할 수 있죠 ㅎ

그리고 하나 더!!  

같지 않다,, 를 표현하는 두가지!  !=,  <>, ^= , 어느 것을 사용해도 결과는 같게 나옵미다 ㅎ



오라클에서는 salary > 2000 && salary < 3000 이런 식의 연산을 허용하지 않아요~


& 이 친구는 다른 곳에 쓰임이있거든요 킄킄


그래서 조건 A 와 조건 B의 사이 값을 조회하려면 BETWEEN A AND B 를,, 제공하죠 .


주의할 점은 미만과 초과가 아닌 이하와 이상,, 조건 값을 포함하는 거라능염~



IN 연산자는 (괄호)엔에 만족하는 모든 값을 조회해 줍니다.


예제처럼 manager_id 가 100, 101, 201인 모든 사람을 보여줍니다.



새롭게 보이는 LIKE 연산자와 %가 있어요,,


LIKE는 말그대로 비스~읏한 값을 보여주세요란 뜻이고 %는 비스~읏한 값을 표현하죠 ㅋ


난 테이블에 존제하는 모든 김씨들 명단을 알고싶어!! 라는 주문이 떨어졌을때,, 


where 이름 LIKE '김%'; 라고 주문하면 되겠죠??


음,, 


where 이름 = '김%' 이라고 조건을 주면,, 김%라는 이름을 찾아요,,ㅋㅋ   = 과 LIKE의 차이죠 ㅎ




성은 상관없고 ''두''번째 글짜가 ''봉''인 사람이 알고싶네염,, 라고 하면


LIKE '%봉%' 이라고 잘못 생각하기 쉬워요!


%는 앞뒤에 몇글짜든 상관없이 ''봉''이 들어간 데이터를 찾아주거든요 ㅎ


그래서 언더바 '' _ '' 를 사용해서 자릿수를 표현해요,, 한개면 한자리 ,, 두개면 두자리,,


LIKE '_봉%' 으로 조건을 주면! 두번째 글짜가 봉인 사람들이 검색되죠.,,



NULL 값을 조회할때 쓰는 조건이에요,


이 조건도 마찬가지로 = 으로 조회하면 조회가 되지 않아요!!