연속적인 사건이라는 뜻이며, 자동으로 증가하는 값을 만들어주는 객체
/*SEQUENCE 값 확인하는 방법*/
SELECT 회원ID_SEQ.NEXTVAL --[시퀀스명.NEXTVAL] 형식으로 시퀀스 값 호출
FROM DUAL ;
(
INCREMENT BY 1 --증가할 시퀀스 폭
START WITH 1 --시작할 시퀀스 값
MINVALUE 1 --시퀀스 최소 값
MAXVALUE 9999 --시퀀스 최대 값
)
/*
SEQUENCE를 사용하는 이유
시퀀스(SEQUENCE)와 뷰(VIEW)
1. PRIMARY KEY가 될 만한 컬럼이 존재하지 않을 때
2. 회원ID, 직원ID 처럼 규칙적으로 증가하는 값에 사용
→ NEXTVAL 키워드를 통해 이전 사원의 번호를 조회하지 않아도 다음 번호 사용 가능
*/
- 사용예시
--시퀀스 생성 CREATE SEQUENCE 회원ID_SEQ ; --시퀀스 값을 1씩 늘려줌(실행할때 마다) SELECT 회원ID_SEQ.NEXTVAL FROM DUAL; --시퀀스 삭제 DROP SEQUENCE 회원ID_SEQ;
참고 URL : 링크
일종의 “가상테이블” 을 의미, 테이블과 다르게 물리적으로 존재 X
BUT!!
사용자에게는 있는 것으로 간주됨
정보 보안 측면에서 유리하다는 장점
보통 자주 사용하는 쿼리를 뷰(VIEW)에 저장하여 사용
-- 괄호() 내용은 생략 가능
-- [1. 생성]
CREATE (OR REPLACE) VIEW [스키마.][뷰 NAME] AS
SELECT문;
-- [2. 수정]
CREATE (OR REPLACE) VIEW [스키마.][뷰 NAME] AS
SELECT문;
-- [3. 삭제]
DROP VIEW [스키마.][뷰 NAME];
-- [4. 구조 확인]
desc [스키마.][뷰 NAME];
VIEW를 생성하려면 권한 필요 (뷰 사용예시)
자주 조회되는 결과를 VIEW로 만들 수 있음.
CREATE VIEW 부서별최고연봉_VIEW AS
SELECT 부서ID, MAX(연봉) AS 부서별최고연봉
FROM 직원
GROUP BY 부서ID
ORDER BY 부서ID ;
SELECT *
FROM 부서별최고연봉_VIEW;
DROP VIEW 부서별최고연봉_VIEW;