본문으로 바로가기
반응형

 

 


 

 

 

SEQUENCE 란,

 

 

순차적으로 정수 값을 자동으로 생성하는 객체로 자동 번호 발생기 역할을 합니다.

 

 

 

 

 

 

SEQUENCE 의 표현식은 아래와 같습니다.

 

 

 

 

 

 

예시를 통해 자세히 살펴보도록 합시다.

 

 


 

▶ 예시

 

 

 

입력된 SQL문을 해석해보면,,

 

SEQ_EMPID 라는 이름을 갖는 SEQUENCE를 생성하는데,

시작번호는 300으로 하고,

5씩 증가시키며,

최대 값은 310으로 지정하고,

반복을 설정하지 않으며(최대 값 도달 시 더이상 증가시키지 않음),

메모리 상에서 시퀀스 값을 특별히 관리하지 않는다..

 

 

는 의미입니다.

 

 

 

 

 

 

 

전체 시퀀스를 검색해보면,,

 

 

 

위와 같이 나옴을 알 수 있습니다.

 

 

 

 

 


 

▷ NEXTVAL/CURRVAL 사용 가능 여부

 

 

 

 

 

 

 


▷ SEQUENCE 수정하기

 

 

 

 

SEQUENCE 수정은 테이블 수정과 비슷하게 동작합니다.

 

 

표현식은 아래와 같습니다.

 

 

 

 


▷ SEQUENCE 삭제하기

 

 

 

 

일반적인 테이블 삭제와 같이 

 

DROP SEQUENCE '시퀀스이름'

 

 

위와 같이 해주면 됩니다.

 

 

 

※ SEQUENCE는 한 번 값이 조회되면 그대로 값이 유지되기에

   재사용하기보다는 삭제 후 재생성을 통해

   새로운 SEQUENCE를 사용하는 것이 좋습니다.

   

 

 

 

 

 

 

 

확인차 간단한 SEQUENCE 예제를 풀어봅시다.

 

 

 

 

 

SQL(VIEW) 예제


 

 

 

 

 

난이도 ★

 

 

 

예제 1

 

 

Q :     1. TB_STUDENT 테이블의 데이터를 사용하여 

              휴학중인 학생의 정보를 저장하기 위한 테이블을 생성한다.

              (테이블 이름은 STUDENT_ABSENCE_TABLE 로 한다.)

          2. 생성한 테이블은 학번, 학과코드, 이름, 담당교수 정보가 저장 될 수 있게한다.

          3. 생성한 테이블은 STD_ABC 이름의 동의어로도 사용할 수 있도록 만든다.

 

   

TB_STUDENT의 정보


 

 

 

 

풀이 :

 

 



CREATE TABLE STUDENT_ABSENCE_TABLE(
    id NUMBER NOT NULL,
    학번 VARCHAR2(10) NOT NULL,
    학과코드 VARCHAR2(10) NOT NULL,
    이름 VARCHAR2(50) NOT NULL,
    담당교수코드 VARCHAR2(10)
);
ALTER TABLE STUDENT_ABSENCE_TABLE ADD CONSTRAINT SAB_ID_PK PRIMARY KEY(ID);

INSERT INTO STUDENT_ABSENCE_TABLE(
    SELECT STU_ABSENCE_SEQ2.NEXTVAL AS ID,
           STUDENT_NO AS 학번,
           DEPARTMENT_NO AS 학과코드,
           STUDENT_NAME AS 이름,
           COACH_PROFESSOR_NO AS 담당교수코드
      FROM TB_STUDENT
     WHERE ABSENCE_YN='Y'
);

 

 

 


 

 

 

반응형