SQL VIEW (보기)

6609 단어 view
SQL VIEW (보기)
 
 
보 기 는 원본 데이터베이스 데이터 의 변환 으로 표 의 데 이 터 를 보 는 또 다른 방식 입 니 다.보 기 를 이동 하 는 창 으로 볼 수 있 으 며 관심 있 는 데 이 터 를 볼 수 있 습 니 다.보 기 는 하나 이상 의 실제 표 에서 얻 은 것 으로 이 표 의 데 이 터 는 데이터베이스 에 저 장 됩 니 다.보 기 를 만 드 는 데 사용 되 는 시 계 를 이 보기 의 기본 표 라 고 합 니 다.하나의 보기 도 다른 보기에 서 생 성 할 수 있다.
보기 의 정 의 는 데이터베이스 에 존재 합 니 다. 이 정의 와 관련 된 데 이 터 는 데이터베이스 에 하나 도 저장 되 지 않 았 습 니 다.보 기 를 통 해 보 이 는 데 이 터 를 기본 표 에 저장 합 니 다.보 기 는 데이터베이스 의 물리 표 처럼 보 입 니 다. 그것 에 대한 조작 은 다른 표 와 같 습 니 다.보 기 를 통 해 데 이 터 를 수정 할 때 실제 적 으로 기본 표 의 데 이 터 를 바 꾸 고 있 습 니 다.반면 기본 표 데이터 의 변 화 는 기본 표 에서 나 오 는 보기 에 자동 으로 반영 된다.논리 적 인 이유 로 일부 보 기 는 대응 하 는 기본 표를 수정 할 수 있 고, 일 부 는 조회 할 수 없다. 투시도 의 역할     * 단순 성보 이 는 게 필요 해.보 기 는 사용자 가 데이터 에 대한 이 해 를 간소화 할 수 있 을 뿐만 아니 라 그들의 조작 도 간소화 할 수 있다.자주 사용 되 는 조 회 는 보기 로 정의 되 어 사용자 가 앞으로 의 작업 에 매번 모든 조건 을 지정 하지 않 아 도 됩 니 다.    * 안전성보 기 를 통 해 사용 자 는 그들 이 볼 수 있 는 데 이 터 를 조회 하고 수정 할 수 있 습 니 다.데이터베이스 에 있 는 다른 데 이 터 는 보이 지도 않 고 찾 을 수도 없다.데이터베이스 권한 수여 명령 은 모든 사용자 가 데이터베이스 에 대한 검색 을 특정한 데이터베이스 대상 으로 제한 할 수 있 으 나 데이터베이스 특정 줄 과 특정한 열 에 권한 을 부여 할 수 없다.보 기 를 통 해 사용 자 는 데이터 의 다른 부분 집합 에 제 한 될 수 있 습 니 다.      기본 표 의 줄 부분 집합 에 사용 권한 을 제한 할 수 있 습 니 다.      기본 표 의 열 부분 집합 에 사용 권한 을 제한 할 수 있 습 니 다.        사용 권한 은 기본 표 의 줄 과 열의 부분 집합 에 제 한 될 수 있 습 니 다.        사용 권한 은 여러 기본 표 의 연결 에 한 정 된 줄 에 제 한 될 수 있 습 니 다.        사용 권한 은 기본 표 의 데이터 집계 에 제 한 될 수 있 습 니 다.      사용 권한 은 다른 보기 의 하위 집합 이나 일부 보기 와 기본 표 가 합 쳐 진 하위 집합 에 제 한 될 수 있 습 니 다.   * 논리 데이터 독립 성.보 기 는 사용자 가 실제 표 구조 변화 에 미 치 는 영향 을 차단 하 는 데 도움 을 줄 수 있다.  삼시 도의 안전성     보기 의 안전성 은 권한 이 부여 되 지 않 은 사용자 가 특정한 줄 이나 열 을 보 는 것 을 방지 할 수 있 습 니 다. 사용자 가 표 의 특정한 줄 만 볼 수 있 는 방법 은 다음 과 같 습 니 다.    1. 표 에 사용자 이름 을 표시 하 는 열 을 추가 합 니 다.    2. 보 기 를 만 드 는 것 은 사용자 가 자신의 사용자 이름 이 표 시 된 줄 만 볼 수 있 는 것 입 니 다.    3. 보 기 를 다른 사용자 에 게 권한 을 부여 합 니 다. 4 논리 데이터 독립 성    보 기 는 응용 프로그램 과 데이터베이스 테이블 을 어느 정도 독립 시 킬 수 있다.보기 가 없 으 면, 응용 프로그램 은 반드시 표 에 세 워 져 있 을 것 입 니 다.보기 가 있 으 면 프로그램 은 보기 위 에 세 워 져 서 데이터베이스 시트 와 보기 로 나 눌 수 있 습 니 다.보 기 는 다음 과 같은 몇 가지 측면 에서 프로그램 과 데 이 터 를 독립 시 킬 수 있 습 니 다.    1. 데이터베이스 시트 에 설 치 된 응용 프로그램 이 데이터베이스 시트 에 변화 가 생 겼 을 때 표 에 보 기 를 만 들 고 보기 차단 표 의 변 화 를 통 해 프로그램 이 움 직 이지 않 을 수 있 습 니 다.    2. 데이터베이스 시트 에 적용 하면 응용 이 변화 할 때 표 에 보 기 를 만 들 고 보 기 를 통 해 응용 변 화 를 차단 하여 데이터 베 이 스 를 움 직 이지 않 게 할 수 있 습 니 다.    3. 보기 에 설 치 된 응용 프로그램 이 데이터베이스 시트 에 변화 가 생 겼 을 때 표 에서 보 기 를 수정 하고 보기 차단 표 의 변 화 를 통 해 프로그램 이 움 직 이지 않 을 수 있 습 니 다.    4 보기 에 적용 하면 응용 이 변 할 때 표 에서 보 기 를 수정 하고 보 기 를 통 해 응용 변 화 를 차단 하여 데이터 베 이 스 를 움 직 이지 않 을 수 있 습 니 다.
 
 
보 기 는 여러 테이블 의 열 을 연결 해서 테이블 처럼 보일 수 있 지만, 이 테이블 은 저장 공간 을 차지 하지 않 습 니 다.보 기 는 크로스 테이블 과 크로스 필드 로 도 사용 할 수 있 습 니 다. 두 데이터베이스 사이 에 교량 링크 를 하 는 역할 을 합 니 다. 데이터 베 이 스 를 완전히 열 수 있 는 권한 이 안전 하지 않 기 때문에 다른 데이터베이스 에 있 는 사용자 에 게 만 보 기 를 만 들 수 있 는 권한 을 개방 하면 이런 문 제 를 피 할 수 있 습 니 다.사용자 도 다른 데이터베이스 의 데 이 터 를 편리 하 게 조회 할 수 있다.매우 편리 하고 안전 합 니 다.
 
