REDO, UNDO

  • REDO

    • 로그. 모든 변경사항을 기록함

    • 데이터 복구 등에 사용됨

-- 한 줄 출력하기
SELECT * FROM payments WHERE ROWNUM=1;

-- 테이블 컬럼 보기
SELECT atc.COLUMN_NAME, atc.DATA_TYPE, atc.DATA_LENGTH, atc.NULLABLE
FROM ALL_TAB_COLS atc
WHERE ALL_TAB_COLS='payments';

-- 인덱스 조회
select *
from ALL_IND_COLUMNS
where TABLE_NAME='payments';

-- 버전 조회
select * from v$version;

SEQUENCE

create_sequence.gif

SELECT * FROM USER_SEQUENCES;

CREATE SEQUENCE seq_pay (1)
  START WITH 1 (2)
  INCREMENT BY 1 (3)
  MAXVALUE 10000 (4)
  MINVALUE 0 (5)
  CYCLE (6)
  NOCACHE; (7)
  1. 시퀀스 이름(seq_pay)을 제외한 나머지 값은 optional

  2. 시작 번호

  3. 증가값

  4. 최댓값

  5. 최솟값

  6. 시퀀스가 최대 값이 되었을때 다시 시작값으로 돌아갈 것인지에 대한 설정, CYCLE or NOCYCLE

    (순환여부를 설정할경우는 보통 시퀀스랑 현재날짜를조합해서 테이블에 데이터를 집어넣는 경우도 많이 있습니다.)

  7. 시퀀스 값을 메모리에 할당할 것인지에 대한 설정, 원하는 값만큼 미리 만들어 Shared Pool의 Library Cache에 상주 시킴. CACHE [n] or NOCACHE

제약조건, CONSTRAINT

  • 테이블이나 속성에 부적절한 데이터가 들어오는 것을 사전에 차단하기 위해 설정하는 조건.

  • NOT NULL, UNIQUE, CHECK, PRIMARY KEY, FOREIGN KEY, DEFAULT

CHECK

-- Add on CREATE TABLE
CREATE TABLE <table_name> (
  age int,
  CONSTRAINT age_limit CHECK (age>=18)
)

-- Add on ALTER TABLE
ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> CHECK <conditions>

-- Delete
ALTER TABLE <table_name> DROP CONSTRAINT <Constraint_name>
json type
CREATE TABLE member (
  id VARCHAR2(10) NOT NULL PRIMARY KEY,
  name VARCHAR2(10),
  detail_json VARCHAR2(4000)
  CONSTRAINT ensure_json CHECK (detail_json IS JSON)
);

-- or
ALTER TABLE member ADD CONSTRAINT ensure_json CHECK (detail_json IS JSON);