Oracle

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);