[IT]/Oracle DB
oracleDB.sequence(시퀀스)
givemebro
2021. 3. 25. 19:41
반응형
/*
오라클 시퀀스(sequence)
: 순차적으로 증가, 유일한 값을 생성하기 위한 객체
주로 primary key ( unique + not null ) 를 생성하기 위해 사용
테이블과는 독립적 구조
CREATE SEQUENCE 시퀀스명
[START WITH 시작번호]
[INCREMENT BY 증가값]
[MAXVALUE 최대값]
[MINVALUE 최소값]
[ CYCLE or NOCYCLE ]
[ NOCACHE ]
Oracle dual table
: 오라클에서 제공하는 기본 테이블
컬럼 하나만 존재 , 주로 시퀀스 또는 날짜함수, 산술연산에 사용
sys Admin 계정에서 관리하고 수정 및 삭제 등 조작은 불가
*/
-- 시퀀스 생성
CREATE SEQUENCE test_seq;
-- dual table
SELECT * FROM dual;
-- dual table 이용해 생성한 시퀀스 값을 확인한다
-- 시퀀스명.nextval -> 다음 시퀀스 값을 가져온다
SELECT test_seq.nextval FROM dual;
-- 시퀀스 삭제
DROP SEQUENCE test_seq;
CREATE SEQUENCE test_seq START WITH 7;
CREATE TABLE car(
car_no NUMBER PRIMARY KEY,
model VARCHAR2(100) NOT NULL
)
-- car_no 를 시퀀스로 등록한다
-- car_seq 라는 이름으로 시퀀스를 생성한다
CREATE SEQUENCE car_seq;
-- 시퀀스명.nextval -> 다음 시퀀스 값을 가져온다
-- 시퀀스명.currval -> 시퀀스 현재값을 가져온다
-- 시퀀스의 현재값 currval 은 nextval 한 컨넥션 내에서만 실행가능하다
-- 하나의 session(연결시작에서 연결종료까지의 기간)내에서만 currval 이 사용가능
SELECT car_seq.nextval FROM dual;
SELECT car_seq.currval FROM dual;
INSERT INTO car(car_no,model) VALUES(car_seq.nextval,'테슬라');
SELECT * FROM car;
-- guestbook table 생성
CREATE TABLE guestbook(
guestbook_no NUMBER PRIMARY KEY,
title VARCHAR2(100) NOT NULL,
content VARCHAR2(1000) NOT NULL
)
-- guestbook_seq 시퀀스 생성
CREATE SEQUENCE guestbook_seq;
SELECT * FROM guestbook;
반응형