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.