Pro komunikaci s relační databází a vytváření SQL pohledů používáme SQL nebo Structured Query Language.
Nyní, co jsou zobrazení SQL? Jsou to virtuální tabulky, které kombinují a ukládají data ze skutečných databázových tabulek, které vytvoříte. Na druhé straně získáte bezpečný a zjednodušený přístup ke své datové sadě a zároveň skryjete základní tabulkové struktury a implementace.
Jak to tedy funguje? Již víte, že dotazy SQL se používají k vytváření pohledů SQL. Když je vytvořen pohled SQL, je uložen základní dotaz SQL. Když použijete SQL dotaz k vyhledání dat z více tabulek, dotaz se provede a pomůže načíst data z odpovídajících databázových tabulek. Podobně, když zadáte dotaz na vytvořený pohled SQL, uložený dotaz se nejprve načte a poté provede.
Table of Contents
Jak je užitečné vytváření pohledů SQL?
Vzhledem k tomu, že pohledy SQL jsou podporovány uloženými dotazy SQL, pomáhají zajistit bezpečnost vaší databáze. Kromě jiných výhod také zjednodušují složité dotazy a zvyšují výkon dotazů. Podívejme se, jak může být vytváření SQL pohledů prospěšné pro vaši databázi a vaše aplikace:
#1. Poskytuje zabezpečení databáze
Pohledy SQL fungují jako virtuální tabulky a skrývají struktury skutečných databázových tabulek. Takže pouhým pohledem na pohled není možné zjistit, kolik tabulek tam je a jaké jsou různé sloupce v tabulce. Kromě toho můžete do databáze přidat omezení řízení přístupu, takže uživatel může dotazovat pouze pohled, nikoli skutečné tabulky.
#2. Zjednodušuje složité dotazy
Vaše dotazy SQL často pokrývají více tabulek se složitými podmínkami spojení. Pokud často používáte takové složité dotazy, můžete využít sílu vytváření pohledů SQL. Složitý dotaz můžete uložit do zobrazení SQL. Díky tomu můžete jednoduše dotazovat pohled a nemusíte spouštět celý složitý dotaz.
#3. Zmírňuje změny schématu
Pokud se změní vaše základní struktury tabulky, jako je přidání nebo odstranění sloupců, vaše zobrazení zůstanou nedotčena. Pokud se u všech svých dotazů spoléháte na své pohledy SQL, nemusíte se změny schématu obávat. Vzhledem k tomu, že se jedná o virtuální tabulky, váš vytvořený pohled SQL bude i nadále bezproblémově fungovat.
#4. Zlepšuje výkon dotazů
Když vytváříte pohledy SQL, databázový stroj před uložením optimalizuje podkladový dotaz. Uložený dotaz běží rychleji než spouštění stejného dotazu přímo. Použití zobrazení SQL k dotazování na data vám tedy poskytuje lepší výkon a rychlejší výsledky.
Jak vytvořit SQL pohledy?
Pro vytváření SQL pohledů můžete použít příkaz CREATE VIEW. Pohled obsahuje příkaz SELECT. Tím získáte dotaz, který bude uložen v zobrazení. Syntaxe je následující:
CREATE VIEW view_name AS SELECT column_1, column_2, column_3... FROM table_name_1, table_name_2 WHERE condition_clause
Pojďme to pochopit na příkladu. Zvažte, že jste vytvořili dvě tabulky oddělení a zaměstnance. Oddělení nese název oddělení a jeho IČ. V souladu s tím tabulka zaměstnanců obsahuje jméno a ID zaměstnance spolu s ID oddělení, do kterého patří. Tyto dvě tabulky použijete k vytvoření zobrazení SQL.
Vytvořte si databázové tabulky
department_iddepartment_name1Finance2Technology3BusinessTabulka 1: oddělení
Pokud používáte MySQLmůžete tuto tabulku vytvořit pomocí následujícího dotazu:
CREATE TABLE `department` ( `department_id` int, `department_name` varchar(255), PRIMARY KEY (`department_id`) );
Vložte data do tabulky, kterou jste vytvořili pomocí níže uvedeného SQL:
INSERT INTO department VALUES (1, 'Finance'); INSERT INTO department VALUES (2, 'Technology'); INSERT INTO department VALUES (3, 'Business');
zaměstnanec_idemployee_namedepartment_id100John3101Mary1102Natalya3103Bruce2Tabulka 2: zaměstnanec
S připravenou tabulkou oddělení a naplněnou daty vytvořte tabulku zaměstnanců pomocí níže uvedeného dotazu MySQL:
CREATE TABLE `employee` ( `employee_id` INT, `employee_name` VARCHAR(255), `department_id` INT, FOREIGN KEY (`department_id`) REFERENCES department(department_id) );
Dále vložte záznamy zaměstnanců do tabulky. Mějte na paměti, že protože sloupec department_id obsahuje odkaz na cizí klíč s tabulkou oddělení, nemůžete vložit department_id, který není přítomen v jiné tabulce.
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);
Dotaz na vaše databázové tabulky
Použijme tabulky v databázovém dotazu. Zvažte případ, kdy se musíte dotazovat na zaměstnanec_id, zaměstnanec_jméno a název_oddělení pro všechny zaměstnance. V tomto případě je potřeba použít obě tabulky a spojit je pomocí společného sloupce, kterým je department_id. Váš dotaz tedy zní:
SELECT employee_id, employee_name, department_name FROM employee, department WHERE employee.department_id = department.department_id;
Vytvořte si svůj SQL pohled
Nyní se může stát, že tato data často vyhledáváte nebo na ně odkazujete. Kromě toho se časem s více záznamy ve vašich tabulkách začne prodlužovat doba dotazování. V takovém scénáři můžete vytvořit pohled SQL odpovídající tomuto dotazu.
Pomocí následujícího dotazu vytvořte pohled s názvem zaměstnanec_info:
CREATE VIEW employee_info AS SELECT employee_id, employee_name, department_name FROM employee, department WHERE employee.department_id = department.department_id;
S tímto zobrazením na místě můžete přímo dotazovat totéž. Váš dotaz je tedy zjednodušen na:
SELECT * FROM employee_info;
Dotazování zobrazení SQL poskytuje stejný výstup jako spuštění původního dotazu. Váš dotaz je však nyní snadno udržovatelný. Zobrazení skryje složitost vašeho dotazu bez jakéhokoli kompromisu ve výsledku nebo výkonu.
Jak nahradit SQL pohledy?
Pokud máte pohled s určitým názvem a chcete jej upravit nebo nahradit, použijte příkaz CREATE OR REPLACE VIEW. Pomocí tohoto můžete upravit příkaz SELECT, který byl použit k vytvoření pohledu. Váš výstup pohledu je tedy nahrazen, přičemž název pohledu zůstává nedotčen. Navíc vytvoříte nové zobrazení SQL, pokud neexistuje.
Pohledy SQL můžete nahradit pomocí následující syntaxe:
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
Lépe to pochopíte na příkladu. Zvažte tabulky oddělení a zaměstnanců. Z nich je vytvořen SQL pohled zaměstnanec_info, který obsahuje sloupce zaměstnanec_id, zaměstnanec_jméno a název_oddělení.
Vzhledem k bezpečnostním obavám možná budete chtít z tohoto zobrazení odstranit zaměstnanec_id. Kromě toho byste také chtěli změnit názvy sloupců tak, aby skryly skutečné sloupce databáze. Tyto změny ve stávajícím pohledu můžete provést pomocí následujícího dotazu 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;
Jakmile bude zobrazení nahrazeno, získáte jiné výsledky, když použijete stejný dotaz, jaký jste používali dříve. Například ve výsledku dotazu zjistíte, že jeden ze sloupců byl vypuštěn. Kromě toho byly názvy sloupců upraveny z zaměstnanec_jméno a název_oddělení na jméno a oddělení, v tomto pořadí.
Využijte sílu vytváření SQL pohledů
Vytvořením SQL pohledů získáte nejen zjednodušené dotazy a rychlejší vyhledávání dat, ale také zabezpečení a ochranu proti změnám schématu. Vytváření SQL pohledů je poměrně jednoduché. Můžete vzít jakýkoli existující dotaz, který máte, a přeměnit jej na zobrazení SQL.
Pomocí výše uvedeného podrobného průvodce vytvořte pohledy SQL a využijte jejich výhod. Pomocí SQL pohledů můžete své databázové aplikace zjednodušit a zabezpečit a zároveň zvýšit jejich výkon.
Pokud chcete spravovat svůj vlastní SQL server, podívejte se na SQL Server Management Studio (SSMS).