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.
Spis treści:
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).