DB°³³ä

DB³í¸®±¸Á¶

Tablespace

 Oracle°í±Þ  

µ¥ÀÌÅÍ ¿¢¼¼½º¿Í °»½Å

µ¥ÀÌÅÍ µñ¼Å³Ê¸®

¹é¾÷°úº¹±¸

PL/SQL½Ç½À

Cluster ½Ç½À

Index½Ç½À  

Sequence ½Ç½À

 View½Ç½À

SQL½Ç½À

                                                                       ¸ÞÀΠ

¡á View ½Ç½À

¢º USER: PO7

>CREATE USER tester IDENTIFIED BY tester;

>GRANT CONNECT TO tester;

¢º USER: SCOTT

>CREATE VIEW staff

AS SELECT empno, ename, job, mgr, deptno FROM emp;

>GRANT SELECT ON staff TO tester;

>CREATE VIEW staff_dept

as select empno, ename, dname, loc from emp, dept

where emp.deptno=dept.deptno;

>SELECT * FROM staff_dept;

>CREATE VIEW vemp (eno, enm, job, sal, cls)

as select empno, ename, job, sal, deptno from emp;

>CREATE VIEW status (deptno, tot_men, max_sal, min_sal, avg_sal)

as select deptno, count(*), max(sal), min(sal), avg(sal) from emp

group by deptno;

>SELECT empno, ename, job, sal - avg_sal from emp, status

where emp.deptno=status.deptno;

>CREATE VIEW emp_dept

as select empno, ename, emp.deptno, dname, loc from emp, dept

where emp.deptno=dept.deptno;

>CREATE VIEW emp_sal

as select empno, ename, job, sal, comm from emp;

> UPDATE emp_dept set ename=' ';

14 rows updated.

> UPDATE emp_dept set dname=' ';

ERROR at line 1:

ORA-01779: cannot modify a column which maps to a non key-preserved table

> ROLLBACK WORK;

> DELETE FROM emp_dept where deptno=10;

3 rows deleted.

> ROLLBACK WORK;

>CREATE VIEW dept_emp

as select empno, ename, dept.deptno, dname, loc from emp, dept

where emp.deptno=dept.deptno;

> DELETE FROM dept_emp where deptno=10;


¡ß ºÐÇÒ ¿µ¿ª View

> CREATE TABLE d1_emp

as select * from emp where deptno=10;

> ALTER TABLE d1_emp add constraint c_d1 check(deptno in(10));

> CREATE TABLE d2_emp

as select * from emp where deptno=20;

> ALTER TABLE d2_emp add constraint c_d2 check(deptno in(20));

> CREATE TABLE d3_emp

as select * from emp where deptno=30;

> ALTER TABLE d3_emp add constraint c_d3 check(deptno in(30));

> CREATE VIEW d_emp as

select * from d1_emp union all

select * from d2_emp union all

select * from d3_emp;

> SELECT * FROM d_emp;

> INSERT INTO d1_emp values

(7999, 'CLARK', 'MANAGER', 7839, '09-JUN-81', 3999, 1999, 10);

> UPDATE d1_emp set sal=3000 where empno=7999;

> DELETE FROM d1_emp where empno=7999;