Tworzenie WIDOKÓW SQL: objaśnienie krok po kroku

Używamy SQL lub Structured Query Language do komunikacji z relacyjną bazą danych i tworzenia widoków SQL.

Czym są widoki SQL? Są to wirtualne tabele, które łączą i przechowują dane z rzeczywistych tabel bazy danych tworzonych przez użytkownika. Z kolei uzyskujesz bezpieczny i uproszczony dostęp do swojego zestawu danych, jednocześnie ukrywając podstawowe struktury tabel i implementacje.

Jak to działa? Wiesz już, że zapytania SQL służą do tworzenia widoków SQL. Gdy tworzony jest widok SQL, podstawowe zapytanie SQL jest przechowywane. Gdy używasz zapytania SQL do wyszukiwania danych z wielu tabel, zapytanie jest wykonywane i pomaga pobrać dane z odpowiednich tabel bazy danych. Podobnie, gdy wysyłasz zapytanie do utworzonego widoku SQL, zapisane zapytanie jest najpierw pobierane, a następnie wykonywane.

Jak przydatne jest tworzenie widoków SQL?

Ponieważ widoki SQL są wspierane przez przechowywane zapytania SQL, pomagają zapewnić bezpieczeństwo bazy danych. Upraszczają również złożone zapytania i zwiększają wydajność zapytań, a także inne korzyści. Zobaczmy, jak tworzenie widoków SQL może być korzystne dla Twojej bazy danych i aplikacji:

# 1. Zapewnia bezpieczeństwo bazy danych

Widoki SQL działają jak wirtualne tabele i ukrywają struktury rzeczywistych tabel bazy danych. Tak więc, patrząc tylko na widok, nie można wiedzieć, ile jest tabel i jakie są różne kolumny w tabeli. Ponadto możesz dodać ograniczenia kontroli dostępu do bazy danych, aby użytkownik mógł wysyłać zapytania tylko do widoku, a nie do rzeczywistych tabel.

#2. Upraszcza złożone zapytania

Często zapytania SQL obejmują wiele tabel ze złożonymi warunkami łączenia. Jeśli często korzystasz z tak złożonych zapytań, możesz wykorzystać możliwości tworzenia widoków SQL. Możesz przechowywać złożone zapytanie w widoku SQL. Dzięki temu możesz po prostu zapytać widok, zamiast uruchamiać całe złożone zapytanie.

#3. Łagodzi zmiany schematu

Jeśli zmienione zostaną podstawowe struktury tabeli, takie jak dodanie lub usunięcie kolumn, widoki pozostaną nienaruszone. Jeśli polegasz na widokach SQL dla wszystkich zapytań, nie musisz się martwić o zmianę schematu. Będąc wirtualnymi tabelami, utworzony widok SQL będzie nadal działał bezproblemowo.

#4. Poprawia wydajność zapytań

Podczas tworzenia widoków SQL aparat bazy danych optymalizuje podstawowe zapytanie przed ich zapisaniem. Zapisane zapytanie działa szybciej niż bezpośrednie uruchomienie tego samego zapytania. Dlatego używanie widoków SQL do wysyłania zapytań do danych zapewnia lepszą wydajność i szybsze wyniki.

Jak tworzyć widoki SQL?

Do tworzenia widoków SQL można użyć polecenia CREATE VIEW. Widok zawiera instrukcję SELECT. Daje to zapytanie, które zostanie zapisane w widoku. Składnia jest następująca:

CREATE VIEW view_name AS 
SELECT 
  column_1, 
  column_2, 
  column_3...
FROM 
  table_name_1, table_name_2
WHERE 
  condition_clause

Zrozummy to na przykładzie. Weź pod uwagę, że utworzyłeś dwie tabele dział i pracownik. Dział posiada nazwę wydziału i jego identyfikator. W związku z tym tabela pracowników zawiera imię i nazwisko oraz identyfikator pracownika wraz z identyfikatorem działu, do którego należy. Tych dwóch tabel użyjesz do utworzenia widoku SQL.

Twórz swoje tabele bazy danych

identyfikator_działunazwa_działu1Finanse2Technologia3BiznesTabela 1: dział

Jeśli używasz MySQLmożesz utworzyć tę tabelę za pomocą następującego zapytania:

CREATE TABLE `department` (
  `department_id` int,
  `department_name` varchar(255),
  PRIMARY KEY (`department_id`)
);

Wstaw dane do utworzonej tabeli przy użyciu poniższego kodu SQL:

INSERT INTO department VALUES (1, 'Finance');
INSERT INTO department VALUES (2, 'Technology');
INSERT INTO department VALUES (3, 'Business');

pracownik_idemployee_namedepartment_id100John3101Mary1102Natalya3103Bruce2Tabela 2: pracownik

Gdy tabela działów jest gotowa i wypełniona danymi, utwórz tabelę pracowników, korzystając z poniższego zapytania MySQL:

CREATE TABLE `employee` (
  `employee_id` INT, 
  `employee_name` VARCHAR(255), 
  `department_id` INT, 
  FOREIGN KEY (`department_id`) REFERENCES department(department_id)
);

