중화사전망 - 서예자전 - Oracle 에서 뷰를 구축하는 방법
Oracle 에서 뷰를 구축하는 방법
Oracle 에는 테이블, 뷰, 시퀀스, 인덱스 및 동의어의 다섯 가지 데이터베이스 객체가 있습니다.
뷰는 하나 이상의 테이블이나 뷰를 기반으로 하는 논리적 테이블이며 데이터를 포함하지 않습니다. 테이블의 데이터를 조회하고 수정하는 데 사용할 수 있습니다. 뷰의 기반이 되는 테이블을 기본 테이블이라고 합니다.
뷰는 데이터 사전에 저장된 select 문입니다. 뷰를 작성하여 데이터의 논리적 집합 또는 조합을 추출할 수 있습니다.
뷰의 이점:
1. 뷰에서 데이터베이스의 일부를 선택적으로 선택할 수 있으므로 데이터베이스에 액세스합니다.
2. 사용자는 간단한 질의를 통해 복잡한 질의로부터 결과를 얻을 수 있습니다.
3. 데이터의 독립성을 유지하고 가능한 한 여러 테이블에서 데이터를 검색합니다.
4. 동일한 데이터에 대해 다른 뷰를 생성할 수 있습니다.
뷰는 단순 뷰와 복합 뷰로 구분됩니다.
단순 뷰는 단일 테이블에서만 데이터를 가져옵니다.
여러 테이블의 복잡한 뷰
단순 뷰에는 함수 및 데이터 세트가 포함되지 않습니다.
복잡한 뷰는 다음과 같습니다
간단한 보기를 통해 DML 작업을 수행할 수 있습니다
복잡한 뷰는 허용되지 않습니다.
뷰 생성:
[또는 대체] [FORCE|NOFORCE] 뷰 이름 만들기
[(별칭 [,별칭] ...)]
하위 쿼리로
[검사 옵션 포함 [구속조건]]
[읽기 전용]
여기에는 다음이 포함됩니다.
또는 대체: 생성된 시도가 이미 존재하는 경우 ORACLE 은 자동으로 뷰를 재구성합니다.
강제 수행: 이 뷰는 ORACLE 이 기본 테이블에 있는지 여부에 관계없이 자동으로 생성됩니다.
NOFORCE: ORACLE 은 기본 테이블이 존재하는 경우에만 이 뷰를 생성합니다.
별칭: 뷰에 의해 생성된 열에 대해 정의된 별칭;
하위 질의: 별칭을 정의할 수 있는 전체 SELECT 문입니다.
벨트 검사 옵션:
삽입 또는 수정된 데이터 행은 뷰 정의의 구속조건을 충족해야 합니다.
읽기 전용:
이 뷰에서는 DML 작업을 수행할 수 없습니다.
예를 들면 다음과 같습니다.
뷰 부서 _ 합계 _ 일반 사용자 생성 또는 대체
(이름, 명사르, 맥스사르, 아부그사르)
AS SELECT d.dname, min(e.sal), max(e.sal), avg(e.sal)
직원 e 부서 d 에서
여기서 e.deptno=d.deptno 입니다
D.dname 별로 그룹화
뷰에 대한 정의 지침:
1. 뷰에 대한 쿼리는 연결/그룹 쿼리 및 하위 쿼리를 포함한 복잡한 SELECT 구문을 사용할 수 있습니다.
2. WITH CHECK 옵션과 읽기 전용이 없으면 질의에 사용할 수 없습니다.
ORDER BY 절;
3. 확인 옵션 제한조건에 이름이 지정되지 않은 경우 시스템은 자동으로 SYS_Cn 으로 이름을 지정합니다.
4. 또는 REPLACE 옵션은 정의를 변경하고 삭제하지 않고 원래 뷰를 재작성하거나 객체를 다시 부여합니다.
허가.
뷰 질의:
뷰가 성공적으로 생성되면 테이블에서 데이터를 검색하는 것처럼 뷰에서 데이터를 검색할 수 있습니다.
뷰의 모든 정보와 지정된 데이터 행 및 열을 조회할 수도 있습니다.
예를 들면 다음과 같습니다.
데이터를 검색하려면 다음을 수행합니다.
SQL & gtSELECT * FROM dept _ sum _ VW
조회 뷰 정의:
SELECT 뷰 이름, 사용자 뷰의 텍스트.
여기서 텍스트에 표시되는 내용은 DESC USER_VIEWS 를 통해 액세스할 수 있는 뷰 정의의 SELECT 문입니다.
관련 정보를 얻다.
뷰를 수정합니다.
또는 대체를 사용하여 동일한 이름으로 뷰를 재생성합니다.
뷰에 대한 DML 작업:
DML 실행에서 따라야 할 원칙:
1. 단순 보기는 DML 작업을 수행할 수 있습니다.
2. 뷰에 GROUP function, GROUP BY 절 및 DISTINCT 키워드가 포함된 경우, 그렇지 않습니다.
데이터 행 삭제
3. 뷰에 다음과 같은 상황이 없을 경우 뷰를 통해 기본 테이블 데이터를 수정하거나 데이터를 삽입할 수 있습니다.
A. 뷰에는 GROUP function, GROUP BY 절 및 DISTINCT 키워드가 포함되어 있습니다.
B. 표현식에 의해 정의된 열
C.ROWNUM 의사 열
D 뷰에서 선택되지 않은 기본 테이블의 다른 열은 비어 있지 않고 기본값이 없는 열로 정의됩니다.
뷰는 데이터베이스의 무결성을 유지하는 데 사용할 수 있지만 기능은 제한적입니다.
뷰에서 참조 무결성 제약 조건을 구현하면 데이터베이스 레벨에서 제약 조건을 구현할 수 있습니다.
WITH CHECK OPTION 절은 다음을 제한합니다.
뷰를 통한 삽입 및 갱신은 뷰에서 검색할 수 없는 데이터 행을 만들 수 없습니다.
삽입 또는 수정된 데이터 행에 대해 무결성 제약 조건 및 데이터 유효성 검사를 수행하기 때문입니다.
예를 들면 다음과 같습니다.
뷰 vw_emp20 생성 또는 대체
AS SELECT * FROM EMP
여기서 deptno=20 입니다
Vw _ emp20 _ CK 체크 옵션 구속 포함
뷰가 작성되었습니다.
질의 결과:
Vw_emp20 에서 empno, ename, job 을 선택합니다
EMPNO ENAME 작업
---
스미스 직원 7369 호
7566 존스 매니저
7902 포드 애널리스트
수정:
Vw 업데이트 _ emp20
Deptno=20 으로 설정합니다
여기서 empno = 7902 입니다
오류가 발생합니다.
Vw 업데이트 _ emp20
*
첫 번째 줄의 오류:
ORA-0 1402: 확인 옵션이 있는 뷰가 WHERE 절을 위반합니다.
뷰를 삭제하려면 다음과 같이 하십시오.
DROP VIEW VIEW_NAME 문은 뷰를 삭제합니다.
뷰의 정의를 삭제해도 기본 테이블의 데이터에는 영향을 주지 않습니다.
뷰 소유자와 뷰를 삭제할 수 있는 권한이 있는 사용자만 뷰를 삭제할 수 있습니다.
뷰를 삭제하면 삭제된 뷰를 기반으로 하는 다른 뷰나 응용프로그램은 유효하지 않게 됩니다.