SQL에서 뷰와 테이블의 차이점


136

중복 가능성 :
성능에서 뷰와 테이블의 차이

SQL에서 뷰와 테이블의 주요 차이점은 무엇입니까? 테이블 대신 뷰를 사용하면 어떤 이점이 있습니까?



6
복제본처럼 보이지 않습니다. 링크 된 게시물은 성능 / 효율에 대해 구체적으로 묻습니다. 이 게시물은 선택된 답변이 나타내는 것처럼 데이터 유형과의 차이점에 대해 더 많이 묻습니다.
Ð ..

답변:


197

테이블은 데이터를 포함하고, 뷰는 SELECT데이터베이스에 저장된 명령문 일뿐입니다 (데이터베이스에 따라 다소).

뷰의 장점은 여러 테이블의 데이터를 조인하여 새로운 뷰를 만들 수 있다는 것입니다. 급여가있는 데이터베이스가 있고 복잡한 통계 쿼리를 수행해야한다고 가정 해보십시오.

복잡한 쿼리를 데이터베이스에 항상 보내지 않고 쿼리를보기로 저장 한 다음 SELECT * FROM view


11
따라서 뷰는 실제로 select 문으로 작성된 테이블입니다. 뷰가 저장되고 액세스 될 수 있으므로 뷰 대신 해당 정보로 새 테이블을 작성하는 것의 차이점은 무엇입니까?
Doug Hauf

23
뷰를 반복 할 수있는 "저장된 선택 명령문"으로 생각할 수 있습니다. 실제로 테이블이 아닙니다. 일부 데이터베이스에서는 실제 테이블 아래에 뷰를 작성할 수 있지만 실제로 SELECT는 결과를 리턴 하는 명령문 일뿐 입니다.
Aaron Digulla

1
주목할 사항 : "show table;"의 테이블과 함께 일부 데이터베이스 시스템 목록보기 명령.
Dexter

1
@ShwetabhShekhar 데이터베이스와보기 유형에 따라 다릅니다. 가장 간단한 형태로, 데이터베이스는 마치 모든 것을 보낸 것처럼 SQL을 실행합니다. 이 경우 많은 바이트를 반복해서 전송하는 것을 저장합니다. 일부 데이터베이스는 쿼리를 실행하고 결과를 (실제) 테이블에 저장할 수 있습니다. 그런 다음 어떻게 든 언급 한 문제를 해결해야합니다. 이를 수행하는 방법은 DB 문서를 확인하십시오.
Aaron Digulla

1
@FoxDeploy 예, 어떤 식 으로든 도움이되지 않기 때문입니다. 유용한 시나리오는 권한이 제한된보기이거나 동일한 데이터베이스 또는 다른 데이터베이스 (원격 테이블)의 다른 스키마에서 테이블을 선택하는보기입니다.
Aaron Digulla

34

테이블 : 테이블은 RDBMS에 데이터 및 정보를 저장하기위한 예비 스토리지입니다. 테이블은 관련 데이터 항목의 모음이며 열과 행으로 구성됩니다.

보기 : 보기는 내용이 쿼리로 정의 된 가상 테이블입니다. 인덱싱되지 않으면 뷰는 데이터베이스에 저장된 데이터 값 세트로 존재하지 않습니다. 테이블에 비해 장점은

  • 여러 테이블 또는 다른 뷰의 열 / 행을 결합하고 통합 된 뷰를 가질 수 있습니다.
  • 뷰는 사용자에게 뷰의 기본 테이블에 직접 액세스 할 수있는 권한을 부여하지 않고도 뷰를 통해 데이터에 액세스 할 수 있도록하여 보안 메커니즘으로 사용할 수 있습니다.
  • 다운 스트림 시스템에 대한 추상 계층으로 작동하므로 스키마의 모든 변경 사항이 노출되지 않으므로 다운 스트림 시스템에는 영향을 미치지 않습니다.

16

뷰는 가상 테이블입니다. 뷰는 테이블처럼 행과 열로 구성됩니다. 뷰와 테이블의 차이점은 뷰는 다른 테이블 (또는 뷰) 위에 구축 된 정의이며 데이터 자체를 보유하지 않는다는 것입니다. 기본 테이블에서 데이터가 변경되면 동일한 변경 내용이 뷰에 반영됩니다. 단일 테이블 또는 다중 테이블 위에 뷰를 빌드 할 수 있습니다. 다른 뷰 위에 구축 할 수도 있습니다. SQL Create View 페이지에서 뷰를 작성하는 방법을 볼 수 있습니다.

뷰는 다음과 같은 장점을 제공합니다.

  1. 사용 편의성 : 뷰는 최종 사용자로부터 데이터베이스 테이블의 복잡성을 숨 깁니다. 본질적으로 뷰는 데이터베이스 테이블 위에서 추상화 계층으로 생각할 수 있습니다.

  2. 공간 절약 : 뷰는 실제 데이터를 저장하지 않기 때문에 저장할 공간이 거의 없습니다.

  3. 추가 데이터 보안 :보기에는 테이블에 특정 열만 포함될 수 있으므로 중요하지 않은 열만 포함되어 최종 사용자에게 노출됩니다. 또한 일부 데이터베이스는보기에 다른 보안 설정을 허용하므로 민감한 데이터가 눈에 띄지 않도록 숨 깁니다.

답변 : http://www.1keydata.com/sql/sql-view.html


4

보기에는 데이터베이스와 직접적 또는 물리적 관계가 없습니다. 뷰를 통한 수정 (예 : 삽입, 업데이트, 삭제)은 허용되지 않습니다. 논리적 테이블 세트 일뿐입니다.


1
SQL Server에서 하나의 기본 테이블 만 참조하는 경우 뷰를 통해 기본 테이블을 수정할 수 있습니다. 여기를 참조하십시오
Kristen Hammack

3

뷰는 데이터베이스 공간을 항상 없애는 데 도움이됩니다. 테이블을 작성하면 테이블이 데이터베이스에 저장되고 존재하는 동안 일부 공간을 보유합니다. 대신 쿼리가 실행될 때 뷰가 사용되므로 DB 공간이 절약됩니다. 다른 테이블을 조인 할 때마다 항상 큰 테이블을 만들 수는 없지만 공간을 절약하기 위해 테이블이 얼마나 큰지에 따라 다릅니다. 따라서 런타임에 다른 테이블을 조인하여 테이블을 일시적으로 생성하십시오. 전문가 여러분, 제가 틀렸다면 정정 해주세요.


2

표:

테이블은 데이터를 데이터베이스에 저장하고 데이터를 포함합니다.

전망:

보기는 가상의 테이블이며 필드 (열) 만 포함하고 런타임에 프레임 화 될 데이터 (행)를 포함하지 않습니다. 선택된 열과 함께 조인으로 하나 이상의 테이블에서 작성된보기. 보안상의 이유로 사용자로부터 일부 열을 숨기고 열에 정보가 숨기도록보기가 작성됩니다. 뷰는 매번 특정 열에 액세스하기 위해 쿼리를 작성하는 노력을 줄입니다. 매번 데이터베이스에 복잡한 쿼리를 수행하는 대신 뷰를 사용할 수 있습니다


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.