도래울

오라클 - select, where 본문

개발/DataBase

오라클 - select, where

도래울 2016. 2. 5. 13:29

1. 오라클 - SELECT, WHERE

 

1) SELECT - 데이터 조회 하기

SELECT 칼럼, 칼럼, ....
FROM 테이블

●테이블의 모든 칼럼 조회
SELECT *
FROM 테이블;

>>테이블 안에 있는 모든 데이터를 조회한다.


●테이블의 특정 칼럼 조회
SELECT 칼럼1, 칼럼2, ....
FROM 테이블;

>>테이블 안에 있는 특정 칼럼들만 조회한다.




2) WHERE - 전체 데이터중 조건을 만족하는 값만 조회하기

WHERE 칼럼이름 조건값

● 기본적인 조건 조회하기
SQL) SELECT employee_id, hire_date
        FROM employees
        WHERE last_name = 'king';


>> employees 안에 있는 데이터 중 last_name= 'king'인 데이터의 employee_id, hire_date 칼럼을 조회한다.



SQL) SELECT employee_id, last_name, salary

         FROM employees
        WHERE salary >= 10000;

>> employees 안에 있는 데이터 중 salary >= 10000 의 조건을 만족하는 데이터의 employee_id, last_name, salary 칼럼을 조회한다.
※ 테이블에 저장된 문자 데이터에 대해서는 대소문자를 구분한다. 그리고 문자, 날짜 데이터는 ' '으로 묶어서 표현해 주어야한다.


● AND를 이용한 조건 설정

SQL) SELECT employee_id, last_name, salary

         FROM employees
        WHERE salary >= 10000

        AND salary <= 20000;

>> employees 안에 있는 데이터중 salary >= 10000, salary <=20000 의 두 조건을 모두 만족하는 데이터의 employee_id, last_name, salary을 조회한다.

 

● OR를 이용한 조건 설정

SQL) SELECT employee_id, last_name, salary

         FROM employees
        WHERE salary >= 10000

        OR salary <= 20000;

 

>> employees 안에 있는 데이터 중 salary >= 10000, salary <=20000 의 두 조건중 하나라도 만족하는 데이터의 employee_id, last_name, salary을 조회한다.

 

● BETWEEN AND를 이용한 조건 설정. (AND 연산을 보다 간결하게)

SQL) SELECT employee_id, last_name, salary

         FROM employees
        WHERE salary BETWEEN 10000 AND 20000


>> 위의 AND를 이용한 조건설정을 BETWEEN AND를 이용해 보다 간편하게 표현할수 있다.
(BETWEEN AND 연산은 =<, => 과 같은 말이다. >, <와 같은 미만,초과와 같은 표현은 AND연산으로 비교해야함.)


● IN를 이용한 조건 설정 (OR연산을 보다 간결하게)

SQL) SELECT employee_id, last_name, job_id

         FROM employees
        WHERE job_id = 'FI_MGR'

        OR job_id = 'FI_ACCOUNT'

        OR job_id = 'SA_MGR';

 

       위의 부분을

 WHERE job_id IN ('FI_MGR', 'FI_ACCOUNT','SA_MGR');

 으로 보다 간결하게 표현할수 잇다.

 

>>  위 IN조건 중 하나라도 만족하는 데이터의 employee_id, last_name, job_id를 조회한다.

 

● IS NULL/NOT를 이용한 조건 설정

SQL> SELECT employee_id, last_name, job_id, salary, commision_pct

FROM employees

WHERE commission_pct IS NOT NULL; //IS NULL일 경우에는 값이 있는 것을 조회한다.

 

>> employees 안에 있는 데이터 중 commission_pct의 값이 NULL이 아닌 데이터의 employee_id, last_name, job_id, salary, commision_pct를 조회한다.
※ NULL은 0이 아니다. 할당되지 않은 값을 말한다. 즉, commission_pct에 아무런 값이 없을때를 말함.
commission_pct의 값에 0이 들어가있다면, 그것은 0이라는 값이 할당된것이다.


● LIKE를 이용한 조건 설정

SQL> SELECT employee_id, last_name, hire_date

FROM employees

WHERE hire_date BEETWEEN '97/01/01' AND '97/12/31'

위의 노란 부분을


WHERE hire_date LIKE '97%';

이렇게 바꿀수 있다.

hire_date는 입사일임.


>>두 구문은 hire_date안의 97년 입사자를 조회한다. 97%의 의미는 '97'로 시작되는 모든 값은 조건을 만족하며, 만약에 사원이름을 검색할때 일부만 기억하고 있을경우 'Au'로 LIKE를 이용하여 조건절을 설정하면 'Au'로 시작하는 사원을 조회한다.
※ 연도를 이용하여 조건을 검색할때는 2자리로 검색하는 것보다, 4자리로 검색하는게 좋다. 1970년과 2070년의 구분의 의미가 없어지기 때문이다.


'개발 > DataBase' 카테고리의 다른 글

커서란 무엇이고 SQL에서 어떻게 사용되는가  (3) 2016.02.05
V$SQL 이란?  (0) 2016.02.05
Oracle Query Join and count  (0) 2016.02.05
Comments