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 |
a와b사이에 있다.(a, b값 포함) |
IN (list) |
list의 값 중 어느 하나와 일치한다. |
LIKE |
문자 형태와 일치한다.(%,_사용) |
IS NULL |
NULL값을 가졌다. |
NOT BETWEEN a AND b |
a와b사이에 있지않다.(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 |