반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

oracleDB.sequence(시퀀스) 본문

[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;








반응형

'[IT] > Oracle DB' 카테고리의 다른 글

SQL.Paging  (0) 2021.05.03
OracleDB.DATE  (0) 2021.04.20
oracleDB.Transaction(트랜잭션)  (0) 2021.03.26
oracleDB.insert into(row 삽입)  (0) 2021.03.24
oracleDB.create table(테이블 생성)  (0) 2021.03.24
Comments