일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 네이버뉴스
- jsp 파일 설정
- Python
- Gmarket
- 파이썬
- mysql
- 지마켓
- Topics
- 토픽추출
- 코사인 유사도
- 게시판 만들기
- 과학백과사전
- word2vec
- test
- spring MVC(모델2)방식
- oracle
- db
- lda
- 크롤링
- 방식으로 텍스트
- java
- (깃)git bash
- 이력서
- 幼稚园杀手(유치원킬러)
- 자바
- Websocket
- r
- RESFUL
- pytorch
- tomoto
- Today
- Total
무회blog
DB:200526-DB 제약조건 관련: 데이터를 추가, 삭제, 수정하는 가운데 db의 무결성을 유지 본문
제약조건 관련
데이터를 추가, 삭제, 수정하는 가운데 db의 무결성을 유지
데이터를 추가, 삭제, 수정하는 가운데 db의 무결성을 유지
CREATE TABLE EMP01 (
EMPNO NUMBER,
ENAME VARCHAR2(20),
job VARCHAR2(20),
deptno NUMBER
)
CREATE TABLE EMP01 (EMPNO NUMBER,ENAME VARCHAR2(20),job VARCHAR2(20),deptno NUMBER)
INSERT INTO EMP01 VALUES(NULL, NULL, 'IT', 30); <- 잘못된것이지만 들어가는 데이터 , 그래서 제약 조건을 사용
CREATE TABLE EMP01 (
EMPNO NUMBER,
ENAME VARCHAR2(20),
job VARCHAR2(20),
deptno NUMBER
);
--INSERT INTO EMP01 VALUES(NULL, NULL, 'IT', 30);
CREATE TABLE EMP01 (EMPNO NUMBER,ENAME VARCHAR2(20),job VARCHAR2(20),deptno NUMBER);--INSERT INTO EMP01 VALUES(NULL, NULL, 'IT', 30);
CREATE TABLE EMP02 (
EMPNO NUMBER NOT NULL,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER
);
CREATE TABLE EMP02 (EMPNO NUMBER NOT NULL,ENAME VARCHAR2(20) NOT NULL,job VARCHAR2(20),deptno NUMBER);
--INSERT INTO EMP02 VALUES(NULL, NULL, 'IT', 30);
INSERT INTO EMP02 VALUES(100, 'Kim', 'IT', 30);
INSERT INTO EMP02 VALUES(100, 'Park', 'IT', 30);
CREATE TABLE EMP03 (
EMPNO NUMBER UNIQUE,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER
);
INSERT INTO EMP03 VALUES(100, 'Kim', 'IT', 30);
INSERT INTO EMP03 VALUES(100, 'Park', 'IT', 30)
INSERT INTO EMP03 VALUES(100, 'Park', 'IT', 30)
* PRIMARY KEY 제약조건
-> UNIQUE + NOT NULL
CREATE TABLE EMP04 (
EMPNO NUMBER PRIMARY KEY,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER
);
CREATE TABLE EMP04 (EMPNO NUMBER PRIMARY KEY,ENAME VARCHAR2(20) NOT NULL,job VARCHAR2(20),deptno NUMBER);
INSERT INTO EMP04 VALUES(100, 'Kim', 'IT', 30);
INSERT INTO EMP04 VALUES(100, 'Park', 'IT', 30);
INSERT INTO EMP03 VALUES(100, 'Park', 'IT', 30000)
* FOREIGN KEY <- 외부값을 참조 함
CREATE TABLE EMP05 (
EMPNO NUMBER PRIMARY KEY,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER REFERENCES departments(department_id)
);
INSERT INTO EMP05 VALUES(100, 'Kim', 'IT', 30000);
컬럼레벨 방식 <- 컬럽 옆에 제약조건을 넣는 식
* 테이블 레벨 방식 -> 제약조건 이름을 명시
CREATE TABLE EMP06(
EMPNO NUMBER PRIMARY KEY,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER,
constraint emp06_empno_pk PRIMARY KEY(empno),
constraint emp06_deptno_fk FOREIGN KEY(deptno)
REFERENCES departments(department_id)
);
CREATE TABLE EMP06(EMPNO NUMBER PRIMARY KEY,ENAME VARCHAR2(20) NOT NULL,job VARCHAR2(20),deptno NUMBER,constraint emp06_empno_pk PRIMARY KEY(empno),constraint emp06_deptno_fk FOREIGN KEY(deptno)REFERENCES departments(department_id));
INSERT INTO EMP05 VALUES(100, 'Kim', 'IT', 30000);
* 테이블 수정 방식
DROP TABLE EMP07;
CREATE TABLE EMP07(
EMPNO NUMBER ,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER
);
ALTER TABLE emp07
ADD CONSTRAINT emp07_empno_fk
FOREIGN KEY(deptno)
REFERENCES departments(department_id);
ALTER TABLE EMP07
ADD CONSTRAINT emp07_empno_pk
PRIMARY KEY(empno);
-
CHECK 제약조건(의도된 데이터만 입력 받기 위해)
CREATE TABLE EMP08(
EMPNO NUMBER ,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER,
gender char(1) CHECK(gender IN('M', 'F'))
);
CREATE TABLE EMP08(EMPNO NUMBER ,ENAME VARCHAR2(20) NOT NULL,job VARCHAR2(20),deptno NUMBER,gender char(1) CHECK(gender IN('M', 'F')));
INSERT INTO EMP08 VALUES(100, 'Kim', 'IT', 30, 'A');
-
DEFAULT 제약조건 <- 접근제어자
CREATE TABLE EMP09(
EMPNO NUMBER ,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER,
loc VARCHAR2(20) DEFAULT 'Seoul'
);
INSERT INTO EMP09 (empno, ename, job, deptno)
VALUES(100, 'Kim', 'IT', 30);
-
2개이상 주식별자 설정 시 <- 2 컬럼 모두 동일해야 제약조건 실행됨
CREATE TABLE EMP10(
EMPNO NUMBER ,
ENAME VARCHAR2(20) NOT NULL,
job VARCHAR2(20),
deptno NUMBER
);
ALTER TABLE EMP10
ADD CONSTRAINT emp10_empno_pk
PRIMARY KEY(empno, ename);
-
제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
alter table member
drop CONSTRAINT member_membercl_pk;
'DB' 카테고리의 다른 글
python:파이썬 DB 오라클 인서트, 조회 , 연결과련 (0) | 2020.09.01 |
---|---|
pom.xml, mysql, sqlyog (0) | 2020.08.21 |
python:200526-pyDB_ver001.01, insert 단건, 다건 , oracle 기준 (0) | 2020.05.26 |
200526-제약관련 문제 풀어보기 (0) | 2020.05.26 |
DB:DB-001, oracle,오라클 다운로드, 및 id/pw 설정 및 권한 주기 (3) | 2020.05.25 |