반응형
목차
DEFALUT VALUE로 sequence의 next value 지정 가능
12c 이전의 오라클에서는 자동 증가값을 설정하기 위해 시퀀스를 생성 한 후 테이블을 만들 때부터 생성한 시퀀스의 값을 설정할 수 있음
-- ex) 12c에서는 아래처럼 시퀀스를 생성 후
CREATE SEQUENCE t_seq
start with 1
increment by 1
maxvalue 10
nocycle
;
-- 테이블을 만들 때 시퀀스의 next value 지정이 가능함
CREATE TALBE test
( no NUMBER DEFAULT t_seq.nextval PRIMARY KEY,
name varchar2(10)
);
invisible columne 사용 가능
11g까지는 테이블에 invisible columne이 생성되지 않았지만 12c부터는 생성 가능함
invisible된 컬럼은 안보이지만 제약조건도 적용됨
순위 뽑을 때 Top-N 기능 사용 가능
11g까지는 인라인뷰를 사용하거나 rownum등을 사용해서 비교적 복잡한(?) 방법을 사용했었지만 12c부터는 편하게 Top-N으로 가능해 졌음
(11g 사용중이라 테스트는 못 해 봤음)
IDENTITY Column 지원
기존의 ANSI SQL에서는 테이블에서 primary key와 같은 기능을 사용하기 위해 자동증가되는 identity columne을 지원했으나 오라클은 없었음
그래서 시퀀스 등을 이용해서 수동으로 설정 했었는데 12c부터 오라클에서도 이 기능을 지원하게 되었음
mysql의 auto-increment와 비슷한 기능으로 이해 됨
-- 문법은 아래와 같음
CREATE TABLE t_iden
( no NUMBER GENERATED AS IDENTITY, -- 이 부분이 자동증가
name varchar2(10)
);
Null 값 위한 DEFAULT 값 지정 가능
12c에서는 null이 입력될 경우 null 대신 입력될 값을 default로 지정하는 기능이 추가 됨
-- 문법은 아래와 같음
CREATE TABLE d_test100
( no NUMBER,
name varchar2(10),
sal NUMBER DEFAULT on null 100 -- null일 경우 100을 입력
);
출처 : 오라클 SQL과 PL/SQL 책
반응형
'IT > DBMS' 카테고리의 다른 글
[SQL] update에서 case when절 사용 (0) | 2023.03.04 |
---|---|
[Oracle]ORACLE 계층형 쿼리 (0) | 2022.11.29 |
[MySQL/MariaDB] Update join... (0) | 2022.11.29 |
[Oracle] Oracle 시퀀스 생성 쿼리 (0) | 2022.11.29 |
[Oracle] Oracle SELECT한 값으로 UPDATE하기 (0) | 2022.11.29 |