Search Results for 'Oracle9i'

6 POSTS

  1. 2008/05/14 2008년 5월 14일.
  2. 2008/05/08 SQL*PLUS
  3. 2008/05/07 2008년 4월 2일.

2008년 5월 14일.

Posted 2008/05/14 19:39, Filed under: Oracle9i

*** 5장에서 생성한 E학번 테이블과 D학번 테이블 사용 ***

1. E학번 테이블의 manager_id 칼럼을 삭제하여라.

SQL> alter table E200707083
  2  drop column manager_id;

Table altered.

2. E학번 테이블과 D학번 테이블에 데이터를 추가하여라.

1) D학번 테이블에 NO는 10이고 NAME은 Finance인 행을 추가하여라.

SQL> insert into D200707083 (no,name) values (10, 'Finance');

1 row created.

2) E학번 테이블에 두 개의 행을 추가하여라. 첫 번째  사원은 DEPTID가 10인 Donna Smith(LNAME, FNAME)이고 ID는 200이다. 두 번째 사원은 DEPTID가 54인 Albert Jones이고 ID는 201이다. 결과와 그 결과의 이유를 설명하여라.

Result 1)

SQL> insert into e200707083 (deptid,lname, fname, id)
  2  values (10, 'Donna', 'Smith', 200);

1 row created.

Result 2)

SQL> insert into e200707083 (deptid, lname, fname, id)
  2  values (52, 'Albert', 'Jones', 201);
insert into e200707083 (deptid, lname, fname, id)
*
ERROR at line 1:
ORA-02291: integrity constraint (Y200707083.EMP200707083C_DEPTID_FK) violated -
parent key not found

3) NO가 10, NAME이 Marketing인 데이터를 D학번 테이블에 추가하여라. 결과와 그 결과의 이유를 설명하여라.

SQL> insert into d200707083 (no,name) values (10, 'Marketing');
insert into d200707083 (no,name) values (10, 'Marketing')
*
ERROR at line 1:
ORA-00001: unique constraint (Y200707083.DEPT200707083C_NO_PK) violated

Reason : NO 컬럼에 PK키로 지정되어 있고, 중복된 값이 들어가 있기 때문에.

4) 치환매개변수를 이용하여 D학번 테이블에 Marketing은 NO를 37번, Sales는 54번, Personnel은 75번을 추가하여라.

SQL> insert into d200707083 (no, name)
  2  values (&no, '&name');
Enter value for no: 37
Enter value for name: Marketing
old   2: values (&no, '&name')
new   2: values (37, 'Marketing')

1 row created.

SQL> /
Enter value for no: 54
Enter value for name: Sales
old   2: values (&no, '&name')
new   2: values (54, 'Sales')

1 row created.

SQL> /
Enter value for no: 75
Enter value for name: Personnel
old   2: values (&no, '&name')
new   2: values (75, 'Personnel')

1 row created.

5) Albert Jones의 DEPTID는 54이고 ID는 201, Harry Chin은 각각 75와 202, Rey Guiliani는 37과 203인 행을 E학번 테이블에 추가하여라.

SQL> insert into e200707083 (lname, fname, deptid,
  2  values ('&lname', '&fname', &deptid, &id)
  3  ;
Enter value for lname: Albert
Enter value for fname: Jones
Enter value for deptid:  54
Enter value for id: 201
old   2: values ('&lname', '&fname', &deptid, &id)
new   2: values ('Albert', 'Jones',  54, 201)

1 row created.

SQL> /
Enter value for lname: Harry
Enter value for fname: Chin
Enter value for deptid: 75
Enter value for id: 202
old   2: values ('&lname', '&fname', &deptid, &id)
new   2: values ('Harry', 'Chin', 75, 202)

1 row created.

SQL> /
Enter value for lname: Rey
Enter value for fname: Guiliani
Enter value for deptid: 37
Enter value for id: 203
old   2: values ('&lname', '&fname', &deptid, &id)
new   2: values ('Rey', 'Guiliani', 37, 203)

1 row created.

SQL> select *
  2  from e200707083
  3  ;

        ID LNAME                     FNAME                         DEPTID
---------- ------------------------- ------------------------- ----------
       200 Donna                     Smith                             10
       201 Albert                    Jones                             54
       202 Harry                     Chin                              75
       203 Rey                       Guiliani                          37

6) 추가한 데이터가 영구적으로 반영되도록 하여라.

