728x90
반응형

밑에 2개의 테이블 조인 조건은 owner, constraint_name이다..

 

select * from user_constraints;
select * from user_cons_columns;

 

========= 기본키, 외래키에 포함된 칼럼 나태내기 ============

select a.table_name, a.constraint_name, a.constraint_type, b.column_name from user_constraints a, user_cons_columns b
where a.owner = 'FLYDRAGO'
and a.table_name = '사원'
and a.owner = b.owner
and a.constraint_name = b.constraint_name;

=========== 기본키, 외래키 관계 찾기 ===================

select a.constraint_name as "foreign key", a.r_constraint_name "Referenced Key", b.constraint_type, b.owner, b.table_name
from user_constraints a, user_constraints b
where a.owner = 'FLYDRAGO'
and a.table_name = '사원'
and a.owner = b.owner
and a.r_constraint_name = b.constraint_name;

 

제약 조건과 그 상태
SCOTT의 EMP 테이블에 대한 모든 제약 조건의 이름, 유형, 그리고 상태를 알고 싶으면 다음 질의문을 사용하십시오.
        SVRMGR> SELECT constraint_name, constraint_type, deferrable,
                2>        deferred, validated
                3> FROM dba_constraints
                4> WHERE owner=‘SCOTT’
                5> AND table_name=‘EMPLOYEES’;
CONSTRAINT_NAME   C  DEFERRABLE      DEFERRED    VALIDATED
----------------  -  --------------  ----------  -------------
EMP_DEPT_FK       R  DEFERRABLE      DEFERRED    VALIDATED
EMP_PK            P  DEFERRABLE      IMMEDIATE   VALIDATED
SYS_C00565        C  NOT DEFERRABLE  IMMEDIATE   VALIDATED
3 rows selected

 

다음 표는 DBA_CONSTRAINTS 뷰 내의 일부 열들에 대한 설명입니다.

 이름

 설명

 CONSTRAINT_TYPE

제약 조건의 유형은 기본 키이면 P, 유일 키이면 U, 외래 키이면 R, 검사(Check)이면 C입니다. NOT NULL 제약조건은 검사 제약조건으로 저장됩니다.

 SEARCH_CONDITION

검사 제약 조건으로 지정된 조건을 보여 줍니다.

 R_OWNER
 R_CONSTRAINT_NAME

외래 키가 참조하는 제약 조건의 소유자와 이름을 정의합니다.

 GENERATED

제약 조건의 이름이 시스템에 의해 생성되었는지 여부를 보여 줍니다.(가능한 값은 ‘USER NAME과GENARATED NAME’입니다.)

 BAD

제약 조건이 Y2K 문제 같은 것들을 피할 수 있도록 쓰여졌는지를 보여 줍니다.(오라클 이전 버전에서 검사 제약 조건에 두 자리수로 년도를 지정할 수 있게 허용했기 때문에 발생할 수 있습니다.)

 LAST_CHANGE

제약 조건이 마지막으로 enable되거나 disable된 날짜입니다.

 

 

제약 조건의 열
SCOTT의 EMP 테이블에 대한 제약 조건의 열을 알고 싶으면 다음 질의문을 사용하십시오.
        SVRMGR> SELECT c.constraint_name, c.constraint_type,
                2>         cc.column_name
                3> FROM dba_constraints c, dba_cons_columns cc
                4> WHERE c.owner=‘SCOTT’
                5> AND c.table_name=‘EMPLOYEES’
                6> AND c.owner = cc.owner
                7> AND c.constraint_name = cc.constraint_name
                8> ORDER BY cc.position;
        CONSTRAINT_NAME         C   COLUMN_NAME
        ---------------------   -   ----------------
        EMP_DEPT_FK             R   DEPTNO
        EMP_PK                  P   EMPNO
        SYS_C00565              C   LAST_NAME
        3 rows selected.

 

기본 키 - 외래 키 관계 찾기
SCOTT의 EMP 테이블의 외래 키와 부모 제약 조건을 찾으려면 다음 질의문을 사용하십시오.
        SVRMGR> SELECT c.constraint_names AS “Foreign Key”,
                2> p.constraint_name AS “Referenced Key”,
                3> p.constraint_type,
                4> p.owner,
                5> p.table_name
                6> FROM dba_constraints c, dba_constraints p
                7> WHERE c.owner=‘SCOTT’
                8> AND c.table_name=‘EMPLOYEES’
                9> AND c.constraint_type=‘R’
         1      0> AND c.r_owner=p.owner
         1      1> AND c.r_constraint_name = p.constraint_name;
        Foreign Key   Referenced Key   C   OWNER      TABLE_NAME
        ------------  --------------   -   --------   ----------------
        EMP_DEPT_FK   DEPT_PK          P   SCOTT      DEPARTMENTS
        1 row selected.

 