보기 란 무엇 입 니까? 보 기 는 하나 또는 몇 개의 기본 표 에서 내 보 내 는 표 입 니 다. 가상 표 입 니 다.보 기 는 데이터베이스 의 줄 과 열 데이터 의 집합 입 니 다. 데이터 의 출처 는 보기 에 대응 하 는 조회 문 에 포 함 된 표 나 다른 데이터 베이스 대상 입 니 다. 보기 의 데 이 터 는 데이터 베이스 의 특정한 위치 에 저장 되 어 있 는 것 이 아니 라 조 회 를 수행 할 때 동적 으로 생 성 되 는 것 입 니까? 데 이 터 는 표 에 저장 되 어 있 습 니까?보기 장점:
1. 특정한 데이터 에 초점 을 맞춘다.2. 데이터 조작 간소화 3. 사용자 데이터 맞 춤 형 4. 데이터 베 이 스 를 재 구성 하 는 데 어느 정도 논리 적 독립 성 을 제공 했다. 5. 분 리 된 데이터 6 을 합병 하고 데이터 베 이 스 를 차단 하 는 복잡성 7. 사용자 권한 의 관 리 를 간소화 하고 데이터 의 공유 에 편리 하 다.
 
 
CREATE VIEW (Transact - SQL) 문법:
http://msdn.microsoft.com/zh-cn/library/ms187956.aspx
 
