경진의 블로그

관계형데이터베이스 연습문제, 5분퀴즈 본문

자바개발과정/오라클(Oracle)

관계형데이터베이스 연습문제, 5분퀴즈

aith 2008. 5. 20. 22:14
연습문제

※ 과제) SUB QUERY와 INLINE VIEW에 대해서 조사 할 것!

첨부 파일


TEMP, TDEPT테이블을 생성하고 데이타를 삽입한다
토드에서 COMMIT을 안하면 실제 오라클 DB에 반영되지 않는다 (토드에서 F5를 눌러 실행한다)

테이블 제거
DROP TABLE TEMP;
DROP TABLE TDEPT;

상단 풀어본거?, 하단 답

1. 월 급여는 연봉을 18로 나누어 홀수 달에는 연봉의 1/18이 지급되고, 짝수달에는 연봉의 2/18가 지급된다고 가정했을 때 홀수 달과 짝수 달에 받을 금액을 나타내시오.

SELECT emp_id
           , emp_name
           , salary
           , salary/18 AS 홀수달
           , (salary/18) * 2 AS 짝수달
           , lev
FROM temp;

SELECT emp_name
           , salary/18
           , salary*2/18
   FROM temp;

2. 위에서 구한 월 급여에 교통비가 10만원씩 지급된다면(짝수달은 20만원)위의 문장이 어떻게 바뀔지 작성해 보시오.

SELECT emp_id
           , emp_name
           , salary
           , (salary/18) + 100000 AS 홀수달
           , ((salary/18) * 2) + 200000 AS 짝수달   
           , lev
   FROM temp;

SELECT emp_name
           , 100000 + salary/18
           , 200000 + salary*2/18
   FROM temp;

3. TEMP 테이블에서 취미가 NULL 이 아닌 사람의 성명을 읽어오시오.

SELECT * FROM temp WHERE hobby IS NOT NULL;

SELECT emp_name
   FROM temp
 WHERE hobby is not null;

4. TEMP 테이블에서 취미가 NULL인 사람은 모두 HOBBY를 "없음"이라고 값을 치환하여
가져오고 나머지는 그대로 값을 읽어오시오.

SELECT emp_id
           , emp_name
           , birth_date
           , dept_code
           , emp_type
           , use_yn
           , tel
           , NVL(hobby, '없음')
           , salary
           , lev
   FROM temp;

SELECT emp_name
           , nvl(hobby,'없음')
   FROM temp;

5. TEMP의 자료 중 HOBBY의 값이 NULL인 사원을 '등산'으로 치환했을 때 HOBBY가 '등산'인
사람의 성명을 가져오는 문장을 작성하시오.

SELECT emp_name
   FROM temp
 WHERE NVL(hobby, '등산') = '등산';

SELECT emp_name
  FROM temp
 WHERE nvl(hobby,'등산') = '등산'

6. TEMP의 자료 중 EMP_ID와 EMP_NAME을 각각 '사번', '성명'으로 표시되어 DISPLAY되도록
COLUMN ALLIAS를 부여하여 SELECT 하시오.

SELECT emp_id AS 사번
           , emp_name AS 사명
   FROM temp;

SELECT emp_id as 사번
           , emp_name as 성명
   FROM temp;

7. 성명과 생년월일을 작은따옴표로 묶어서 하나의 문자열로 보여주는 문장을 만들어 보시오.

SELECT CONCAT('"'||emp_name,birth_date||'"') FROM temp;

SELECT ''''||emp_name||birth_date||'''' name_birth
   FROM temp;

8. TEMP의 자료를 직급 명(LEV)에 ASCENDING하면서 결과내에서 다시 사번 순으로
DESCENDING하게 하는 ORDER BY하는 문장을 만들어 보시오.

SELECT * FROM temp ORDER BY lev ASC, emp_id DESC;

    SELECT lev
               , emp_id
               , emp_name
       FROM temp
 ORDER BY 1, 2 DESC;

5분퀴즈

1. 사원 이름이 WARD인 사람의 급여는 얼마인가?

SELECT emp.ename, emp.sal FROM emp WHERE emp.ename = 'WARD';

SELECT sal
   FROM emp
 WHERE ename = 'WARD'

2. 급여가 2000보다 작은 사람의 사원 번호와 이름을 출력한다.

SELECT emp.empno, emp.ename FROM emp WHERE emp.sal < 2000;

SELECT empno
           , ename
   FROM emp
 WHERE sal<2000

3. 사원들의 JOB별로 그룹을 지어 사원들의 평균 연봉을 보여주되 평균 연봉이 1000보다 큰 JOB의 그룹을 출력한다.

SELECT job
          , ROUND(AVG(sal)) AS 평균연봉
  FROM emp GROUP BY job
HAVING ROUND(AVG(sal)) > 1000;

SELECT job
          , avg(sal)
  FROM emp
GROUP BY job
HAVING AVG(SAL) > 1000;

'자바개발과정 > 오라클(Oracle)' 카테고리의 다른 글

EXISTS & NOT EXISTS  (0) 2008.05.21
IN & NOT IN  (0) 2008.05.21
서브쿼리(SUB QUERY)  (0) 2008.05.21
관계형데이터베이스 쿼리연습  (0) 2008.05.20
관계형데이터베이스 연습문제, 5분퀴즈  (0) 2008.05.20
오라클  (0) 2008.05.19
0 Comments
댓글쓰기 폼