티스토리 뷰
1. Sequence?
시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체, 보통 PK값에 중복값을 방지하기위해 사용한다.
2. Sequence의 기본 형식:
CREATE SEQUENCE sequence_name
[START WITH n] /* 시퀀스의 시작 번호 */
[INCREMENT BY n] /*증감치 */
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}] /* 메모리상의 시퀀스 값을 관리하도록 하는 것, 기본 값은 20 */
/* NOCACHE 는 원칙적으로 메모리 상에서 시퀀스를 관리하지 않음 */
3. Sequence 객체 확인:
SELECT SEQUENCE_NAME,
MIN_VALUE,
MAX_VALUE,
INCREMENT_BY,
CYCLE_FLAG
FROM USER_SEQUENCES;
4. Sequence를 사용할 수 있는 경우:
1) 서브쿼리가 아닌 SELECT 문
2) INSERT 문의 SELECT 절
3) INSERT 문의 VALUE 절
4) UPDATE의 SET 절
5. Sequence를 사용할 수 없는 경우:
1) VIEW의 SELECT 절
2) DISTINCT 키워드가 있는 SELECT문
3) GROUP BY, HAVING, ORDER BY 절이 있는 SELECT 문
4) SELECT, DELETE, UPDATE의 서브 쿼리
5) CREATE TABLE, ALTER TABLE 명령의 DEFAULT 값
6. Sequence 활용:
-CURRVAL: 현재 시퀀스 값 반환
-NEXTVAL: 다음 시퀀스 값 삽입
1) 시퀀스 생성:
CREATE SEQUENCE EMP_SEQ
START WITH 1
INCREMENT BY 1
MAXVALUE 100000;
2) 테이블 생성:
CREATE TABLE EMP01(
EMPNO NUMBER(4) PRIMARY KEY,
ENAME VARCHAR(10),
HIREATE DATE
);
3) 시퀀스.NEXTVAL 삽입:
INSERT INTO EMP01
VALUES(EMP_SEQ.NEXTVAL, 'JULIA', SYSDATE);
INSERT INTO EMP01
VALUES(EMP_SEQ.NEXTVAL, 'CHOON', SYSDATE);
INSERT INTO EMP01
VALUES(EMP_SEQ.NEXTVAL, 'HAM', SYSDATE);
INSERT INTO EMP01
VALUES(EMP_SEQ.NEXTVAL, 'MOONG', SYSDATE);
다음과 같은 순서로 삽입한 뒤에 확인해보면,
위와 같이 순서대로 번호가 매겨지는 것을 확인할 수 있다.
끝!
반응형
'Database' 카테고리의 다른 글
[Error] JDBC 'LIKE' 사용 시 주의 사항 (0) | 2021.04.27 |
---|---|
<Database> 활용 가능한 Oracle 함수 (0) | 2021.04.13 |
<Database> SQL 집합 연산자 (0) | 2021.04.12 |
<Database> JDBC 활용_3 (문제 풀이) (0) | 2021.04.07 |
<Database> DML - SELECT (0) | 2021.04.06 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- 인천 구월동 이탈리안 맛집
- Promise
- 인천 구월동 맛집
- react
- react-native
- Async
- 맛집
- AsyncStorage
- redux-thunk
- 정보보안기사 #실기 #정리
- redux
- 이탈리안 레스토랑
- javascript
- await
- 파니노구스토
- Total
- Today
- Yesterday