Oracle DB script, 제약조건

강정우·2022년 7월 11일
0

DB

목록 보기
23/30
post-thumbnail

제약조건

  • 무결성을 지키기 위해 제약을 주는 조건
  • 각 column의 특성을 고려하여 부여
  • 1개의 column에 다수의 제약조건을 주는것도 가능 예를 들어 주민등록번호는 pk가 될 순 없지만 not null과 unique라는 2가지 성질을 갖고 있음.
  • 제약조건은 column 단위로 부여한다.
  • 제약조건은 99.999% table을 만들때 부여한다.
  • table이 생성된 후에 부여할 수 있지만 이는 data의 무결성에 위배됨으로 안 좋다.
  • 제약조건의 생성자는 반드시 이름을 붙여줘야한다. not null제외
  • 제약조건의 생성자는 반드시 Unique한 이름을 갖고있어야 한다.

1. NOT NULL(nn)

  • 반드시 값이 있어야 한다.
  • 반드시 column level에 선언

2. UNIQUE(uk)

  • 중복 허용을 하지 않겠다. 하지만! null은 가능하다. 즉, 값에만 중복을 허용하지 않겠다는 뜻.
  • column level, table level 둘다 선언가능

3. PRIMARY KEY(pk)

  • nn+uk의 구성으로 column중 대표 column에 설치한다.
  • 복합PK 특수한 경우 여러개의 column에 1개의 pk를 지정할 수있다.
  • column level, table level 둘다 선언가능

4. FOREIGN KEY(fk)

  • 다른 table의 data를 참조하겠다는 뜻
  • column level, table level 둘다 선언가능
  • 참조대상 column에 반드시 PK올 UK가 설치되어있어야 한다. 또한 참조 column과 대상 datatype의 길이가 같아야한다.
  • column이름은 달라도 상관이 없으나 대부분 같다.
  • on delete cascade : 부모 table의 행이 삭제되면 자식 table의 행도 삭제함과 동시에 부모 table과 자식 table의 관계를 끊음.
  • on update cascade : 참조 table의 data값이 바뀌면 자식 table의 data값도 바꾸겠다.
  • on delete set null : 종속 외래 키 값을 null로 변환한다. 즉, 참조값을 null로 바꿈.

5. CHECK(ck)

  • 사용자 정의조건으로 ex) salary > 0 월급이 반드시 0 이상이어야 한다. 이런 뜻임.
  • column level, table level 둘다 선언가능

6. 스크립트

  • save.이름.sql : 스크립트를 생성한다.
  • @이름.sql : 스크립트를 실행한다.
  • 여러반복되는 문장들을 쉽게 작성할 수 있고 여러 문장을 넣어놨다가 꺼내서 쓸수도 있는 편리함을 가졌음.
  • 스크립트 경로 : C:\oraclexe\app\oracle\product\11.2.0\server\bin
profile
智(지)! 德(덕)! 體(체)!

0개의 댓글