SQL CREATE VIEW 구문
보기 가 무엇 입 니까?
SQL 에서 보 기 는 SQL 문 구 를 기반 으로 한 결과 집합 을 시각 화 하 는 표 입 니 다.
보 기 는 줄 과 열 을 포함 하고 있 습 니 다. 마치 실제 표 와 같 습 니 다.보기 의 필드 는 하나 이상 의 데이터베이스 에 있 는 실제 표 의 필드 입 니 다.우 리 는 보기 에 SQL 함수, WHERE, JOIN 문 구 를 추가 할 수 있 습 니 다. 우 리 는 하나의 표 에서 온 것 처럼 데 이 터 를 제출 할 수 있 습 니 다.
설명: 데이터베이스 의 디자인 과 구 조 는 보기 의 함수, where 또는 join 문장의 영향 을 받 지 않 습 니 다.
SQL CREATE VIEW 문법
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

설명: 보 기 는 항상 최근 데 이 터 를 표시 합 니 다.사용자 가 보 기 를 조회 할 때마다 데이터베이스 엔진 은 SQL 문 구 를 사용 하여 데 이 터 를 재 구축 합 니 다.
SQL CREATE VIEW 인 스 턴 스
내부, 저장 과정 내 부 를 조회 하거나 다른 보기 내부 에서 보 기 를 사용 할 수 있 습 니 다.보기 에 함수, join 등 을 추가 하면 사용자 에 게 우리 가 제출 하고 자 하 는 데 이 터 를 정확하게 제출 할 수 있 습 니 다.
샘플 데이터베이스 Northwind 는 기본적으로 설 치 된 보 기 를 가지 고 있 습 니 다.보기 "Current Product List" 는 Products 표 에서 사용 중인 모든 제품 을 보 여 줍 니 다.이 보 기 는 다음 SQL 생 성 을 사용 합 니 다:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

我们可以查询上面这个视图:

 

SELECT * FROM [Current Product List]

Northwind 샘플 데이터베이스 의 다른 보 기 는 Products 표 의 모든 단위 가격 이 평균 단위 가격 보다 높 은 제품 을 선택 합 니 다.
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 

我们可以像这样查询上面这个视图:

SELECT * FROM [Products Above Average Price]

또 다른 Northwind 데이터베이스 에서 온 보기 인 스 턴 스 는 1997 년 각 종류의 판매 총 수 를 계산 합 니 다.이 보 기 는 'Product Sales for 1997' 이라는 다른 보기 에서 데 이 터 를 선택 할 수 있 습 니 다.
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName 

我们可以像这样查询上面这个视图:

SELECT * FROM [Category Sales For 1997]

우리 도 조회 에 조건 을 추가 할 수 있다.현재, 우 리 는 단지 "Beverages" 류 의 모든 판 매 량 을 볼 필요 가 있다.
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

SQL 更新视图

您可以使用下面的语法来更新视图:

SQL CREATE OR REPLACE VIEW Syntax
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

현재, 우 리 는 "Current Product List" 보기에 "Category" 열 을 추가 하고 싶 습 니 다.다음 SQL 을 통 해 보 기 를 업데이트 합 니 다.
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

SQL 보기 취소
DROP VIEW 명령 을 통 해 보 기 를 삭제 할 수 있 습 니 다.
SQL DROP VIEW Syntax
DROP VIEW view_name

 

좋은 웹페이지 즐겨찾기