MySQL Pohledy: Jak vytvořit pohled z tabulek s příklady

V čem jsou zhlédnutí MySQL?

POHLEDY jsou virtuální tabulky, které neukládají žádná vlastní data, ale zobrazují data uložená v jiných tabulkách. Jinými slovy, VIEWS nejsou nic jiného než SQL dotazy. Pohled může obsahovat všechny nebo několik řádků z tabulky. A MySQL může zobrazit data z jedné tabulky nebo z mnoha tabulek.

MySQL Zobrazení syntaxe

Podívejme se nyní na základní syntaxi použitou k vytvoření pohledu v MySQL.

CREATE VIEW `view_name` AS SELECT statement;

KDE

  • "VYTVOŘIT ZOBRAZENÍ `název_zobrazení`" vypráví MySQL serveru k vytvoření objektu pohledu v databázi s názvem `název_zobrazení`
  • „Příkaz AS SELECT“ je příkazy SQL, které mají být zabaleny do MySQL Pohledy. Může to být příkaz SELECT, který může obsahovat data z jedné tabulky nebo více tabulek.

Jak vytvářet pohledy v MySQL

Následuje krok za krokem proces vytvoření zobrazení MySQL:

Krok 1) Vytvořte náš první pohled pomocí „myflixdb“

Pojďme nyní vytvořit náš první pohled pomocí „myflixdb“, vytvoříme jednoduchý pohled, který omezí sloupce zobrazené v tabulce členů.

Předpokládejme, že autorizační požadavky uvádějí, že účetní oddělení může vidět pouze číslo člena , jméno a pohlaví z tabulky člena. Chcete-li toho dosáhnout, můžete vytvořit VIEW –

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

Krok 2) Rozšíření uzlu zobrazení

Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb a rozšíření uzlu zobrazení v průzkumníku databáze nám dává následující výsledky.

Vytvořit pohledy v MySQL

Všimněte si, že objekt accounts_v_members je nyní viditelný v objektech zobrazení databáze.

Krok 3) Proveďte příkaz SELECT

Nyní provedeme a příkaz SELECT který vybere všechna pole ze zobrazení, jak je znázorněno níže MySQL vytvořit příklad zobrazení.

SELECT * FROM `accounts_v_members`;

Krok 4) Spusťte skript

Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb nám poskytuje následující výsledky uvedené níže.

membership_number full_names gender
1 Janet Jones Female
2 Janet Smith Jones Female
3 Robert Phil Male
4 Gloria Williams Female
5 Leonard Hofstadter Male
6 Sheldon Cooper Male
7 Rajesh Koothrappali Male
8 Leslie Winkle Male
9 Howard Wolowitz Male

Byly vráceny pouze autorizované sloupce pro účetní oddělení. Další podrobnosti nalezené v tabulce členů byly skryty.

Pokud chceme vidět příkazy SQL, které tvoří konkrétní pohled, můžeme k tomu použít níže uvedený skript.

SHOW CREATE VIEW `accounts_v_members`;

Spuštěním výše uvedeného skriptu získáte název pohledu a příkazy SQL SELECT použité k vytvoření pohledu.

Připojí se a zobrazí se MySQL

Podívejme se nyní na poměrně složitý příklad, který zahrnuje více tabulek a použití se připojí.

Vytvořený JOIN, který získává informace ze tří (3) tabulek, jmenovitě členové, filmy a půjčovny filmů, zabalíme. Níže je skript, který nám toho pomůže dosáhnout.

CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;

Spuštěním výše uvedených skriptů se v naší myflixdb vytvoří pohled s názvem general_v_movie_rentals

Nyní vybereme všechna pole z tabulky s názvem general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Spuštění výše uvedeného skriptu v MySQL ponk proti myflixdb nám dává následující výsledky uvedené níže.

membership_number full_names title transaction_date return_date
1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012
1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012
3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012
2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012
3 Robert Phil X-Men 23-06-2012 28-06-2012

Všimněte si, že jsme nemuseli psát složitý dotaz JOIN, abychom získali informace o členech, filmech a podrobnostech o výpůjčkách filmů. Jednoduše jsme použili pohled v běžném příkazu SELECT jako jakoukoli jinou běžnou tabulku. Pohled lze volat odkudkoli v aplikačním systému běžícím na myflixdb.

Poklesping Zobrazení v MySQL

Příkaz DROP lze použít k odstranění pohledu z databáze to již není vyžadováno. Základní syntaxe pro zrušení pohledu je následující.

DROP VIEW ` general_v_movie_rentals `;

Proč používat pohledy?

Zobrazení můžete chtít používat především z následujících 3 důvodů

  • Nakonec využijete svůj SQL znalostí, vytvářet aplikace, které budou využívat databázi pro požadavky na data. Doporučuje se, abyste místo tabulek samotných používali ve své aplikaci VIEWS původní struktury tabulky. To zajišťuje, že když refaktorujete svou DB, váš starší kód uvidí původní schéma prostřednictvím zobrazení, aniž by došlo k porušení aplikace.
  • ZOBRAZENÍ zvyšují opětovnou použitelnost. Nebudete muset vytvářet složité dotazy zahrnující spojení opakovaně. Veškerá složitost je převedena do jediného řádku dotazu pomocí VIEWS. Takovýto zhuštěný kód bude snazší integrovat do vaší aplikace. Tím se eliminuje možnost překlepů a váš kód bude čitelnější.
  • VIEWS pomáhají v zabezpečení dat. Pomocí zobrazení můžete uživatelům zobrazovat pouze autorizované informace a skrýt citlivá data, jako jsou čísla kreditních karet.

Shrnutí

  • Pohledy jsou virtuální tabulky; neobsahují data, která jsou vrácena. Data jsou uložena v tabulkách, na které odkazuje příkaz SELECT.
  • Pohledy zlepšují zabezpečení databáze tím, že oprávněným uživatelům zobrazují pouze zamýšlená data. Skrývají citlivá data.
  • Pohledy usnadňují život, protože nemusíte znovu a znovu psát složité dotazy.
  • V VIEW je možné použít INSERT, UPDATE a DELETE. Tyto operace změní podkladové tabulky VIEW. Jediná úvaha je, že VIEW by měl obsahovat všechny sloupce NOT NULL tabulek, na které odkazuje. V ideálním případě byste pro aktualizaci neměli používat VIEWS.

Shrňte tento příspěvek takto: