[시퀸스]
기존에는 PK컬럼을 추가할 때
NVL 로직을 활용하여 작성하였다.
하지만 이제 시퀸스를 활용하면
자동으로 PK값을 +1하여 추가할 수 있다.
▼ INSERT 쿼리문
--기존 사용 쿼리문
INSERT INTO BOARD(BID,TITLE,CONTENT,MID)
VALUES((SELECT NVL(MAX(BID),100) FROM BOARD)+1,'제목','내용','teemo');
--시퀸스 사용 시 쿼리문
INSERT INTO TBL_PRODUCT(PID,CATEGORY,PRODUCT_NAME,PRICE,EA,CONTENT)
VALUES(SEQ_PRODUCT_PK.NEXTVAL,'마우스','지슈라',100000,999,'상품상세내용');
시퀸스는 서브쿼리이므로 사용하려면
시퀸스 테이블을 먼저 만들어주자.
▼ 시퀸스 DDL 쿼리문
--서브쿼리
--시퀸스 생성으로 PK 자동증가 가능
CREATE SEQUENCE SEQ_PRODUCT_PK --테이블명
START WITH 101 --시작값 지정
INCREMENT BY 1; --1씩 증가
DROP SEQUENCE SEQ_PRODUCT_PK;
시퀸스는 서브쿼리 테이블이므로
사용하려면 DDL문 실행(CREATE) 및
종료(DROP)을 해야한다.
[최대 출력 제한]
SELECT 쿼리문을 사용할 때
출력 갯수를 지정해주지 않으면
해당하는 모든 데이터가 출력되게 된다.
이럴 경우 출력되는 데이터의 갯수를 설정하여
제한시킬 수 있는데 아래와 같이 사용한다.
▼ ROWNUM 쿼리문 (최대 출력 제한)
--적용할 쿼리문
--ROWNUM 뒤에 제한하고 싶은 숫자를 쓴다.
SELECT *
FROM (
SELECT *
FROM TBL_PRODUCT
ORDER BY PID DESC
)
WHERE ROWNUM <= 5; --5개까지만 출력
--적용하여 사용해본 쿼리문 (20개 제한)
SELECT * FROM
(SELECT PID, CATEGORY, PRODUCT_NAME, PRICE, EA, CONTENT
FROM TBL_PRODUCT WHERE CATEGORY = '마우스' ORDER BY PID DESC)
WHERE ROWNUM <= 20;
사용 시 유의사항으로 수행되어야 할 조건이
반드시 ()안에 먼저 들어가야 한다.
아래 쿼리를 살펴보자.
--잘못된 예
SELECT PID, CATEGORY, PRODUCT_NAME, PRICE, EA, CONTENT
FROM TBL_PRODUCT WHERE CATEGORY = '마우스'
ORDER BY PID DESC
WHERE ROWNUM <= 20;
문법이 잘못되진 않았으나 쿼리의 의미가 달라진다.
원래의 의미는 '가장 최신순 상품 20개' 인데
위와 같이 사용하게 되면 최신순 정렬이 되기 전에
'테이블에 추가된 20개' 의 상품을 불러오게 된다.
그래서 반드시 ORDER BY(정렬)이 진행되고 나서
해당 쿼리가 사용되도록 서브쿼리로 감싸주자.
'개주 훈련일지 > 🏋️ 전집중 호흡 훈련' 카테고리의 다른 글
| Parameter 와 Attribute 비교 (0) | 2025.11.18 |
|---|---|
| 버튼 클릭 시 이동하기&뒤로가기 (0) | 2025.11.16 |
| 정규식 (0) | 2025.11.07 |
| JDBC) CRUD 메서드 정석 코드 (0) | 2025.11.03 |
| hasType - 어떠한 배열에 어떠한 타입이 있니 (0) | 2025.10.28 |