Sự khác biệt giữa View và bảng trong sql


135

Có thể trùng lặp:
Sự khác biệt giữa Lượt xem và Bảng trong Hiệu suất

Sự khác biệt chính giữa khung nhìn và bảng trong SQL là gì. Có bất kỳ lợi thế của việc sử dụng lượt xem thay vì bảng.



6
Không có vẻ như là một bản sao. Các bài được liên kết là hỏi cụ thể về hiệu suất / hiệu quả. Bài đăng này đang hỏi thêm về cách chúng khác nhau như kiểu dữ liệu, như câu trả lời được chọn đại diện.
Đ ..

Câu trả lời:


196

Một bảng chứa dữ liệu, một khung nhìn chỉ là một SELECTcâu lệnh đã được lưu trong cơ sở dữ liệu (nhiều hay ít, tùy thuộc vào cơ sở dữ liệu của bạn).

Ưu điểm của một khung nhìn là nó có thể nối dữ liệu từ một số bảng do đó tạo ra một khung nhìn mới về nó. Giả sử bạn có một cơ sở dữ liệu với mức lương và bạn cần thực hiện một số truy vấn thống kê phức tạp trên đó.

Thay vì gửi truy vấn phức tạp đến cơ sở dữ liệu mọi lúc, bạn có thể lưu truy vấn dưới dạng xem và sau đó SELECT * FROM view


11
Vì vậy, khung nhìn thực tế là một bảng được tạo bởi một câu lệnh chọn. Chế độ xem được lưu trữ và có thể được truy cập, vậy điều gì sẽ khác biệt giữa việc tạo bảng mới với thông tin đó thay vì chế độ xem.
Doug Hauf

23
Bạn có thể nghĩ về một khung nhìn như một "câu lệnh chọn đã lưu" mà bạn có thể lặp lại. Nó không thực sự là một cái bàn; mặc dù một số cơ sở dữ liệu cho phép tạo các khung nhìn có bảng thực bên dưới, nhưng đây thực sự chỉ là một SELECTtuyên bố trả về kết quả.
Aaron Digulla

1
một vài điều cần lưu ý: một số khung nhìn danh sách hệ thống cơ sở dữ liệu cùng với các bảng trên "bảng hiển thị;" chỉ huy.
Dexter

1
@ShwetabhShekhar Điều đó phụ thuộc vào cơ sở dữ liệu của bạn và loại chế độ xem. Ở dạng đơn giản nhất, cơ sở dữ liệu sẽ thực thi SQL như thể bạn vừa gửi toàn bộ. Trong trường hợp này, bạn chỉ cần lưu gửi nhiều byte nhiều lần. Một số cơ sở dữ liệu có thể thực hiện truy vấn và lưu trữ kết quả trong bảng (thực). Sau đó, bạn cần phải giải quyết các vấn đề bằng cách nào đó mà bạn đề cập. Kiểm tra tài liệu DB làm thế nào để làm điều đó.
Aaron Digulla

1
@FoxDeploy Có, vì quan điểm đó không giúp được gì. Các kịch bản hữu ích sẽ là một khung nhìn với các quyền hạn chế hoặc một khung nhìn chọn một bảng từ một lược đồ khác trong cùng một cơ sở dữ liệu hoặc một cơ sở dữ liệu khác (bảng từ xa).
Aaron Digulla

34

Bảng: Bảng là bộ lưu trữ sơ bộ để lưu trữ dữ liệu và thông tin trong RDBMS. Bảng là tập hợp các mục nhập dữ liệu liên quan và nó bao gồm các cột và hàng.

Chế độ xem: Chế độ xem là bảng ảo có nội dung được xác định bởi truy vấn. Trừ khi được lập chỉ mục, một khung nhìn không tồn tại dưới dạng tập hợp các giá trị dữ liệu được lưu trữ trong cơ sở dữ liệu. Ưu điểm so với bảng là

  • Chúng ta có thể kết hợp các cột / hàng từ nhiều bảng hoặc một khung nhìn khác và có một khung nhìn hợp nhất.
  • Chế độ xem có thể được sử dụng làm cơ chế bảo mật bằng cách cho phép người dùng truy cập dữ liệu qua chế độ xem mà không cấp quyền cho người dùng truy cập trực tiếp vào các bảng cơ sở bên dưới của chế độ xem
  • Nó hoạt động như một lớp trừu tượng cho các hệ thống hạ nguồn, do đó, bất kỳ thay đổi nào trong lược đồ không được phơi bày và do đó các hệ thống hạ nguồn không bị ảnh hưởng.

