Vytváření SQL VIEWS: Vysvětleno krok za krokem

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.

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.

  9 nejlepších původních hororových filmů a televizních pořadů Netflix ke streamování (červen 2020)

#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

  3 Hosting serveru Frozen Flame pro plynulé hraní

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 zálohovat hry a nastavení Oculus a přesunout instalaci na nové místo

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).