국비지원학원/database_Oracle

7일차

초코맛 2018. 10. 29. 21:29
반응형

https://www.evernote.com/shard/s401/nl/152133992/3dd2986b-8306-441a-9a02-9f160f6cff96?title=10.29

수업중 필기.

 


1.제약사항(Constraint)

      : 테이블에 필요한 값만 넣기위해 설정, 제약사항명은 유일해야한다.

 

-primary key

 

*column level constriant : 컬럼설정 바로뒤에 제약사항을 설정하는것

create table 테이블명(

컬럼명 데이터형(크기) constraint 제약사항명 제약사항종류,

~

);

*table level constraint : 테이블 생성시 컬럼을 모두 정의한후 설정하는 것

create table 테이블명(

컬럼명 데이터형(크기),

~,

constraint 제약사항명 제약사항종류(컬럼명,,,),

conatraint 다음제약사항명~~~,

);

 

: 컬럼값에 null을 허용하지 않으면서(모두 값을 가지면서) 유일하게 관리해야 할때 사용. 만족하지 않으면 Error난다.

-order by나 rank함수 없이도 조회시 PK기준정렬한다.

-다른테이블(자식테이블)이 foreign key로 참조할수 있고, 컬럼 하나또는 하나이상일수 있다.

-여러칼럼으로 pk구성시 모든컬럼에 동일값이 들어가는 경우에만 Error난다.

-user constrains 테이블에서 조회할수 있는데 select * from user_constraints; 로 조회가능하다.

-sys~로 된 명은 시스템이 알아서 준것으로 지정하지 않았을때 이렇게 저장된다. 구분하기 쉽지않아 제약사항명을 정해주는것을 권장한다.

-조회시에 status가 enabled로 비활성화 되어있으면 제약사항에 위배되어도 저장할수있다.

-단, 다시 활성화시에 문제가 발생하는 데이터를 수정하거나 지워야할수있다.

-테이블을 지울때 제약사항명도 휴지통으로 이동되며, 휴지통을 비워야 완벽히 사라진다.

-최초레코드삽입시,성공하게 되어있고

-같은필드값이 들어갈경우, 문자열에 null이 입력되는경우('' or 컬럼생략insert) Error

-여러개의 칼럼이 pk로 구성되는경우 테이블단위 제약사항으로 설정가능하다. 여러개 모두 중복값을 가질때, 하나라도 null추가시 Error

 

 

-foreign key

 

*column level constriant : 컬럼설정 바로뒤에 제약사항을 설정하는것

create table 테이블명(

컬럼명 데이터형(크기) constraint 제약사항명 제약사항종류 references 부모테이블명(컬럼명),

~

);

*table level constraint : 테이블 생성시 컬럼을 모두 정의한후 설정하는 것

create table 테이블명(

컬럼명 데이터형(크기),

~,

constraint 제약사항명 제약사항종류(컬럼명,,,),

conatraint 다음제약사항명~~~,

);

 

 

: 다른테이블의 PK컬럼값과 동일한 값으로만 추가할때 설정. 테이블간의 관계를 형성시키고 참조키를 가진테이블은 자식테이블, 참조하는 테이블은 부모테이블이다. 이 관계를 도식화해놓은 것을 ERD라고 한다.

-중복값 허용, null허용 , 대신에 값이 들어온다면 부모테이블과 같은 값만 받을 수 있다.

-하나의테이블에 여러개 설정이 가능하며, 부모테이블에서 자식레코드가 발견돼면 삭제할수 없다.

-(on delete cascade옵션을 설정하면 부모레코드 삭제시 모든 자식레코드 함께 삭제

-자식테이블의 컬럼명은 부모테이블의 컬럼명과 같을 필요는 없으나 데이터형과 크기는 동일하게 설정.

-예제보는중

 

 

 

-unique

-check

-not null

-(제약사항은 아니지만) default

2.Alter (다양한것을 바꾸어준다)

-alter의 여러쓰임

 

반응형

'국비지원학원 > database_Oracle' 카테고리의 다른 글

9일차  (0) 2018.10.31
8일차  (0) 2018.10.31
첫째주 정리  (0) 2018.10.28
6일차  (0) 2018.10.27
5일차  (0) 2018.10.25