SQL> commit;

Commit complete.

3. E학번 테이블과 D학번 테이블의 데이터를 변경하고 삭제하여라.

1) D학번 테이블의 Personnel NAME을 Human Resources로 변경하여라.

SQL> update d200707083 set name = 'Human Resources'
  2  where name = 'Personnel'
  3  ;

1 row updated.

2) E학번 테이블의 202번 LNAME을 Korsgaard로 변경하여라.

SQL>  update e200707083 set lname = 'Korsgaard'
  2   where id = 202;

1 row updated.

3) D학번 테이블에서 NO가 54인 데이터를 삭제하여라. 결과와 그 결과의 이유를 설명하여라.

SQL> delete from d200707083
  2  where no = 54
  3  ;
delete from d200707083
*
ERROR at line 1:
ORA-02292: integrity constraint (Y200707083.EMP200707083C_DEPTID_FK) violated -
child record found

Reason : D학번 테이블의 DEPTID 값이 FK 값으로 지정되어 있기 때문에.

4) E학번 테이블에서 Albert Jones를 삭제하여라.

SQL> delete from e200707083
  2* where lname = 'Albert' and fname = 'Jones'
SQL> /

1 row deleted.

5) D학번 테이블에서 NO가 54인 데이터를 다시 삭제하여라. 결과와 그 결과의 이유를 설명하여라.

SQL> delete from d200707083
  2  where no  = 54
  3  ;

1 row deleted.

Reason : FK로 지정되어 있는 값이 먼저 삭제되었기 때문에.

6) 변경한 데이터가 영구적으로 반영되도록 하여라.

SQL> commit;

Commit complete.

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

'Oracle9i' 카테고리의 다른 글

2008년 5월 14일.  (0) 2008/05/14
SQL*PLUS  (0) 2008/05/08
2008년 4월 2일.  (0) 2008/05/07
2008년 3월 28일.  (0) 2008/05/07



Trackback URL : http://trustnoone.tistory.com/trackback/676

Leave a comment

SQL*PLUS

Posted 2008/05/08 09:43, Filed under: Oracle9i

SQL

SQL*PLUS

PL/SQL

DB <- SQL*PLUS(ed, set....) < ?

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

'Oracle9i' 카테고리의 다른 글

2008년 5월 14일.  (0) 2008/05/14
SQL*PLUS  (0) 2008/05/08
2008년 4월 2일.  (0) 2008/05/07
2008년 3월 28일.  (0) 2008/05/07



Trackback URL : http://trustnoone.tistory.com/trackback/671

Leave a comment

2008년 4월 2일.

Posted 2008/05/07 17:47, Filed under: Oracle9i

5. 이름이 ‘ALLEN’인 사원의 부서 이름을 출력하여라.

SQL> ed
file afiedt.buf(이)가 기록되었습니다

  1  select e.dept, d.dname
  2  from emp e, dept d
  3* where e.deptno = d.deptno and ename = 'ALLEN'
SQL> ;
SQL> /

DNAME
--------------
SALES

6. ‘ALLEN’과 직무가 같은 사원의 이름, 부서 이름, 급여, 부서 위치를 출력하여라.

SQL> select e.ename, d.dname, e.sal, d.loc
  2  from emp e, dept d
  3  where e.deptno = d.deptno and e.job = (select job from emp where ename = 'ALLEN')
  4  ;

ENAME      DNAME                 SAL LOC
---------- -------------- ---------- -------------
ALLEN      SALES                1600 CHICAGO
WARD       SALES                1250 CHICAGO
MARTIN     SALES                1250 CHICAGO
TURNER     SALES                1500 CHICAGO


7. 전체 사원의 평균 급여보다 급여가 많은 사원의 사원 번호, 이름, 부서 이름, 입사일, 부서 위치, 급여를 출력하여라.

SQL> select e.empno, e.ename, d.dname, e.hiredate, d.loc, e.sal
  2  from emp e, dept d
  3  where e.deptno = d.deptno and e.sal > (select avg(sal) from emp)
  4  ;

     EMPNO ENAME      DNAME          HIREDATE LOC                  SAL
