728x90
시퀀스
데이터 값 자동으로 증가
테이블 구조만 생성
CREATE TABLE dept_sequence
AS
SELECT * FROM dept
WHERE 1<>1;
CREATE SEQUENCE
CREATE SEQUENCE seq_dept_sequence
INCREMENT BY 10 -- 증가값
START WITH 10 -- 시작값
MAXVALUE 90 -- 최대값
MINVALUE 0 --최소값
NOCYCLE -- 순환 여부 \ CYCLE
CACHE 2; -- 시퀀스 미리 만들어 두는 수 \ NOCACHE
여기서 데이터 추가
이때 deptno 컬럼에는 'seq_dept_sequence.NEXTVAL' 시퀀스를 준다.
INSERT INTO dept_sequence (deptno,dname, loc)
VALUES(seq_dept_sequence.NEXTVAL, 'DATABASE','SEOUL');
INSERT INTO dept_sequence (deptno,dname, loc)
VALUES(seq_dept_sequence.NEXTVAL, 'DATABASE','SEOUL');
SELECT * FROM dept_sequence;
시퀀스 설정에 따라 deptno 가 증가한다.
ALTER SEQUENCE
시퀀스 수정
ALTER SEQUENCE seq_dept_sequence
INCREMENT BY 20
CYCLE;
INSERT INTO dept_sequence (deptno,dname, loc)
VALUES(seq_dept_sequence.NEXTVAL, 'DATABASE','SEOUL');
변경 후 20씩 증가하는 것을 볼 수 있다.
DROP SEQUENCE
시퀀스 삭제
DROP SEQUENCE seq_dept_sequence;
DROP TABLE dept_sequence; -- 테이블 삭제
제약 조건
데이터베이스에 제약 조건을 설정하여 무결성 유지
장점 : 통합 관리 가능, 간단한 선언으로 구현 가능, 변경 용이, 오류 데이터 발생 방지
단점 : 복잡한 제약 조건의 구현과 예외 처리가 불가능
제약 조건 생성
CREATE TABLE table_pk2(
login_id VARCHAR(20) CONSTRAINT table_pk2_pk PRIMARY KEY,
login_pwd VARCHAR2(20) NOT NULL,
tel VARCHAR(20)
);
login_id VARCHAR(20) CONSTRAINT table_pk2_pk PRIMARY KEY : 기본키 제약 조건
외래키 제약 조건 생성
-- 외래키 --
CREATE TABLE dept_pk(
deptno NUMBER(2) CONSTRAINT deptpk_deptno_pk PRIMARY KEY,
dname VARCHAR2(14),
loc VARCHAR(20)
);
CREATE TABLE emp_fk(
empno NUMBER(4) CONSTRAINT empfk_empno_pk PRIMARY KEY,
ename VARCHAR(20),
JOB VARCHAR(20),
deptno NUMBER(2) CONSTRAINT empfk_deptno_fk REFERENCES dept_pk(deptno)
);
deptno NUMBER(2) CONSTRAINT empfk_deptno_fk REFERENCES dept_pk(deptno)
참조하는 테이블(참조되는 키)
CREATE TABLE dept_const(
deptno NUMBER(2) CONSTRAINT deptconst_deptno_pk PRIMARY KEY,
dname VARCHAR2(14)CONSTRAINT deptconst_dname_unq UNIQUE,
loc VARCHAR2(13) CONSTRAINT deptconst_loc_nn NOT NULL
);
CREATE TABLE emp_const(
empno NUMBER(4) CONSTRAINT empconst_empno_pk PRIMARY KEY,
ename VARCHAR2(10) CONSTRAINT empconst_ename_nn NOT NULL,
JOB VARCHAR2(9),
tel VARCHAR2(20) CONSTRAINT empconst_tel_unq UNIQUE,
hiredate DATE,
sal NUMBER(7,2) CONSTRAINT empconst_sal_chk CHECK(sal BETWEEN 1000 AND 9999),
comm NUMBER(7,2),
deptno NUMBER(2) CONSTRAINT empconst_deptno_fk REFERENCES dept_const(deptno)
);
PRIMARY KEY : 기본키
UNIQUE : 유일한 값
NOT NULL : NULL 아님
CHECK(조건식) : 조건
REFERENCES : 외래키
댓글