DB

서브쿼리 이용하여 기본키+1 만들기 (시퀀스)

9400 2023. 1. 20. 10:20
insert into book(BOOK_ID, TITLE, CATEGORY, PRICE, INSERT_DATE, CONTENT)
values (1,'냠냠쿨쿨','동화',10000,sysdate,'어릴때읽은 동화책');

insert into book(BOOK_ID, TITLE, CATEGORY, PRICE, INSERT_DATE, CONTENT)
values (2,'혼자공부하는자바','교육서',10000,sysdate,'초반에 읽었던 혼공자');

insert into book(BOOK_ID, TITLE, CATEGORY, PRICE, INSERT_DATE, CONTENT)
values ( (SELECT NVL(MAX(BOOK_ID),0)+1 FROM BOOK),'사람을무엇으로사는가','철학',20000,sysdate,'철학이무엇인가알수있는철학책');

--*
SELECT * FROM BOOK;

--시퀀스에는 OR REPLACE가 없음
CREATE SEQUENCE SEQ_BOOK
START WITH 1 
INCREMENT BY 1;

--현재 시퀀스
SELECT SEQ_BOOK.CURRVAL FROM DUAL;
--다음 시퀀스
SELECT SEQ_BOOK.NEXTVAL FROM DUAL;

--서브쿼리 : 메인 SQL안에 사용된 또 다른 쿼리
--1) SCALAR : SELECT
--2) NESTED : WHERE
--3) INLINE VIEW : FROM 
-- 괄호로 묶여야함 
--널이 있으면 널봐라 
SELECT NVL(MAX(BOOK_ID),0)+1 FROM BOOK;
--집계함수 
--SUM,AVG,MAX,MIN,COUNT