Następnie wstaw rekordy pracowników do swojej tabeli. Należy pamiętać, że ponieważ kolumna id_działu zawiera odwołanie do klucza obcego z tabelą działów, nie można wstawić identyfikatora_działu, którego nie ma w drugiej tabeli.

INSERT INTO employee VALUES (100, 'John', 3);
INSERT INTO employee VALUES (101, 'Mary', 1);
INSERT INTO employee VALUES (102, 'Natalya', 3);
INSERT INTO employee VALUES (103, 'Bruce', 1);

Przeszukuj swoje tabele bazy danych

Użyjmy tabel w zapytaniu do bazy danych. Rozważ przypadek, w którym musisz zapytać o identyfikator_pracownika, nazwę_pracownika i nazwę_działu dla wszystkich pracowników. W takim przypadku musisz użyć obu tabel i połączyć je za pomocą wspólnej kolumny, którą jest id_działu. Twoje zapytanie staje się zatem:

SELECT
  employee_id,
  employee_name,
  department_name
FROM 
  employee,
  department
WHERE 
  employee.department_id = department.department_id;

Utwórz swój widok SQL

Może się tak zdarzyć, że często przeglądasz te dane lub odwołujesz się do nich. Oprócz tego z czasem, wraz z większą liczbą rekordów w tabelach, czas wykonywania zapytań zacząłby się wydłużać. W takim scenariuszu można utworzyć widok SQL odpowiadający temu zapytaniu.

Użyj następującego zapytania, aby utworzyć widok o nazwie informacja_pracownika:

CREATE VIEW employee_info AS 
SELECT
  employee_id,
  employee_name, 
  department_name 
FROM 
  employee, 
  department 
WHERE 
  employee.department_id = department.department_id;

Mając ten widok na miejscu, możesz bezpośrednio zapytać o to samo. Twoje zapytanie jest zatem uproszczone do:

SELECT 
  * 
FROM 
  employee_info;

Wysłanie zapytania do widoku SQL daje takie same wyniki, jak uruchomienie pierwotnego zapytania. Jednak Twoje zapytanie jest teraz łatwe w utrzymaniu. Widok ukrywa złożoność zapytania bez żadnych kompromisów w zakresie wyniku lub wydajności.

Jak zamienić widoki SQL?

Jeśli masz widok o określonej nazwie i chcesz go zmodyfikować lub zastąpić, użyj polecenia UTWÓRZ LUB ZAMIEŃ WIDOK. Korzystając z tego, możesz zmodyfikować instrukcję SELECT, która została użyta do utworzenia widoku. W związku z tym dane wyjściowe widoku są zastępowane przy zachowaniu nienaruszonej nazwy widoku. Ponadto tworzysz nowy widok SQL, jeśli nie istnieje.

Widoki SQL można zastąpić za pomocą następującej składni:

CREATE OR REPLACE VIEW view_name AS 
SELECT 
  new_column_1, 
  new_column_2, 
  new_column_3 ...
FROM 
  new_table_name_1, 
  new_table_name_2 ...
WHERE 
  new_condition_clause

Możesz to lepiej zrozumieć na przykładzie. Rozważ dział i tabele pracowników. Tworzony jest z nich widok SQL informacje o_pracownikach, który zawiera kolumny identyfikator_pracownika, nazwa_pracownika i nazwa_działu.

Biorąc pod uwagę kwestie bezpieczeństwa, możesz chcieć usunąć z tego widoku identyfikator_pracownika. Ponadto chciałbyś również zmienić nazwy kolumn, aby ukryć rzeczywiste kolumny bazy danych. Możesz wprowadzić te zmiany w istniejącym widoku, używając następującego zapytania SQL:

CREATE OR REPLACE VIEW employee_info AS
SELECT
  employee_name as name,
  department_name as department
FROM
  employee,
  department
WHERE
  employee.department_id = department.department_id;

Po zastąpieniu widoku uzyskasz inne wyniki, gdy użyjesz tego samego zapytania, którego używałeś wcześniej. Na przykład w wyniku zapytania zobaczysz, że jedna z kolumn została usunięta. Ponadto nazwy kolumn zostały zmodyfikowane odpowiednio z nazwa_pracownika i nazwa_działu na imię i nazwisko oraz dział.

Wykorzystaj moc tworzenia widoków SQL

Tworzenie widoków SQL zapewni Ci nie tylko uproszczenie zapytań i szybsze wyszukiwanie danych, ale także bezpieczeństwo i ochronę przed zmianami schematu. Tworzenie widoków SQL jest dość proste. Możesz wziąć dowolne istniejące zapytanie i przekształcić je w widok SQL.

Skorzystaj z powyższego przewodnika krok po kroku, aby utworzyć widoki SQL i wykorzystać ich zalety. Dzięki widokom SQL można uprościć i zabezpieczyć aplikacje bazodanowe, jednocześnie zwiększając ich wydajność.

Jeśli chcesz zarządzać własnym serwerem SQL, spójrz na SQL Server Management Studio (SSMS).