밑에 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 |
외래 키가 참조하는 제약 조건의 소유자와 이름을 정의합니다. |
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 |
외래 키가 참조하는 제약 조건의 소유자와 이름을 정의합니다. |
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.
'SQL > ORACLE' 카테고리의 다른 글
[Oracle] Hint 사용 예제 (0) | 2014.02.12 |
---|---|
[Oracle] 오라클 힌트 사용 모음.. (0) | 2014.02.12 |
[Oracle]실행계획 Nested Loops이냐 Sort Merge조인이냐.. (0) | 2014.02.12 |
[Oracle]인덱스(index) 확인하기 (0) | 2014.02.12 |
[Oracle]인라인뷰를 이용한 계획. 실행계획 (0) | 2014.02.12 |
[Oracle]실행결과 보는 방법 (0) | 2014.02.12 |
[Oracle]테이블에서 칼럼 삭제 (0) | 2014.02.12 |
[Oracle] Create Index 인덱스 생성 방법 (0) | 2014.02.12 |