Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Co to jest widok w Oracle?

Widok w Oracle a w innych systemach baz danych jest po prostu reprezentacją instrukcji SQL, która jest przechowywana w pamięci, dzięki czemu można ją łatwo ponownie wykorzystać. Na przykład, jeśli często wysyłamy następujące zapytanie

SELECT customerid, customername FROM customers WHERE countryid='US';

Aby utworzyć widok, użyj polecenia CREATE VIEW jak widać w tym przykładzie

CREATE VIEW view_uscustomers
AS
SELECT customerid, customername FROM customers WHERE countryid='US';

To polecenie tworzy nowy widok o nazwie view_uscustomers. Należy zauważyć, że to polecenie nie powoduje w ogóle przechowywania niczego w bazie danych, z wyjątkiem wpisu słownika danych, który definiuje ten widok. Oznacza to, że za każdym razem, gdy wysyłasz zapytanie do tego widoku, Oracle musi wyjść i wykonać widok oraz zapytać o dane bazy danych. Możemy zapytać o widok w ten sposób:

SELECT * FROM view_uscustomers WHERE customerid BETWEEN 100 AND 200;

A Oracle przekształci zapytanie w to:

SELECT * 
FROM (select customerid, customername from customers WHERE countryid='US') 
WHERE customerid BETWEEN 100 AND 200

Zalety korzystania z widoków

  • Wspólność używanego kodu. Ponieważ widok jest oparty na jednym wspólnym zestawie SQL, oznacza to, że gdy jest wywoływany, jest mniej prawdopodobne, że będzie wymagał parsowania.
  • Bezpieczeństwo. Widoki były od dawna używane do ukrywania tabel, które faktycznie zawierają dane, których dotyczy zapytanie. Widoki mogą być również używane do ograniczania kolumn, do których dany użytkownik ma dostęp.
  • Wypychanie predykatów

Zaawansowane tematy można znaleźć w tym artykule „Jak tworzyć widoki i zarządzać nimi w Oracle”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wartości oddzielone przecinkami w Oracle

  2. Usuwanie zduplikowanych wierszy z tabeli w Oracle

  3. Dynamiczna partycja tabeli Oracle

  4. nhibernate, wywołaj funkcję w Oracle, która zwraca refcursor sys

  5. Dlaczego nie mogę tworzyć wyzwalaczy na obiektach należących do SYS?