---------- ---------- -------------- -------- ------------- ----------
      7566 JONES      RESEARCH       81/04/02 DALLAS              2975
      7698 BLAKE      SALES          81/05/01 CHICAGO             2850
      7782 CLARK      ACCOUNTING     81/06/09 NEW YORK            2450
      7788 SCOTT      RESEARCH       87/04/19 DALLAS              3000
      7839 KING       ACCOUNTING     81/11/17 NEW YORK            5000
      7902 FORD       RESEARCH       81/12/03 DALLAS              3000

6 개의 행이 선택되었습니다.


8. 10번 부서 사원들 중에서 20번 부서의 사원과 같은 직무를 갖는 사원의 사원 번호, 이름, 부서 이름, 입사일, 부서 위치를 출력하여라.


SQL> select d.deptno, e.ename, d.dname, e.hiredate, d.loc
  2  from emp e, dept d
  3  where e.deptno = d.deptno and e.job in (select job from emp where deptno = 20)
  4  ;

    DEPTNO ENAME      DNAME          HIREDATE LOC
---------- ---------- -------------- -------- -------------
        20 SCOTT      RESEARCH       87/04/19 DALLAS
        20 FORD       RESEARCH       81/12/03 DALLAS
        20 SMITH      RESEARCH       80/12/17 DALLAS
        20 ADAMS      RESEARCH       87/05/23 DALLAS
        10 MILLER     ACCOUNTING     82/01/23 NEW YORK
        30 JAMES      SALES          81/12/03 CHICAGO
        20 JONES      RESEARCH       81/04/02 DALLAS
        10 CLARK      ACCOUNTING     81/06/09 NEW YORK
        30 BLAKE      SALES          81/05/01 CHICAGO

9 개의 행이 선택되었습니다.


9. ‘ALLEN’의 급여보다 많고 ‘SCOTT’의 급여보다 적은 사원의 사원 번호, 이름, 부서 이름, 부서 위치, 급여를 급여가 많은 순으로 출력하여라.


SQL> select e.empno, e.ename, d.dname, d.loc, e.sal
  2  from emp e, dept d
  3  where e.deptno = d.deptno and e.sal > (select sal from emp where ename = 'ALLEN') and e.sal < (
select sal from emp where ename = 'SCOTT')
  4  ;

     EMPNO ENAME      DNAME          LOC                  SAL
---------- ---------- -------------- ------------- ----------
      7566 JONES      RESEARCH       DALLAS              2975
      7698 BLAKE      SALES          CHICAGO             2850
      7782 CLARK      ACCOUNTING     NEW YORK            2450


16. 모든 사원들의 평균 급여 보다 많이 받는 사원들의 사원 번호와 이름을 출력하여라.

SQL> select d.deptno, e.ename
  2  from emp e, dept d
  3  where e.deptno = d.deptno and e.sal > (select avg(sal) from emp)
  4  ;

    DEPTNO ENAME
---------- ----------
        20 JONES
        30 BLAKE
        10 CLARK
        20 SCOTT
        10 KING
        20 FORD

6 개의 행이 선택되었습니다.


17. ‘FORD’와 부서가 같은 사원들의 이름, 부서 이름, 직무, 급여를 출력하여라.

SQL> select e.ename, e.ename, e.job, e.sal
  2  from emp e, dept d
  3  where e.deptno = d.deptno and e.deptno=(select d.deptno from emp e, dept d where e.deptno = d.d
eptno and e.ename = 'FORD')
  4  ;

ENAME      ENAME      JOB              SAL
---------- ---------- --------- ----------
SMITH      SMITH      CLERK            800
JONES      JONES      MANAGER         2975
SCOTT      SCOTT      ANALYST         3000
ADAMS      ADAMS      CLERK           1100
FORD       FORD       ANALYST         3000


18. 부서 이름이 ‘SALES’인 사원들의 평균 급여보다 많고, 부서 이름이 ‘RESEARCH’인 사원들의 평균 급여보다 적은 사원들의 이름, 부서 번호, 급여, 직무를 출력하여라.

SQL> select e.ename ,e.deptno,e.sal,e.job from emp e ,dept d
  2  where e.deptno = d.deptno and
  3  e.sal >(select avg(e.sal) from emp e ,dept d
  4  where e.deptno = d.deptno and  d.dname ='SALES') and
  5  e.sal < (select avg(e.sal) from emp e ,dept d
  6  where e.deptno = d.deptno and  d.dname ='RESEARCH')
  7  ;

