일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jsp
- 운영체제
- gradle
- 백준 알고리즘
- K6
- 프로젝트
- 오라클
- hyperledger
- 자바
- dynamic query
- 초대장
- 파이썬 소스
- SQL
- 문법 정리
- 자바 프로젝트
- 오라클 디비
- 파이썬
- oracle
- auto configure
- c#
- resilience4j
- 티스토리
- smart cast
- 알고리즘
- spring
- 학점
- MongoDB
- JVM
- 리눅스
- 유사코드
- Today
- Total
모종닷컴
Oracle 문법 정리 - 시퀀스, 뷰 본문
◆시퀀스
시퀀스 = 정수 값을 생성하는 데이터베이스 객체
시퀀스 특징
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 ,표현식으로 정의되는 열 등이 포함되어 있을 경우 뷰의 데이터를 수정,삭제,추가가 불가능
'Programming > 데이터베이스' 카테고리의 다른 글
Oracle 문법 정리 - 유저 엑세스 제어 (0) | 2018.01.23 |
---|---|
Oracle 문법 정리 - 스키마 객체 (0) | 2018.01.22 |
Oracle 문법 정리 - DDL (0) | 2018.01.08 |
Oracle 문법 정리 - 트랜잭션 (0) | 2018.01.05 |
Oracle 문법 정리 - DML (0) | 2018.01.04 |