DB 2023.3.30

문우림·2023년 3월 30일
0

DB

목록 보기
6/6
post-thumbnail

시퀀스(AUTO INCREAMENT)

  • 시퀀스란 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 객체.
  • PK값 중복을 방지하기위해 사용.

시퀀스

--시퀀스 생성
CREATE SEQUENCE SALPLE_SEQ;

--값(숫자타입)이 하나 씩 자동 증가
SELECT SALPLE_SEQ.NEXTVAL FROM DUAL;
--현재 값 확인
SELECT SALPLE_SEQ.CURRVAL FROM DUAL;

DROP TABLE EMP01;
CREATE TABLE EMP01(EMPNO NUMBER(4) PRIMARY KEY, ENAME VARCHAR(10), HIREDATE DATE);

SELECT * FROM EMP01;
INSERT INTO EMP01 VALUES(SALPLE_SEQ.NEXTVAL, 'JULIA', SYSDATE);

--시퀀스 삭제
DROP SEQUENCE SALPLE_SEQ;

NEXTVAL

📌NEXTVAL 및 CURRVAL을 사용할 수 있는 경우

  • 서브쿼리가 아닌 SELECT문

  • INSERT문의 SELECT절

  • INSERT문의 VALUE절

  • UPDATE문의 SET절

📌NEXTVAL 및 CURRVAL 을 사용할 수 없는 경우

  • VIEW의 SELECT절

  • DISTINCT 키워드가 있는 SELECT문

  • GROUP BY, HAVING, ORDER BY절이 있는 SELECT문

  • SELECT, DELETE, UPDATE의 서브쿼리

  • CREATE TABLE, ALTER TABLE 명령의 DEFAULT값

CURRVAL

  • 현재 시크린 정보(번호) 조회하기

컬럼에 제약조건 걸어서 테이블 만들기

--제약 조건 설정 테이블 생성
CREATE TABLE EMP06 ( --CONSTRAINT 제약조건 주는 키워드
    EMPNO NUMBER(4) CONSTRAINT EMP_6_EMPNO_PK PRIMARY KEY,
    ENAME VARCHAR2(10) CONSTRAINT EMP_06_ENAME_NN NOT NULL,
    JOB VARCHAR(9), DEPTNO NUMBER(2) CONSTRAINT EMP06_DEPTNO_FK REFERENCES DEPT(DEPTNO)
);

Primary Key(PK)

  • 테이블당 하나만 정의 가능.
  • NOT NULL + UNIQUE의 기능을 가지고 있다.

Foreign Key(FK)

  • FK가 정의된 테이블를 자식 테이블, PK가 있는 테이블를라고 한다.
  • 부모 테이블의 PK컬럼에 존재하는 데이터만 자식 테이블에 입력 가눙.
  1. 오라클 Sequence 란?

0개의 댓글