[ 시퀀스 ]
- 연속적인 숫자값을 자동으로 증감시키는 일련번호를 발생시키는 객체
- 형식
[INCREMENT BY N]
[START WITH N]
[MAXVALUE N | NOMAXVALUE N]
[MINVALUE N | NOMINVALUE N]
[CYCLE | NOCYCLE]
[CACHE | NOCACHE]
예)
SQL> SELECT TEST_SEQ.NEXTVAL FROM DUAL;-- 일련번호 얻어오기
NEXTVAL
----------
1
SQL> SELECT TEST_SEQ.NEXTVAL FROM DUAL;
NEXTVAL
----------
2
SQL> SELECT TEST_SEQ.CURRVAL FROM DUAL; -- 현재발생된 일련번호 얻어오기
SQL> DROP SEQUENCE TEST_SEQ; -- 시퀀스 삭제하기
예)
2 INCREMENT BY 10
3 START WITH 100
4 MAXVALUE 100
5 CYCLE
6 NOCACHE;
Sequence created.
NEXTVAL
----------
100
NEXTVAL
----------
1
NEXTVAL
----------
11
-- 시퀀스 조회하기
예)
2 INCREMENT BY 10
3 START WITH 100
4 MAXVALUE 100
5 CYCLE
6 NOCACHE;
SQL> CREATE SEQUENCE BOARD_SEQ;
Sequence created.
2 VALUES(BOARD_SEQ.NEXTVAL,'TEST','SONG');
1 row created.
2 VALUES(BOARD_SEQ.NEXTVAL,'TODAY','KIM');
NUM TITLE WRITER
--- ------ -------
1 TEST SONG
2 TODAY KIM
[ 뷰(VIEW) ]
1) 뷰는 테이블에 대한 가상 테이블로써 SELECT로 조회된 데이터들의 가상 테이블이다.
2) 사용이유
(2) 복잡하고 자주 사용되는 질의를 뷰를 통해서 쉽게 사용
3) 형식
AS
서브쿼리;
..
[WITH CHECK OPTION]
[WITH READ ONLY]
## 뷰 생성 권한 부여하기
SQL> GRANT CREATE VIEW TO SCOTT;
SQL> CONN scott/tiger
-- 뷰생성하기
SQL> CREATE VIEW MYVIEW
2 AS
3 SELECT EMPNO "사원번호",ENAME "사원이름",SAL "급여",JOB "직업"
4 FROM EMP
SQL> SELECT * FROM MYVIEW;
사원번호 사원이름 급여 직업
-------- -------- ---- ------
7369 SMITH 800 CLERK
7521 WARD 1250 SALESMAN
7566 JONES 2975 MANAGER
7654 MARTIN 1250 SALESMAN
..
SQL> SELECT 사원이름,급여 FROM MYVIEW;
사원이름 급여
-------- -----
SMITH 800
WARD 1250
JONES 2975
MARTIN 1250
BLAKE 2850
......
SQL> INSERT INTO MYVIEW
2 VALUES(9000,'김길동',3000,'청소부');
1 row created.
SQL> SELECT * FROM EMP; -- 실제테이블에 추가됨
-- 뷰제거하기
SQL> DROP VIEW MYVIEW;
예)
2 AS
3 SELECT EMPNO,ENAME,SAL,JOB,DEPTNO
4 FROM EMP
5 WHERE SAL>=2000
6 WITH CHECK OPTION;
SQL> INSERT INTO MYVIEW
2 VALUES(9002,'송규남',1000,'강사',30);
INSERT INTO MYVIEW
*
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation
--> WITH CHECK OPTION 이 설정되어 있어서 오류!
(뷰의 질의에 대한 조건이 맞지 않으므로 오류!)
4) 뷰의 종류
(2) 복합뷰 : 두개 이상의 테이블로 생성되는 뷰(조인).DML 작업을 할 수 없다.
Q1) EMP테이블과 DEPT테이블을 이용하여 이름,직업,급여,부서명,위치를 조회하는 뷰를 생성하고 사용해 보세요.
2 AS
3 SELECT E.ENAME,E.JOB,E.SAL,D.DNAME,D.LOC
4 FROM EMP E,DEPT D
5 WHERE E.DEPTNO=D.DEPTNO;
View created.
SQL> SELECT * FROM EMPVIEW;
-- 뷰 정보 조회하기
SQL> SELECT VIEW_NAME FROM USER_VIEWS;
VIEW_NAME
----------
EMPVIEW
MYVIEW
'DBMS > 오라클기초' 카테고리의 다른 글
오라클 기초#12 ( Cursor, 사용자 계정관리, 계층형쿼리) (0) | 2013.01.27 |
---|---|
오라클 기초#11(Trigger) (0) | 2013.01.27 |
오라클 기초#8(제약조건:constraint) (0) | 2013.01.27 |
오라클 기초 #7(table) (0) | 2013.01.27 |
오라클 기초#6(Transaction Control Language) (0) | 2013.01.27 |