16

Một khung nhìn là một bảng ảo. Một khung nhìn bao gồm các hàng và cột giống như một bảng. Sự khác biệt giữa một khung nhìn và một bảng là các khung nhìn là các định nghĩa được xây dựng trên các bảng khác (hoặc các khung nhìn) và không giữ dữ liệu. Nếu dữ liệu thay đổi trong bảng bên dưới, cùng một thay đổi được phản ánh trong chế độ xem. Một khung nhìn có thể được xây dựng trên đầu của một bảng hoặc nhiều bảng. Nó cũng có thể được xây dựng trên đầu của một cái nhìn khác. Trong trang SQL Tạo dạng xem, chúng ta sẽ thấy cách chế độ xem có thể được xây dựng.

Lượt xem cung cấp những lợi thế sau:

  1. Dễ sử dụng: Một khung nhìn che giấu sự phức tạp của các bảng cơ sở dữ liệu từ người dùng cuối. Về cơ bản chúng ta có thể nghĩ về các khung nhìn như một lớp trừu tượng trên đầu các bảng cơ sở dữ liệu.

  2. Tiết kiệm không gian: Lượt xem chiếm rất ít không gian để lưu trữ, vì chúng không lưu trữ dữ liệu thực tế.

  3. Bảo mật dữ liệu bổ sung: Chế độ xem chỉ có thể bao gồm các cột nhất định trong bảng để chỉ các cột không nhạy cảm mới được đưa vào và hiển thị cho người dùng cuối. Ngoài ra, một số cơ sở dữ liệu cho phép các chế độ xem có các cài đặt bảo mật khác nhau, do đó ẩn dữ liệu nhạy cảm khỏi con mắt tò mò.

Trả lời từ: http://www.1keydata.com/sql/sql-view.html


4

Theo quan điểm, không có bất kỳ mối quan hệ trực tiếp hoặc vật lý nào với cơ sở dữ liệu. Và Sửa đổi thông qua chế độ xem (ví dụ: chèn, cập nhật, xóa) không được phép. Chỉ là một tập hợp các bảng logic


1
Trong SQL Server, bạn có thể sửa đổi bảng bên dưới thông qua một khung nhìn, nếu nó chỉ tham chiếu một bảng cơ sở. xem tại đây
Kristen Hammack

3

Một khung nhìn giúp chúng ta thoát khỏi việc sử dụng không gian cơ sở dữ liệu mọi lúc. Nếu bạn tạo một bảng, nó được lưu trữ trong cơ sở dữ liệu và giữ một khoảng trống trong suốt sự tồn tại của nó. Thay vào đó, khung nhìn được sử dụng khi một truy vấn chạy do đó tiết kiệm không gian db. Và chúng ta không thể tạo các bảng lớn mọi lúc để tham gia các bảng khác nhau mặc dù chúng ta có thể nhưng nó phụ thuộc vào mức độ lớn của bảng để tiết kiệm không gian. Vì vậy, xem chỉ tạm thời tạo một bảng với việc tham gia các bảng khác nhau trong thời gian chạy. Các chuyên gia, xin vui lòng sửa cho tôi nếu tôi sai.


2

Bàn:

Bảng lưu trữ dữ liệu trong cơ sở dữ liệu và chứa dữ liệu.

Lượt xem:

Chế độ xem là bảng ảo, chỉ chứa các trường (cột) và không chứa dữ liệu (hàng) sẽ được đóng khung trong thời gian chạy Chế độ xem được tạo từ một hoặc nhiều bảng bằng cách nối, với các cột được chọn. Lượt xem được tạo để ẩn một số cột khỏi người dùng vì lý do bảo mật và để ẩn thông tin tồn tại trong cột. Lượt xem giảm nỗ lực viết truy vấn để truy cập các cột cụ thể mỗi lần Thay vì nhấn truy vấn phức tạp vào cơ sở dữ liệu mỗi lần, chúng tôi có thể sử dụng chế độ xem


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.