DB

SQL명령어 (WHERE)

닉넥임 2013. 7. 12. 15:23
반응형

1. 특정 행의 검색

일반적인 경우 테이블에 있는 모든 자료를 조회할 필요 없이 사용자가 원하는 자료를 조회하는 경우가 대부분 입니다. 이러한 질의를 만족하게 하는 것이 WHERE절입니다. WHERE절은 수행될 조건 절을 포함하며 FROM절 바로 다음에 기술됩니다.

 

1.1 Syntax

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

        FROM         table_name

        [WHERE       condition]

        [ORDER BY    {column, expression} [ASC | DESC]];

DISTINCT     중복 행 제거 옵션

*            테이블의 모든 column 출력

alias                해당 column에 대한 다른 이름 부여

table_name   테이블명 질의 대상 테이블 이름

WHERE                조건을 만족하는 행들만 검색

condition    column, 표현식, 문자 상수, 숫자 상수, 비교 연산자로 구성된다.

ORDER BY     질의 결과 정렬을 위한 옵션(ASC:오름차순(Default),DESC내림차순)

  

1.2 비교 연산자

연산자

  

=

같다

보다 크다

>=

보다 크거나 같다

보다 작다

<=

보다 작거나 같다

<>, !=, ^=

같지 않다

NOT  Column_name =

같지 않다

NOT  Column_name >

보다 크지 않다


1.2.1 SQL연산자

연산자

   

BETWEEN a AND b    

 ab사이에 있다.(a, b값 포함)       

IN  (list)

list의 값 중 어느 하나와 일치한다.

LIKE

문자 형태와 일치한다.(%,_사용)

IS NULL

NULL값을 가졌다.

NOT BETWEEN a AND b    

 ab사이에 있지않다.(a, b값 포함하지 않음)       

NOT IN  (list)

list의 값과 일치하지 않는다..

NOT LIKE

문자 형태와 일치하지 않는다.

NOT IS NULL

NULL값을 갖지 않는다.


1.2.2 LIKE 연산자

1)   검색 STRING 값에 대한 와일드 카드 검색을 위해서 LIKE연산자를 사용한다.

2)   검색 조건은 LITERAL 문자나 숫자를 포함할 수 있다.

3)   %는 문자가 없거나 하나 이상의 문자를 _는 하나의 문자와 대치됩니다.

4)   패턴 일치 문자를 조합할 수 있습니다.

5)   %_에 대해서 검색하기 위해서는 Escape 식별자를 이용할 수 있습니다.

 

) name에 값이 X_Y가 포함되어 있는 문자열을 조회하고자 할 경우 Escape를 사용한다

WHERE name LIKE %X\_Y% ESCAPE \;


연습문제) Oracle 11g xe의 hr 계정사용.

1. First Name이 Valli인 사원의 전화번호(Phone_Number)를 출력하시오.

 

SELECT phone_number FROM EMPLOYEES

WHERE first_name = 'Valli';


 

2. 사원 번호(사번)이 200번 이상인 사원들의 이름(first name, last name)을 출력하시오.

SELECT first_name, last_name 

FROM EMPLOYEES

WHERE employee_id >= 200;

 

3. 사번이 150~200 사이에 있는 사원들의 관리자 ID(manager id)를 "한번만(중복 미허용)" 출력하시오.

 

SELECT distinct manager_id 

FROM EMPLOYEES

WHERE employee_id

BETWEEN 150 AND 200;


4. 위 구문을 오름차순(관리자 id)으로 정렬하여 출력하시오.


SELECT distinct manager_id 

FROM EMPLOYEES

WHERE employee_id

BETWEEN 150 AND 200

ORDER BY manager_id;





반응형

'DB' 카테고리의 다른 글

SQL명령어 (SELECT 의 SUBQUERY)  (0) 2013.07.30
SQL 문제-3  (0) 2013.07.22
SQL 명령어(단일함수)[미완]  (0) 2013.07.18
그룹 함수(GROUP BY)  (0) 2013.07.17
SQL명령어 (SELECT)  (0) 2013.07.12