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 |