(오라클) 제약 조건
2021. 12. 22. 17:40ㆍ오라클(Oracle) 데이터 베이스
제약 조건 | 테이블의 특정 열에 지정-> 제약 조건에 부합하지 않으면 데이터를 저장항ㄹ 수 없다. 수정, 삭제도 영향을 받는다. ex)회원 가입 시 , 아이디, 이름 등은 중복이 안되고 생년월일 등은 빈값(null)로 처리할 수 있음 |
|
NOT NULL | 지정한 열에 빈값(null)을 허용하지 않음. 빈값(null)을 제외한 제이터의 중복은 허용함 | |
UNIQUE | 지정한 열이 유일한 값을 가져야 함. 중복될 수 없음 단, 빈값(null)값은 중복에서 제외됨 |
|
PRIMARY | 지정한 열이 유일한 값이면서 빈값(null)을 허용하지 않음 테이블에 하나만 지정 가능 |
|
FOREIGN KEY | 다른 테이블의 열을 참조하며 존재하는 값만 입력할 수 있음 | |
CHECK | 설정한 조건식을 만족하는 데이터만 입력 가능 |
*테이블 생성하기
NOT NULL: 테이블을 생성할 때 NOT NULL 설정하기
CREATE TABLE TABLE_NOTNULL(
LOGIN_ID VARCHAR2(20) NOT NULL,
LOGIN_PWD VARCHAR2(20) NOT NULL,
TEL VARCHAR2(20)
);
NOT NULL: 제약 조건 이름 직접 지정 (CONSTRAINT키워드)
CREATE TABLE TABLE_NOTNULL2(
LOGIN_ID VARCHAR2(20) CONSTRAINT TBLNN2_LGNID_NN NOT NULL,
LOGIN_PWD VARCHAR2(20) CONSTRAINT TBLNN2_LGNPD_NN NOT NULL,
TEL VARCHAR2(20)
);
UNIQUE: 테이블 생성할 때 UNIQUE 제약 조건 지정하기
CREATE TABLE TABLE_UNIQUE(
LOGIN_ID VARCHAR2(20) UNIQUE,
LOGIN_PWD VARCHAR2(20) NOT NULL,
TEL VARCHAR2(20)
);
UNIQUE: 테이블 생성할 때 UNIQUE 제약 조건 지정하기(CONSTRAINT키워드)
CREATE TABLE TABLE_UNIQUE2(
LOGIN_ID VARCHAR2(20) CONSTRAINT TBLUNQ2_LGNID_UNQ UNIQUE
LOGIN PWD VARCHAR2(20) CONSTRAINT TBLUNQ2-LGNPW_NN NOT NULL;
TEL VARCHAR2(20)
);
테이블을 생성할 때 PRIMARY설정
CREATE TABLE TABLE_PK(
LOGIN_ID VARCHAR2(20) PRIMARY KEY,
LOGIN_PWD VARCHAR2(20) NOT NULL,
TEL VARCHAR2(20)
);
PRIMARY: 테이블 생성할 때 PRIMARY 제약 조건 지정하기(CONSTRAINT키워드)
CREATE TABLE TABLE_PK2(
LOGIN_ID VARCHAR2(20) CONSTRAINT TBLPK2_LGNID_PK PRIMARY KEY,
LOGIN_PWD VARCHAR2(20) CONSTRAINT TBLPK2_LGNPW_NN NOT NULL,
TEL VARCHAR2(20)
);
*삽입하기
UNIQUE: TABLE_UNIQUE 테이블에 데이터 추가하기
INSERT INTO TABLE_UNIQUE(LOGIN_ID, LOGIN_PWD, TEL)
VALUES('TEST_ID_01', 'PWD01', '010-1234-5678');
INSERT INTO TABLE_UNIQUE (LOGIN_ID, LOGIN_PWD, TEL)
VALUES ('TEST_ID_02', 'PWD01', '010-1234-5678');
PRIMARY: 테이블에 데이터 추가하기
INSERT INTO TABLE_PK(LOGIN_ID,LOGIN_PWD, TEL)
VALUES ('EST_ID_01', 'PWD01', '010-1234-5678');
*제약 조건 추가하기
UNIQUE 제약 조건이 있는 테이블에 Tel까지 제약 조건 추가
ALTER TABLE TABLE_UNIQUE
MODIFY(TEL UNIQUE);
UNIQUE 제약 조건이 있는 테이블에 제약 조건 이름 지정하여 추가
ALTER TABLE TABLE_NOTNULL2
MODIFY(TEL CONSTRAINT TBLNN_TEL_NN NOT NULL);
'오라클(Oracle) 데이터 베이스' 카테고리의 다른 글
(오라클) DECODE, CASE-SQL문에서의 IF절 (2) | 2021.12.24 |
---|---|
(오라클) 트랜잭션, TLC, LOCK, 읽기 일관성 (3) | 2021.12.23 |
조인(Join): 여러 테이블을 하나의 테이블처럼/ 등가 조인/ 비등가 조인 (0) | 2021.12.11 |
단일행 서브 쿼리 (0) | 2021.12.10 |
오라클(Oracle) 조인 총정리: 나만 알아볼 수 있을 듯? (0) | 2021.12.08 |