ENAME          DEPTNO        SAL JOB
---------- ---------- ---------- ---------
ALLEN              30       1600 SALESMAN

크리에이티브 커먼즈 라이선스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

'Oracle9i' 카테고리의 다른 글

SQL*PLUS  (0) 2008/05/08
2008년 4월 2일.  (0) 2008/05/07
2008년 3월 28일.  (0) 2008/05/07
2008년 3월 19일.  (0) 2008/05/07



Trackback URL : http://trustnoone.tistory.com/trackback/670

Leave a comment


Blog Owner : MULDER。



TO FIND THE TRUTH,
YOU MUST BELIEVE。

I WANT TO BELIEVE。

http://trustnoone.tistory.com 。



now playing...



Artist : K-ci & JoJo
Album : THEIR GREATEST HITS (2005)
Title : 04. All My Life ♪ (5:26)






Calendar

«   2008/08   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Recent Posts

  1. 2008 Non-Stop English Camp #3
  2. 2008 Non-Stop English Camp #2
  3. 2008 Non-Stop English Camp #1
  4. yesterday...
  5. Wanted, 2008
  6. for... ?
  7. K-Ci & JoJo - Greatest Hits : All My L..
  8. Beastie Boys, 2008
  9. ipod touch 8G
  10. ipod touch leather folio

Recent Comments

  1. 제2의 하류인생일까... 공사, 마이킹... MULDER 07/29
  2. 총으로 마구도 쏘는구나 - -; MULDER 07/29
  3. 움.. 위에 설정을 한번 다시 한번 체킹.. MULDER 07/08
  4. ㅎㅎㅎ 짜장면 ㅎㅎ MULDER 07/08
  5. 아니라면.. 짜장면.. 절망ⓝ좌절 07/08
  6. 저는 한글 윈도우 쓰는데요, 노트북인데.. 봄봄 07/07
  7. 죄다 독백? 나그네 06/19
  8. 새로 장만한 나의 뉴 슈트; MULDER 06/17
  9. ㅎㅎ 얼릉 하삼.~ MULDER 06/16
  10. 우왕 국!~ 저도 기념으로다가 하나 신청.. 푸른고래 06/16

Recent Trackbacks

  1. ssh 접속은 터미널? 탐색기처럼 탐색한다.. 무엇을 구하려거든 전부가 그것이게 하라 06/24
  2. 윤동주의 서시. 엔즐군의 다이어리::Spring Edition 05/06
  3. 시끄러운 Superfetch Rommance - Daniel's 04/23
  4. 고향의 소리 말하자면 03/14
  5. 비스타 보안의 핵, 사용자 계정 컨트롤(U.. 아크비스타 :: 아크몬드의 비스타블로그 01/17
  6. [커프뮤비] 나는 사랑이 뭔지 모르나봐요.. 커프마왕 2007
  7. Spider-man 1,2,3 구손랜드® 2007
  8. 비스타 구매 전에 따져 봐야 한다 소프트웨어로 행복한 삶을 꿈꾸다 2007

Bookmarks

  1. .Πet S.W.A.T's Blog
  2. Cisco Systems, Inc
  3. Click Blog
  4. D.Blog v5.0
  5. Daydream
  6. EnTER_ThE_Ciyne ~~
  7. ky`s notebook
  8. LUKE CHUEH
  9. Microsoft Corporation
  10. Mininova The ultimate BitTorrent sour..
  11. nagafuji
  12. Nepion Community
  13. PARKOZ HARDWARE 2007
  14. Seoby@Blog R&B 리믹스
  15. sonchul
  16. YouTube - Broadcast Yourself.
  17. 마로-_ -;@ 겔러리
  18. 베타뉴스
  19. 숙희
  20. 인생무상
  21. 지식아 모여라!
  22. 포포 Blog
  23. 플라잉 디스크
  24. 필승의 다짐으로


Online Messenger



ID : taewoong7@netsgo.com



Address : taewoong7@hotmail.com



Site Stats

TOTAL 199925 HIT
TODAY 25 HIT
YESTERDAY 166 HIT