일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 디자인 패턴
- MVC
- MST
- db
- 자바
- JPA
- 오라클
- 클라우드
- 쿼리
- Jenkins
- 데이터베이스
- Spring Cloud
- 자료구조
- SQL
- 운영체제
- Spring
- 알고리즘
- Intellj
- DP
- retry
- 페이징
- aws
- Kafka
- 코딩
- Spring Boot
- feign
- Spring Cloud Feign
- PL/SQL
- 백준
- golang
- Today
- Total
justgo_developer
무결성 제약조건 본문
무결성 제약조건
* 컬럼속성(무결성 제약조건)
not null : 널값이 입력되지 못하게하는 조건
unique : 중복된 값이 입력되지 못하게 하는 조건
primary key : not unll + unique의 의미
foreign key(외래키) : 다른 테이블의 필드(컬럼)를 참조해서 무결성을 검사하는 조건
check : 주어진값만 허용하는 조건
create table null_test(
col1 varchar2(20) not null,
col2 varchar2(20) null,
col3 varchar2(20)
);
insert into null_test(col1, col2)
values ('aa', 'bb');
select * from null_test;
insert into null_test(col2, col3)
values ( 'cc', 'dd' );
create table unique_test(
col1 varchar2(20) unique not null,
col2 varchar2(20) unique,
col3 varchar2(20) not null,
col4 varchar2(20) not null,
constraints temp_unique unique(col3, col4) //col3, col4를 조합을했을때 유니크 해야한다. temp_unique 제약조건 이름
);
insert into unique_test(col1, col2, col3, col4)
values ( 'aa', 'bb', 'cc' , 'dd');
insert into unique_test(col1, col2, col3, col4)
values ( 'a2', 'b2', 'c2' , 'd2');
select * from unique_test;
update unique_test
set col1 = 'aa'
where col2 = 'b2';
->무결성 제약조건 위배
insert into unique_test ( col1, col2, col3, col4)
values('a3', '', 'c3', 'd3');
insert into unique_test ( col1, col2, col3, col4)
values('a4', '', 'c4', 'd4');
/*기본키(primary key) 테이블 생성시 기본키 생성*/
create table primary_test(
student_id number(10) primary key, /*인라인 방식*/
name varchar2(20)
);
create table primary_test(
student_id number(10),
name varchar2(20),
constraints student_pk primary key(student_id) /* 아웃라인 방식 */
);
/* 테이블을 생성하고 나서 이후에 기본키를 생성하는 방법 */
create table primary_test(
student_id number(10),
name varchar2(20),
);
alter table primary_test
add constraints "기본키 이름" primary key (필드명) ;
/* 외래키 */
create table foreign_key (
department_id constraints dept_fk
reference departments (department_id) ; /*인라인 방식*/
);
create table foreign_key (
department_id,
constraints dept_fk
foreign key (department_id)
reference departments(department_id) /*아웃라인 방식*/
);
/*테이블을 생성하고 나서 외래키를 지정하는 방법 */
alter table foreign_key
add constraints dept_fk foreign key (department_id)
references departments (department_id);
/*check 제약조건*/
create table check_test(
gender varchar2(10) not null
constraints check_sex check (gender in('M','F'))
);
insert into check_test values('남자'); ->체크 제약조건(SYSTEM.CHECK_SEX)이 위배되었습니다
insert into check_test values('M');
'IT > Oracle' 카테고리의 다른 글
PL/SQL (0) | 2018.11.18 |
---|---|
계층형쿼리 (0) | 2018.11.18 |
DML(Data Manipulation Language) : select문, delete문, insert문, update문 (0) | 2018.10.21 |
DDL(Data Definition Language) : Create문, Drop문, Alter문, Truncate문 (0) | 2018.10.14 |
서브쿼리, any, all (0) | 2018.10.13 |