[제약조건]
- 데이터 무결성을 위해 강제성을 테이블의 칼럼에 부여
- 자료의 무결성을 테이블 설계에서 강제하여 지킴으로서
보다 효율적으로 데이터관리의 중요한 역할을 함.(강제성)
1. primary key 기본키
- 테이블의 내용에서 각각의 레코드(인스턴스)를 대표하는
유일한 컬럼은 반드시 존재해야 됨.
why? 해당 레코드만 딱 꼬집어서 수정, 삭제, 조회하기 위해
즉 where절에 걸릴수 있는 대표적인 컬럼을 미리 강제한다.
- primary key는 테이블당 1개씩 반드시 존재해야 한다.
- primary key는 null값을 넣을수 없다.
- 유일성 보장, not null 속성을 포함
2. not null
- null값(빈값)을 허용하지 않겠다.
(해당컬럼에 무조건 데이터 입력해라)
예)아이디,주민번호,패스워드,취미(x)
3. default 제약조건
- 사용자가 값을 안넣으면 해당컬럼이 정의한 기본값을
자동으로 넣어준다.
4. unique
- 중복된 컬럼내용을 허용하지 않는다
- 유일성 보장
- 단 1회 null 값 허용
- 테이블당 여러 칼럼 가능
예) jumin varchar2(13) unique
5. check
- 데이터의 범위를 제한시키는 제약조건)
예) marry varchar2(10) check(marry in ('기혼','미혼'))
kor number(3) check(kor between 0 and 100) --0~100
6. 참조무결성 Foreign Key 제약조건
- 부모:Primary Key---자식:Foreign Key
- 부모테이블의 PK를 참조하는 자식테이블의 해당 칼럼
이때 자식테이블의 FK는 부모테이블의 PK와 자료형이 일치되야 한다.
---------------------------------------------------학생테이블
create table tb_student(
hakno char(5) not null
,uname varchar(10) not null
,address varchar(20) not null
,phone varchar(20)
,regdt date default sysdate
,primary key(hakno)
)
---------------------------------------------------과목테이블
create table tb_gwamok(
gcode char(4) not null
,gname varchar(10) not null
,ghakjum number(2) default 1
,regdt date default sysdate
,primary key(gcode)
)
---------------------------------------------------수강테이블
create table tb_sugang(
sno number(3) not null
,hakno char(5) not null
,gcode char(4) not null
,primary key(sno)
)
---------------------------------------------------시퀀스 생성
자동으로 일련번호를 부여
create sequence 시퀀스이름
start with 1 --시작값
increment by 1 --증가값
nocycle --반복안함
nocache --캐시 사용안함 cache 2
create sequence sugang_seq
start with 1
increment by 1
nocycle
nocache
insert into tb_sugang(sno,hakno,gcode)
values (sugang_seq.nextval,'g1001','p001')
위의 insert명령어를 3번정도 반복한 후 레코드 조회
'..열심히 공부하세.. > 오라클' 카테고리의 다른 글
[My-SQL 서버 설치 및 환경 구축] (0) | 2012.05.11 |
---|---|
[07] 오라클 조인 (0) | 2012.05.11 |
[05] 오라클 함수 (0) | 2012.05.10 |
[04] where조건절 (0) | 2012.05.10 |
[03] 오라클 자료형 (0) | 2012.05.08 |