중화사전망 - 서예자전 - Oracle 에서 뷰를 구축하는 방법

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 문은 뷰를 삭제합니다.

뷰의 정의를 삭제해도 기본 테이블의 데이터에는 영향을 주지 않습니다.

뷰 소유자와 뷰를 삭제할 수 있는 권한이 있는 사용자만 뷰를 삭제할 수 있습니다.

뷰를 삭제하면 삭제된 뷰를 기반으로 하는 다른 뷰나 응용프로그램은 유효하지 않게 됩니다.