Articles

정의 제약 조건에서성 테이블에서 Oracle12c

사용할 수 있습니다 테이블 만들기 문을 적용하는 여러 가지 종류의 제약 조건에서 테이블:후보 키,차 키,외국 키를 확인하는 조건. 제약 조건 절은 테이블의 단일 열 또는 열 그룹을 제한 할 수 있습니다. 이러한 제약의 요점은 오라클이 데이터베이스의 무결성을 유지하는 데있어 대부분의 작업을 수행하도록하는 것입니다. 더 많은 제약 조건에 추가하는 테이블의 정의,적은 작업을 할 수 있는 응용 프로그램을 유지하는 데이터입니다. 반면에 테이블에 제약 조건이 많을수록 데이터를 업데이트하는 데 더 오래 걸립니다.

제약 조건을 지정할 수 있습 중 하나에서 두 가지 방법의 일부분으로 열화질(로 알려져 있는 열약)나의 끝에서 만들 테이블이 문(로 알려져 있는 테이블 제약 조건). 여러 열을 제한하는 절은 테이블 제약 조건이어야합니다.

후보 키

후보 키 조합의 하나 이상의 열의 값을 고유하게 식별 각각의 행에는 테이블. 다음 목록은 트러블 테이블에 대한 고유 제약 조건의 생성을 보여줍니다:

이 테이블의 키는 CITY 와 SAMPLE_DATE 의 조합입니다. 두 열이 모두 NULL 이 아닌 것으로 선언되었음을 알 수 있습니다. 이 기능을 사용하려면 행을 삽입하기 위해 특정 열의 값을 지정해야 합니다. 분명히 온도와 강수량 정보는 수집 된 장소 또는시기를 알지 못하면 유용하지 않습니다. 이 기술은 일반적인 열에 있는 테이블의 기본 키가 있지만,그것은 또한 유용한 경우 특정 열을 위한 중요 데이터 행 것을 의미가 있습니다. NULL 이 지정되지 않은 경우 열에 NULL 값을 가질 수 있습니다.

고유 제약 조건을 만들 때 Oracle 은 고유 인덱스를 만들어 값의 고유성을 적용합니다. 기본 키 제약 조건 내에서 각 행에 대한 기본 키의 열 중 적어도 하나는 NULL 이 아니어야합니다.

기본 키

의 기본 키 테이블을 한 후보의 열쇠를 줄 수 있다는 몇 가지 특별한 특성이 있습니다. 기본 키를 하나만 가질 수 있으며 기본 키 열에는 Null 이 포함될 수 없습니다.

다음과 같은 테이블 만들기 문이 동일한 효과로 이전할 수 있다는 점을 제외하고 몇 가지 독특한 제약 조건이지만 하나 기본 키의 제약 조건:

단일 열 차이나 후보 키를 정의할 수 있습니다 키를 열에 열 제약 조건을 대신 테이블의 제약 조건:

이 경우에는 author_name 은 열의 기본 키가 있고 오라클을 생성할 이름을 기본 키의 제약 조건이 있습니다. “명명 제약 조건 뒷부분에서 설명한 것처럼 키에 대한 일반적인 명명 표준을 적용하려는 경우에는 권장하지 않습니다.”

인덱스 테이블 스페이스 지정

고유 및 기본 키 제약 조건은 인덱스를 만듭니다. 오라클에 다르게 말하지 않는 한,해당 인덱스는 기본 테이블 스페이스에 배치됩니다. 지정하려면 다른 테이블스페이스를 사용합을 사용하여 인덱스 테이블스페이스의 절을 만들기 테이블의 명령에서와 같이,다음과 같은 목록이다.

인덱스와 관련된 AUTHOR_PK 기본 키의 제약 조건에 배치됩니다 사용자의 테이블스페이스.

참고.

에서 가장 기본 설치는 사용자의 테이블스페이스를 만들은 기본 테이블스페이스.

외래 키

외래 키는 다른 테이블의 기본 키 값을 기반으로 한 값을 가진 열의 조합입니다. 외국인 핵심 제약 조건,또한 참조 무결성 제한조건을 지정하는 값의 외국인 핵심에 해당하는 실제 값이 기본 키의 다른 테이블. 에서 책장 테이블,예를 들어,CATEGORY_NAME 열 값을 CATEGORY_NAME 열에서 카테고리 테이블:

참조할 수 있습니다본 또는 고유 키에도에서,동일한 표입니다. 그러나 참조 절에서 원격 데이터베이스의 테이블을 참조 할 수는 없습니다. 테이블을 사용할 수 있습니다형(는 이전에 사용하는 기본 키를 만들에 문제가 테이블)을 대신에 열의 양식을 지정한 외국의 열쇠를 여러 개의 열이 있습니다.

때로는 의존하는 행을 삭제할 때 이러한 종속 행을 삭제할 수 있습니다. BOOKSHELF 및 CATEGORY 의 경우 CATEGORY_NAME 을 CATEGORY 에서 삭제하면 일치하는 BOOKSHELF CATEGORY_NAME 열 값을 NULL 로 만들 수 있습니다. 다른 경우에는 전체 행을 삭제하고 싶을 수도 있습니다. 참조 절에 추가 된 삭제 캐스케이드의 절은 부모 테이블에서 해당 행을 삭제할 때 종속 행을 삭제하도록 오라클에 알려줍니다. 이 작업은 참조 무결성을 자동으로 유지합니다.

체크인 제약 조건

많은 열이 있어야하는 값은 특정 범위 내에서 또는 특정 조건을 만족. 검사 제약 조건을 사용하면 테이블의 모든 행에 대해 항상 true 여야하는 표현식을 지정할 수 있습니다. 예를 들어,테이블점에 유효 등급을 사용 가능한 값을 넘으로 적용되 열 정의,사용할 수 있습니다 CHECK,다음과 같은 목록이다.

열 수준 확인 제약 조건 참조 할 수 없습니다 값을 다른 행;그것을 사용할 수 없습니다 의사 열과 같은 SYSDATE,사용자,CURRVAL,NEXTVAL,수준 and ROWNUM. 사용할 수 있습니다 테이블 제약 조건을 형성(반대로 열약 양식)를 참조하 여러 개의 열을 확인 제약 조건이 있습니다.

명명 제약 조건

제약 조건의 이름을 지정할 수 있습니다. 제약 조건 이름에 효과적인 이름 지정 체계를 사용하면 제약 조건을 식별하고 관리하는 것이 더 좋습니다. 제약 조건의 이름은 그것이 작용하는 테이블과 그것이 나타내는 제약 조건의 유형을 식별해야합니다. 예를 들어,문제 테이블의 기본 키는 TROUBLE_PK 라는 이름을 지정할 수 있습니다.

제약 조건을 만들 때 제약 조건의 이름을 지정할 수 있습니다. 제약 조건에 이름을 지정하지 않으면 Oracle 이 이름을 생성합니다. 오라클에서 생성 된 제약 조건 이름의 대부분은 SYS_C######(예:SYS_C000145)형식입니다. 기 때문에 시스템-생성된 제약 조건에 이름을 말하지 않는다 당신에게 아무것도에 대한 테이블이나 제약 조건을,당신은 이름을 귀하의 제약 조건이 있습니다.

다음 예에서,기본 키가 제약 조건을 만들고,이름의 일부분으로 만들기 테이블의 명령에 대한 문제이블(고시 제약 조건을 절):

제약 조건을 절의 테이블 생성 명령어 이름을 제한조건(이 경우,TROUBLE_PK). 나중에 제약 조건을 활성화 또는 비활성화할 때 이 제약 조건 이름을 사용할 수 있습니다.