본문 바로가기

DB

데이터베이스 2장(2010/8/23) 오전수업


SElECT *
FROM employees;

SELECT  employee_id
                 ,first_name
                 ,salary
FROM employees;

select employee_id, first_name, salary  from employees;

SELECT employee_id
                ,first_name
                ,salary
               
               
FROM employees
WHERE job_id = 'SA_REP'
ORDER BY salary DESC, first_name ASC
SELECT -35+40*2 FROM dual;

 

SELECT employee_id
                , job_id
                ,salary
FROM employees

WHERE job_id='IT_PROG'  AND  salary>=8000;


SELECT employee_id
              , first_name
              , hire_date
              , EXTRACT  (YEAR FROM hire_date)
--이건 날짜에서 년도를 1999처럼 네자리로 얻을 수 있다.

FROM employees
--WHERE hire_date >='99/01/01'
--              AND hire_date<='99/12/31'
이것도가능하다.
--WHERE hire_date BETWEEN '99/01/01' AND '99/12/31'
--WHERE hire_date BETWEEN '1999/01/01' AND '1999/12/31'
--위에 데이터 타입은 1999로 되어 있기 때문에 가능하다

--WHERE hire_date BETWEEN '01/01/1999' AND '/12/31/1999'     
--이건 될 수가 없다..왜냐면 데이터 타입이다르기 때문이다.


WHERE EXTRACT(YEAR FROM hire_date) = 1999
ORDER BY hire_date ASC;

문제)
배송이나 재교와 관련한 직무를 가진 사원 중에서 급여를 5000 미만 받는 사원들의 정보를 얻자.
결과> 사원번호, 사원이름, 직무아이디, 급여
직무 관련 정보는 job테이블을 참고한다.SELECT employee_id
              , first_name
              , job_id
              ,salary        
FROM employees
WHERE job_id IN('ST_MAN', 'ST_CLERK'  ,'SH_CLERK')
AND (salary < 5000 OR  salary >= 10000); 


여기서 연산자 우선순위 때문에 AND 뒤에 ()를 해줘야 한다. 왜냐면 AND보다 OR이 연산자 우선순위로 먼저 이기 때문이다.



-------------------------------------------------------------

'DB' 카테고리의 다른 글

- 2 일차 SQL 과제 –  (0) 2010.08.25
DB 3일차 오전  (0) 2010.08.25
DB 2일차 오전  (0) 2010.08.24
- 1 일차 SQL 과제 –  (0) 2010.08.23
데이터베이스 2장(2010/8/23) 오후수업  (0) 2010.08.23