Utilizarea tabelelor virtuale

Tabelele virtuale sunt utilizate pentru a crea interogări complexe stocate în mod constant. Puteți să consultați o tabelă virtuală ca tabelă obișnuită. Acesta poate fi folosit ca o tabelă în clauzele SELECT, INSERT, INPUT, UPDATE, DELETE. Tabelul virtual nu ocupă spațiu în baza de date ca un tabel regulat. Sintaxa este:

CREATE VIEW [(coloana 1, coloana 2)] AS

[CU CHECK OPTION]

Opțional WITH CHECK OPTION (cu validare) indică faptul că pentru operațiile INSERT și UPDATE trebuie efectuată o verificare pe acest tabel pentru a se asigura că clauza WHERE a expresiei subquery este îndeplinită.

Astfel, o tabelă virtuală este un tabel numit obținut ca rezultat al executării unei propoziții SELECT cu o posibilă modificare a numelor coloanelor.

Un tabel virtual simplu. Acesta este un tabel virtual, care este o copie a originalului, dar sub un alt nume.

SELECTAREA * DIN FACULTATEA

De asemenea, puteți crea tabele virtuale bazate pe alte tabele virtuale.

Selectarea coloanei. Puteți specifica utilizarea coloanelor individuale ale tabelei sursă în tabela virtuală.

CREATE VIEW DEP_HEAD_NAMES (Nume, Șef) AS

SELECTAREA * DIN FACULTATEA

Redenumiți coloanele. Sintaxa pentru crearea tabelelor virtuale vă permite să redenumiți coloanele din tabela sursă. Pentru a face acest lucru, trebuie să specificați explicit coloane în clauza SELECT și să specificați numele coloanelor necesare în clauza CREATE VIEW.

CREATE VIEW TEACHER_NAME_POST (First_Name, Position) AS

SELECT nume, mesaj de la profesor

Construcții complexe. Clauza SELECT într-o tabelă virtuală poate avea o complexitate arbitrară. De exemplu, pentru a obține un tabel virtual cu o listă de profesori ai Facultății de Informatică, care lucrează și în alte facultăți, ar trebui să scrieți.

CREATE VIEW TEACHER_2 (First_Name, Position) AS

SELECTAȚI DOCTORAT

DE LA FACULTATEA, DEPARTAMENTUL, PROFESORUL

Unde FACULTATEA # F = DEPARTAMENTUL # F AND

DEPARTAMENTUL # D = PROFESOR

FACULTY.Name = 'IT' și

DE LA FACULTATEA, DEPARTAMENTUL, PROFESORUL

Unde FACULTATEA # F = DEPARTAMENTUL # F AND

Restricții privind utilizarea clauzei SELECT. SQL impune următoarele restricții privind utilizarea clauzei SELECT la definirea unei tabele virtuale:

· Nu puteți utiliza operatorul UNION,

· Nu puteți utiliza clauza ORDER BY.

Modificați datele prin tabele virtuale. Tabelele virtuale pot fi utilizate în clauzele UPDATE, INSERT, DELETE pentru a modifica datele într-o bază de date, dar trebuie îndeplinite următoarele condiții:

· Nu puteți utiliza clauza DELETE la tabele virtuale definite pe mai multe tabele de bază

· Instrucțiunea INSERT poate fi utilizată numai dacă tabela virtuală conține toate coloanele NOT NULL ale tabelului de bază.

· Dacă o inserare sau o actualizare are loc printr-o tabelă virtuală conectată, toate înregistrările care trebuie actualizate trebuie să aparțină aceluiași tabel fizic.

· Nu puteți introduce sau actualiza înregistrări printr-un tabel virtual definit cu fraza DISTINCT.

· Nu puteți actualiza coloanele virtuale (adică coloanele care evaluează o expresie sau execută o funcție)

Aplicații posibile ale tabelelor virtuale. Un tabel virtual poate fi folosit pentru:

· Asigurarea independenței logice,

· Asigurarea protecției datelor,

· Conversia datelor,

· Simplificarea modelelor de interogări complexe.

Asigurarea independenței logice. Una dintre sarcinile principale pe care tabelele virtuale vă permit să le faceți este să vă asigurați independența programelor utilizatorilor de a schimba structura logică a bazei de date când este extinsă și (sau) schimbarea amplasării coloanelor, cum ar fi atunci când se divizează tabele.

Tabele virtuale și protecția datelor. Tabelele virtuale pot fi utilizate pentru a specifica informațiile disponibile unui anumit utilizator. Restricționând accesul utilizatorilor numai prin tabele virtuale, puteți rezolva problema protecției datelor.

Conversia datelor. Tabelele virtuale pot fi utile atunci când aveți nevoie să furnizați utilizatorului date cu date într-un format diferit de datele utilizate în baza de date. De exemplu, este destul de ușor să rezolvăm problema convertirii datelor salariale stocate într-o bază de date într-o unitate monetară într-o altă unitate monetară dintr-un tabel virtual dat.

Simplificați construirea de interogări complexe. Tabelele virtuale pot fi de asemenea utilizate atunci când este necesar să se formuleze un set de interogări complexe care au o structură ierarhică. În acest caz, este creată o structură ierarhică a tabelelor virtuale.

Ștergerea unui tabel virtual. Există o comandă pentru a șterge tabela virtuală. Sintaxa sa este:

DROP VIEW view_name

Când ștergeți o tabelă virtuală, rețineți că toate celelalte tabele virtuale definite pe tabela virtuală devin nevalide.

Articole similare