Różnica między widokiem a tabelą w sql


140

Możliwa kopia:
różnica między widokami a tabelami w wydajności

Jaka jest główna różnica między widokiem a tabelą w języku SQL. Czy jest jakaś korzyść z używania widoków zamiast tabel?


1
Możliwy duplikat różnicy między
widokami

6
Nie wygląda na duplikat. Link do posta zawiera pytania dotyczące wydajności / wydajności. Ten post zawiera pytania o to, czym różnią się one jako typy danych, zgodnie z wybraną odpowiedzią.
Ð ..

Odpowiedzi:


204

Tabela zawiera dane, widok to po prostu SELECTzestawienie, które zostało zapisane w bazie danych (mniej więcej w zależności od bazy danych).

Zaletą widoku jest to, że może łączyć dane z kilku tabel, tworząc w ten sposób nowy widok. Załóżmy, że masz bazę danych z wynagrodzeniami i musisz wykonać na niej złożone zapytania statystyczne.

Zamiast wysyłać złożone zapytanie do bazy danych przez cały czas, możesz zapisać zapytanie jako widok, a następnie SELECT * FROM view


12
Tak więc widok jest w rzeczywistości tabelą utworzoną przez instrukcję select. Widok jest przechowywany i można uzyskać do niego dostęp, więc jaka byłaby różnica między tworzeniem nowej tabeli z tymi informacjami zamiast widoku.
Doug Hauf

25
Możesz myśleć o widoku jako o „zapisanej instrukcji Select”, którą możesz powtórzyć. To naprawdę nie jest stół; chociaż niektóre bazy danych pozwalają na tworzenie widoków, które mają pod spodem prawdziwą tabelę, tak naprawdę jest to tylko SELECTinstrukcja, która zwraca wyniki.
Aaron Digulla

1
coś do odnotowania: niektóre widoki list systemu baz danych wraz z tabelami „pokaż tabele”; Komenda.
Dexter

1
@ShwetabhShekhar To zależy od Twojej bazy danych i typu widoku. W najprostszej formie baza danych wykona kod SQL tak, jakbyś właśnie wysłał całość. W takim przypadku po prostu oszczędzasz wysyłanie wielu bajtów raz po raz. Niektóre bazy danych mogą wykonać zapytanie i zapisać wynik w (rzeczywistej) tabeli. Następnie musisz jakoś rozwiązać problemy, o których wspomniałeś. Sprawdź w dokumentacji DB, jak to zrobić.
Aaron Digulla

1
@FoxDeploy Tak, ponieważ ten widok w żaden sposób nie pomaga. Przydatnymi scenariuszami byłby widok z ograniczonymi uprawnieniami lub widok, który wybiera tabelę z innego schematu w tej samej lub innej bazie danych (tabeli zdalnej).
Aaron Digulla,

37

Tabela: Tabela jest wstępną pamięcią do przechowywania danych i informacji w RDBMS. Tabela jest zbiorem powiązanych wpisów danych i składa się z kolumn i wierszy.

Widok: widok to wirtualna tabela, której zawartość jest definiowana przez zapytanie. O ile nie jest indeksowany, widok nie istnieje jako przechowywany zestaw wartości danych w bazie danych. Zalety w stosunku do stołu są

  • Możemy łączyć kolumny / wiersze z wielu tabel lub innego widoku i mieć skonsolidowany widok.
  • Widoki mogą służyć jako mechanizmy bezpieczeństwa, umożliwiając użytkownikom dostęp do danych za pośrednictwem widoku, bez przyznawania użytkownikom uprawnień do bezpośredniego dostępu do bazowych tabel widoku
  • Działa jako abstrakcyjna warstwa dla dalszych systemów, więc żadna zmiana w schemacie nie jest ujawniana, a zatem nie ma wpływu na dalsze systemy.

21

Widok to wirtualny stół. Widok składa się z wierszy i kolumn, podobnie jak tabela. Różnica między widokiem a tabelą polega na tym, że widoki są definicjami utworzonymi na podstawie innych tabel (lub widoków) i same nie przechowują danych. Jeśli dane zmieniają się w tabeli źródłowej, ta sama zmiana jest odzwierciedlana w widoku. Widok można zbudować na jednej tabeli lub wielu tabelach. Można go również zbudować na innym widoku. Na stronie SQL Create View zobaczymy, jak można zbudować widok.

Widoki mają następujące zalety:

  1. Łatwość użycia: widok ukrywa złożoność tabel bazy danych przed użytkownikami końcowymi. Zasadniczo możemy myśleć o widokach jako o warstwie abstrakcji na wierzchu tabel bazy danych.

  2. Oszczędność miejsca: widoki zajmują bardzo mało miejsca do przechowywania, ponieważ nie przechowują rzeczywistych danych.

  3. Dodatkowe bezpieczeństwo danych: widoki mogą zawierać tylko niektóre kolumny w tabeli, tak aby tylko kolumny niewrażliwe były uwzględniane i widoczne dla użytkownika końcowego. Ponadto niektóre bazy danych pozwalają widokom mieć różne ustawienia bezpieczeństwa, ukrywając w ten sposób poufne dane przed wścibskimi oczami.

Odpowiedź od: http://www.1keydata.com/sql/sql-view.html


5

W związku z tym nie ma żadnego bezpośredniego ani fizycznego związku z bazą danych. Modyfikacja za pomocą widoku (np. Wstawianie, aktualizowanie, usuwanie) jest niedozwolona, ​​to tylko logiczny zestaw tabel


1
W SQL Server można modyfikować tabelę bazową za pomocą widoku, jeśli odwołuje się ona tylko do jednej tabeli podstawowej. patrz tutaj
Kristen Hammack

3

Widok pomaga nam pozbyć się ciągłego zajmowania miejsca w bazie danych. Jeśli utworzysz tabelę, jest ona przechowywana w bazie danych i zajmuje trochę miejsca przez całe swoje istnienie. Zamiast tego widok jest używany po uruchomieniu zapytania, co pozwala zaoszczędzić miejsce w db. I nie możemy tworzyć dużych stołów przez cały czas, łącząc różne stoły, chociaż moglibyśmy, ale zależy to od tego, jak duży jest stół, aby zaoszczędzić miejsce. Więc przeglądaj tylko tymczasowo utwórz tabelę z dołączeniem do innego stołu w czasie wykonywania. Eksperci, proszę mnie poprawić, jeśli się mylę.


2

Stół:

Tabela przechowuje dane w bazie danych i zawiera dane.

Widok:

Widok jest wyimaginowaną tabelą, zawiera tylko pola (kolumny) i nie zawiera danych (wiersza), które zostaną umieszczone w ramkach w czasie wykonywania. Widoki utworzone z jednej lub więcej niż jednej tabeli przez łączenia, z wybranymi kolumnami. Widoki są tworzone w celu ukrycia niektórych kolumn przed użytkownikiem ze względów bezpieczeństwa oraz w celu ukrycia informacji znajdujących się w kolumnie. Widoki zmniejszają wysiłek związany z pisaniem zapytań w celu uzyskania dostępu do określonych kolumn za każdym razem Zamiast uderzania złożonego zapytania do bazy danych za każdym razem, możemy użyć widoku


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.