Pagina 2 din 4
Crearea de vizualizări
Pentru a crea o vizualizare, utilizați instrucțiunea CREATE VIEW, care are următoarea sintaxă:
CREAȚI [SAU ÎNLOCUIRE]
[ALGORITMUL =]
VIEW view_name [(list_coloane]]
AS select_statement
[CU OPȚIONAREA [CASCADED / LOCAL] CHECK OPTION]
view_name este numele vizualizării create. select_statement este o instrucțiune SELECT care selectează datele din tabele și / sau alte vizualizări care vor fi incluse în vizualizare
Instrucțiunea CREATE VIEW conține 4 constructe opționale:
- SAU REPLACE - dacă utilizați această construcție, dacă există o vizualizare cu acest nume, cea veche va fi ștearsă, iar cea nouă va fi creată. În caz contrar, va exista o eroare în care se va informa despre existența vizualizării cu acest nume și nu va fi creată o nouă vizualizare. Un lucru trebuie remarcat: numele tabelelor și vederilor dintr-o singură bază de date trebuie să fie unice; Nu puteți crea o vizualizare cu numele unui tabel existent. Cu toate acestea, constructul OR REPLACE acționează numai asupra vizualizărilor și nu va înlocui tabelul.
- ALGORITM - definește algoritmul utilizat la accesarea vizualizării (mai multe detalii despre acest lucru vor fi discutate mai jos).
- column_list - specifică numele câmpurilor din vizualizare.
- CU VERIFICAREA OPȚIUNII - când se utilizează această construcție, toate rândurile adăugate sau modificate vor fi verificate pentru a se conforma definiției vizualizării. În caz de neconformitate, această modificare nu va fi executată. Rețineți că, dacă specificați acest construct pentru o vizualizare nerăbdătoare, va apărea o eroare și vizualizarea nu va fi creată. (detalii despre aceasta vor fi discutate mai jos).
Implicit, coloanele de vizualizare au aceleași nume ca și câmpurile returnate de instrucțiunea SELECT din definiția vizualizării. Dacă numele câmpurilor sunt specificate explicit, column_list trebuie să includă un nume pentru fiecare câmp separat printr-o virgulă. Există două motive pentru care este de dorit să se utilizeze o specificare explicită a denumirilor câmpurilor de prezentare:
- Numele câmpurilor de prezentare trebuie să fie unice în această vizualizare. Atunci când creați o vizualizare bazată pe mai multe tabele, este posibilă repetarea câmpurilor de prezentare. De exemplu: CREATE VIEW v AS Selectați a.id, b.id FROM a, b; Pentru a evita această situație, trebuie să specificați explicit numele câmpurilor de prezentare
CREATE VIEW v (a_id, b_id) AS SELECT a.id, b.id DIN a, b; Acelasi rezultat poate fi obtinut folosind sinonime (aliasuri) pentru numele coloanelor:
CREATE VIEW v AS Selectați a.id a_id, b.id b_id DIN a, b; - În cazul în care în definiția unei reprezentări, datele primite sunt convertite utilizând anumite funcții, atunci numele câmpului va fi expresia dată, ceea ce nu este foarte convenabil pentru trimiterile ulterioare la acest câmp. De exemplu:
CREATE VIEW v AS SELECT grup_concat (DISTINCT column_name oreder BY separator column_name separator `+`) FROM table_name; Este greu de utilizat pentru utilizarea grupului `group_concat (nume de utilizator DISTINCT ORDER BY separator de nume de utilizator``)
- Dacă ambele clauze WHERE apar, ambele condiții vor fi îndeplinite ca și cum ar fi fost combinate de operatorul AND.
- Dacă definiția definiției are o clauză ORDER BY, atunci aceasta va funcționa numai dacă nu există o condiție SELECT proprie care să acceseze vizualizarea, propria condiție de sortare. Dacă există o clauză ORDER BY în instrucțiunea exterioară, sortarea care există în definiția vizualizării va fi ignorată.
- Dacă există modificatori în ambii operatori care afectează mecanismul de blocare, cum ar fi HIGH_PRIORITY, rezultatul acțiunii lor combinate este nedefinit. Pentru a evita ambiguitatea, este recomandat să nu utilizați modificatori similari în definiția unei vizualizări.