Vizualizări MySQL: Cum să creați vizualizare din tabele cu exemple

Cuprins:

Anonim

Ce sunt vizualizările în MySQL?

VIEWS sunt tabele virtuale care nu stochează date proprii, dar 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. O vizualizare MySQL poate afișa date dintr-un tabel sau mai multe tabele.

Sintaxa MySQL Views

Să vedem acum sintaxa de bază utilizată pentru a crea o vizualizare în MySQL.

CREATE VIEW `view_name` AS SELECT statement;

UNDE

  • „CREATE VIEW` view_name` ” spune serverului MySQL să creeze un obiect view în baza de date numită` view_name`
  • „Instrucțiunea AS SELECT” este instrucțiunile SQL care trebuie ambalate în vizualizările MySQL. 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

Urmează un proces pas cu pas pentru a crea vizualizarea în MySQL:

Să creăm acum prima noastră vizualizare folosind „myflixdb” vom crea o vizualizare simplă care restricționează coloanele văzute în tabelul membrilor.

Să presupunem că cerințele de autorizare indică faptul că departamentul de conturi poate vedea doar numărul membrilor, numele și sexul din tabelul membrilor. Pentru a realiza acest lucru, puteți crea un VIEW -

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

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.

Rețineți că obiectul accounts_v_members este acum vizibil în obiectele vizualizărilor bazei de date. Să executăm acum o instrucțiune SELECT care selectează toate câmpurile din vizualizare așa cum se arată în exemplul de mai jos MySQL create view.

SELECT * FROM `accounts_v_members`;

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ă dorim să vedem instrucțiunile SQL care alcătuiesc o anumită vizualizare, putem folosi scriptul prezentat mai jos pentru a face acest lucru.

AFIȘAȚI CREAȚI VIZUALA `accounts_v_members`;

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

Alăturări și vizualizări în MySQL

Să vedem acum un exemplu destul de complex care implică mai multe tabele și utilizează îmbinări.

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

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 denumită 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 workbench î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 trebuit să scriem interogarea complexă ÎNREGISTRARE 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 regulată ca orice alt tabel obișnuit. Vizualizarea poate fi apelată de oriunde din sistemul de aplicații care rulează deasupra myflixdb.

Eliminarea vizualizărilor în MySQL

Comanda DROP poate fi utilizată pentru a șterge o vizualizare din baza de date care nu mai este necesară. Sintaxa de bază pentru a renunța la o vizualizare este următoarea.

DROP VIEW ` general_v_movie_rentals `;

De ce să folosiți vizualizări?

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

  • În cele din urmă, vă veți folosi cunoștințele SQL, pentru a crea aplicații, care vor utiliza o bază de date pentru cerințele de date. Este recomandat să utilizați VIEWS ale structurii tabelului original în aplicația dvs. în loc să utilizați tabelele în sine. Acest lucru vă asigură că, atunci când refacturați DB-ul, codul dvs. vechi va vedea schema originală prin vizualizare fără a rupe aplicația.
  • VIEWS mărește 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, utilizează 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 eroare și codul dvs. va fi mai ușor de citit.
  • VIEWS ajută la securitatea datelor. Puteți utiliza vizualizări pentru a afișa utilizatorilor numai informații autorizate și pentru a ascunde date sensibile, cum ar fi numerele cardului de credit.

rezumat

  • Vizualizările sunt tabele virtuale; nu conțin datele returnate. Datele sunt stocate în tabelele la care se face referire în instrucțiunea SELECT.
  • Vizualizările îmbunătățesc securitatea bazei de date, arătând doar datele intenționate utilizatorilor autorizați. Acestea ascund date sensibile.
  • Vizualizările vă ușurează viața, deoarece nu aveți interogări de scriere complexe de mai multe ori.
  • Este posibil să utilizați INSERT, UPDATE și DELETE pe VIEW. Aceste operații 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 trimitere. În mod ideal, nu ar trebui să utilizați VIEWS pentru actualizare.