MySQL Vizualizări: Cum se creează o vizualizare din tabele cu exemple

În ce sunt Views MySQL?

vEDERI sunt tabele virtuale care nu stochează date proprii, ci afișează date stocate în alte tabele. Cu alte cuvinte, VIEWS nu sunt altceva decât interogări SQL. O vizualizare poate conține toate sau câteva rânduri dintr-un tabel. A MySQL vizualizarea poate afișa date dintr-un tabel sau mai multe tabele.

MySQL Sintaxa vizualizărilor

Să ne uităm acum la sintaxa de bază folosită pentru a crea o vizualizare în MySQL.

CREATE VIEW `view_name` AS SELECT statement;

UNDE

  • „CREATE VIEW `view_name`” spune MySQL server pentru a crea un obiect de vizualizare în baza de date numit `view_name`
  • „Instrucțiunea AS SELECT” sunt instrucțiunile SQL care trebuie împachetate în MySQL Vizualizări. Poate fi o instrucțiune SELECT care poate conține date dintr-un tabel sau mai multe tabele.

Cum se creează vizualizări în MySQL

Următorul este un proces pas cu pas pentru a crea vizualizarea în MySQL:

Pas 1) Creați prima noastră vizualizare folosind „myflixdb”

Acum să creăm prima noastră vizualizare folosind „myflixdb”, vom crea o vizualizare simplă care restricționează coloanele văzute în tabelul de membri.

Să presupunem că cerințele de autorizare spun că departamentul de conturi poate vedea numai numărul, numele și sexul membrului din tabelul membrului. Pentru a realiza acest lucru, puteți crea o VIEW –

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

Pas 2) Extinderea nodului de vizualizări

Executarea scriptului de mai sus în MySQL workbench împotriva myflixdb și extinderea nodului de vizualizări în exploratorul bazei de date ne oferă următoarele rezultate.

Creați vizualizări în MySQL

Rețineți că obiectul accounts_v_members este acum vizibil în obiectele vizualizărilor bazei de date.

Pas 3) Executați o instrucțiune SELECT

Să executăm acum a instrucțiunea SELECT care selectează toate câmpurile din vizualizare, așa cum se arată în mai jos MySQL crearea unui exemplu de vizualizare.

SELECT * FROM `accounts_v_members`;

Pas 4) Executați un script

Executarea scriptului de mai sus în MySQL Workbench împotriva myflixdb ne oferă următoarele rezultate prezentate mai jos.

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

Au fost returnate numai coloanele autorizate pentru departamentul de conturi. Alte detalii găsite în tabelul membrilor au fost ascunse.

Dacă vrem să vedem instrucțiunile SQL care alcătuiesc o anumită vizualizare, putem folosi scriptul prezentat mai jos pentru a face asta.

SHOW CREATE VIEW `accounts_v_members`;

Executarea scriptului de mai sus vă oferă numele vizualizării și instrucțiunile SQL SELECT utilizate pentru a crea vizualizarea.

Aderări și vizualizări în MySQL

Să ne uităm acum la un exemplu destul de complex care implică mai multe tabele și utilizări se alătură.

Vom împacheta JOIN-ul creat care obține informații din trei (3) tabele și anume membri, filme și închirieri de filme. Mai jos este scenariul care ne ajută să realizăm asta.

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`;

Executarea scripturilor de mai sus creează vizualizarea numită general_v_movie_rentals în myflixdb

Să selectăm acum toate câmpurile dintr-un tabel numit general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Executarea scriptului de mai sus în MySQL banc de lucru împotriva myflixdb ne oferă următoarele rezultate prezentate mai jos.

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

Rețineți că nu a fost nevoie să scriem interogarea complexă JOIN pentru a obține informații despre membri, filme și detalii despre închirierea filmelor. Pur și simplu am folosit vizualizarea într-o instrucțiune SELECT obișnuită ca orice alt tabel obișnuit. Vederea poate fi apelată de oriunde în sistemul de aplicații care rulează deasupra myflixdb.

Introducerea vizualizărilor în MySQL

Comanda DROP poate fi folosită pentru a șterge o vizualizare din Baza de date asta nu mai este necesar. Sintaxa de bază pentru a elimina o vizualizare este următoarea.

DROP VIEW ` general_v_movie_rentals `;

De ce să folosiți vizualizările?

Poate doriți să utilizați vizualizările în principal din următoarele 3 motive

  • În cele din urmă, vă veți folosi SQL cunoștințe , pentru a crea aplicații , care vor folosi o bază de date pentru cerințele de date. Este recomandat să utilizați VIEWS ale structurii originale a tabelului în aplicația dvs. în loc să utilizați tabelele în sine. Acest lucru vă asigură că atunci când vă refactorizați DB, codul dvs. moștenit va vedea schema originală prin vizualizare fără a întrerupe aplicația.
  • VIEWS măresc reutilizarea. Nu va trebui să creați interogări complexe care implică îmbinări în mod repetat. Toată complexitatea este convertită într-o singură linie de interogare folosind VIEWS. Un astfel de cod condensat va fi mai ușor de integrat în aplicația dvs. Acest lucru va elimina șansele de greșeli de scriere și codul dvs. va fi mai lizibil.
  • VIEWS ajută la securitatea datelor. Puteți utiliza vizualizările pentru a afișa numai informații autorizate utilizatorilor și pentru a ascunde datele sensibile, cum ar fi numerele cărților de credit.

Rezumat

  • Vizualizările sunt tabele virtuale; nu conțin datele care sunt returnate. Datele sunt stocate în tabelele la care se face referire în instrucțiunea SELECT.
  • Vizualizările îmbunătățesc securitatea bazei de date afișând numai datele dorite utilizatorilor autorizați. Ele ascund datele sensibile.
  • Vizualizările vă fac viața mai ușoară, deoarece nu aveți nevoie să scrieți interogări complexe în mod repetat.
  • Este posibil să utilizați INSERT, UPDATE și DELETE pe o VIEW. Aceste operațiuni vor schimba tabelele de bază ale VIEW. Singura considerație este că VIEW ar trebui să conțină toate coloanele NOT NULL ale tabelelor la care face referire. În mod ideal, nu ar trebui să utilizați VIEWS pentru actualizare.