제약 조건과 그 상태
SCOTT의 EMP 테이블에 대한 모든 제약 조건의 이름, 유형, 그리고 상태를 알고 싶으면 다음 질의문을 사용하십시오.
        SVRMGR> SELECT constraint_name, constraint_type, deferrable,
                2>        deferred, validated
                3> FROM dba_constraints
                4> WHERE owner=‘SCOTT’
                5> AND table_name=‘EMPLOYEES’;
CONSTRAINT_NAME   C  DEFERRABLE      DEFERRED    VALIDATED
----------------  -  --------------  ----------  -------------
EMP_DEPT_FK       R  DEFERRABLE      DEFERRED    VALIDATED
EMP_PK            P  DEFERRABLE      IMMEDIATE   VALIDATED
SYS_C00565        C  NOT DEFERRABLE  IMMEDIATE   VALIDATED
3 rows selected

 

다음 표는 DBA_CONSTRAINTS 뷰 내의 일부 열들에 대한 설명입니다.

 이름

 설명

 CONSTRAINT_TYPE

제약 조건의 유형은 기본 키이면 P, 유일 키이면 U, 외래 키이면 R, 검사(Check)이면 C입니다. NOT NULL 제약조건은 검사 제약조건으로 저장됩니다.

 SEARCH_CONDITION

검사 제약 조건으로 지정된 조건을 보여 줍니다.

 R_OWNER
 R_CONSTRAINT_NAME

외래 키가 참조하는 제약 조건의 소유자와 이름을 정의합니다.

 GENERATED

제약 조건의 이름이 시스템에 의해 생성되었는지 여부를 보여 줍니다.(가능한 값은 ‘USER NAME과GENARATED NAME’입니다.)

 BAD

제약 조건이 Y2K 문제 같은 것들을 피할 수 있도록 쓰여졌는지를 보여 줍니다.(오라클 이전 버전에서 검사 제약 조건에 두 자리수로 년도를 지정할 수 있게 허용했기 때문에 발생할 수 있습니다.)

 LAST_CHANGE

제약 조건이 마지막으로 enable되거나 disable된 날짜입니다.

 

 

제약 조건의 열
SCOTT의 EMP 테이블에 대한 제약 조건의 열을 알고 싶으면 다음 질의문을 사용하십시오.
        SVRMGR> SELECT c.constraint_name, c.constraint_type,
                2>         cc.column_name
                3> FROM dba_constraints c, dba_cons_columns cc
                4> WHERE c.owner=‘SCOTT’
                5> AND c.table_name=‘EMPLOYEES’
                6> AND c.owner = cc.owner
                7> AND c.constraint_name = cc.constraint_name
                8> ORDER BY cc.position;
        CONSTRAINT_NAME         C   COLUMN_NAME
        ---------------------   -   ----------------
        EMP_DEPT_FK             R   DEPTNO
        EMP_PK                  P   EMPNO
        SYS_C00565              C   LAST_NAME
        3 rows selected.

 

기본 키 - 외래 키 관계 찾기
SCOTT의 EMP 테이블의 외래 키와 부모 제약 조건을 찾으려면 다음 질의문을 사용하십시오.
        SVRMGR> SELECT c.constraint_names AS “Foreign Key”,
                2> p.constraint_name AS “Referenced Key”,
                3> p.constraint_type,
                4> p.owner,
                5> p.table_name
                6> FROM dba_constraints c, dba_constraints p
                7> WHERE c.owner=‘SCOTT’
                8> AND c.table_name=‘EMPLOYEES’
                9> AND c.constraint_type=‘R’
         1      0> AND c.r_owner=p.owner
         1      1> AND c.r_constraint_name = p.constraint_name;
        Foreign Key   Referenced Key   C   OWNER      TABLE_NAME
        ------------  --------------   -   --------   ----------------
        EMP_DEPT_FK   DEPT_PK          P   SCOTT      DEPARTMENTS
        1 row selected.

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,