시퀀스


시퀀스 = 정수 값을 생성하는 데이터베이스 객체

 

시퀀스 특징

1)     고유 번호를 자동으로 생성 -> Primary key로 자주 사용

2)     공유할 수 있는 객체

3)     시퀀스 값이 메모리에서 캐시된 경우 엑세스 속도 향상

 

시퀀스 생성

Create sequence seq_emp

increment by 1 – 부를 때마다1씩 증가

start with 1 –시작 번호는 1

maxvalue 100 –최대 값 100

nocache nocycle;--캐시를 사용하지 않고, 사이클을 사용하지 않음

 

시퀀스 확인

Select * from user_seqeunce

 

시퀀스 적용

Insert into t_emp values(seq_emp.nextval);  --처음 실행하면 당연히 1이 들어감

Insert into t_emp values(seq_emp.nextval);  -- 2

Insert into t_emp values(seq_emp.nextval);  -- 3

 



◆뷰


= 자주 쓰이는 쿼리를 저장하고 쓴다.

 

1)     권한 받기(sys로 접속)

grant create view to n1;

 

2)     뷰 생성

create view empvu80

as select employee_id, last_name,salary

from employees

where department_id =80;

 

3)     뷰 사용

select * from empvu80;

 

4)     뷰 삭제

drop view empvu80;

 

5)     뷰 수정

CREATE OR REPLACE VIEW empvu80

(id_number, name, sal, department_id)

AS SELECT employee_id, first_name || ' '

|| last_name, salary, department_id

FROM employees

WHERE department_id = 80;

 

6)     복합 뷰

CREATE OR REPLACE VIEW dept_sum_vu

(name, minsal, maxsal, avgsal)

AS SELECT d.department_name, MIN(e.salary),

MAX(e.salary),AVG(e.salary)

FROM employees e JOIN departments d

ON (e.department_id = d.department_id)

GROUP BY d.department_name;

 

7)     동의어 생성 및 제거

create synonym d_sum for dept_sum_vu; -- 생성

 

select * from d_sum;  -- 확인

 

drop synonym d_sum; -- 동의어 제거

 

 

8)     뷰를 쓸 때 주의 사항

A.     단순 뷰는 DML을 수행할 수 있다.

-       with check option 절을 사용함으로 DML을 수행하지 못하도록 막을 수 있다.

CREATE OR REPLACE VIEW empvu20

AS SELECT *

FROM employees

WHERE department_id = 20

WITH CHECK OPTION CONSTRAINT empvu20_ck ;

 

B.      뷰에 그룹 함수, group by, distinct , rownum ,표현식으로 정의되는 열 등이 포함되어 있을 경우 뷰의 데이터를 수정,삭제,추가가 불가능

+ Recent posts