SQL - pohľady: Rozdiel medzi revíziami
 (Vytvorená stránka „{{Skripta_dbs}} {{Draft}} Pohľad (view) je uložený dotazu, prístupný ako virtuálna tabuľka. Pohľad je vlastne výsledkom SQL dotazu. Na rozdiel od bežných tabulie…“)  | 
			
(Žiaden rozdiel) 
 | 
Verzia zo dňa a času 13:58, 19. október 2010
Pohľad (view) je uložený dotazu, prístupný ako virtuálna tabuľka. Pohľad je vlastne výsledkom SQL dotazu. Na rozdiel od bežných tabuliek v relačnej databáze, pohľad nepredstavuje štandardnú tabuľku, ale jedná sa o dynamické, virtuálne tabuľky vypočítaných alebo získaných z údajov z databázy. Zmena údajov v zdrojovej tabuľke (odkiaľ pohľad čerpá údaje) spôsobí zmenu údajov, ktoré poskytuje pohľad.
Vlastnosti pohľadov
Pohľad má nasledujúce výhody:
- Zobrazenie môže reprezentovať podmnožinu dát obsiahnutých v tabuľke
 - Pohľad môže jednoducho spojiť viacero tabuliek do jednej virtuálnej tabuľky
 - Pohľad môže byť použitý ako agregácia tabuliek, kde vo výslednej virtuálnej tabuľke (v pohľade) môžu byť vypočítavané polia
 - Pohľad sa navonok javí ako jednoduchá tabuľka, aj keď jej obsahom môže byť komplikovaný dotaz.
 - Pohľad zaberá len veľmi málo miesta. Databáza obsahuje len definíciu pohľadu, nie kópie všetkých údajov, ktoré prezentuje.
 - Pohľad zabezpečuje väčšiu bezpečnosť (prístup len ne čítanie)
 - Zobrazenie je možné obmedziť stupeň expozície tabuľky alebo tabuliek k vonkajšiemu svetu
 
Vytvorenie pohľadu
Pre vytvorenie pohľadu môžeme použiť SQL nasledovnú syntax:
CREATE
    [OR REPLACE]
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
kde:
- select_statement - SQL výberový príkaz SELECT, na základe ktorého sa pohľad vytvára.
 - Klauzula ALGORITHM ovplyvňuje to, ako MySQL spracováva pohľad.
 - DEFINER určuje vlastníka, resp. tvorcu pohľadu.
 - Klauzula SQL SECURITY definuje prístupové pravidlá pre daný pohľad.
 - Klauzula WITH CHECK OPTION môže obmedzovať vkladanie alebo aktualizáciu údajov v zdrojových tabuľkách.[1]
 
Poznámka: Pre tvorbu pohľadov je potrebné mať oprávnenia k zápisu údajov do databázy mysql.
Pohľady praktocky
Zoberme si príklad z časti SQL príkazy.
Úloha: Vytvorte pohľad z výsledkov dotazu "Akými jazykmi sa hovorí v hlavných mestách európy?".
SQL dotaz pre výber požadovaných údajov je
   SELECT country.name AS Krajina,city.Name AS Mesto,LANGUAGE, continent 
   FROM countrylanguage, city, country
   WHERE Continent = 'Europe'
         AND Capital = ID
         AND countrylanguage.CountryCode = city.CountryCode
         AND country.code=city.CountryCode
         AND isOfficial = true
Po spustení SQL dotazu v prostredí phpMyAdmin dostaneme výsledok dotazu. Pod tabuľkou z výsledkami je časť "Operácie s výsledkami dopytu".
Vyberieme "CREATE VIEW". Otvorí sa okno, kde je treba vyplniť doplňujúce informácie:
- ALGORITHM - spôsob vytvárania pohľadu. Ponecháme prednastavenú hodnotu UNNDEFINED.
 - VIEW name - názov pohľadu: zvolíme ľubovolne (bez medzier!)
 - Názvy stĺpcov - musíme uriť názvy výsledných stĺpcov
 
Výsledokm je SQL dotaz:
  CREATE  ALGORITHM = UNDEFINED VIEW `HlavneMestaEuropy` (krajina,mesto,jazyk,kontinent)
         AS SELECT country.name AS Krajina, city.Name AS Mesto, LANGUAGE, continent
            FROM countrylanguage, city, country
            WHERE Continent = 'Europe'
            AND Capital = ID
Zdroje a odkazy
- ↑ CREATE VIEW Syntax - http://dev.mysql.com/doc/refman/5.1/en/create-view.html
 

