Pogledi v SQL so nekakšna virtualna miza. Pogled ima tudi vrstice in stolpce kot tabele, vendar pogled ne shranjuje podatkov na disk kot tabela. Pogled definira prilagojeno poizvedbo, ki pridobi podatke iz ene ali več tabel in predstavlja podatke, kot da prihajajo iz enega vira.
Pogled lahko ustvarimo tako, da izberemo polja iz ene ali več tabel v bazi podatkov. Pogled ima lahko vse vrstice tabele ali določene vrstice glede na določene pogoje.
V tem članku bomo spoznali ustvarjanje, posodabljanje in brisanje pogledov v SQL.
D emo baza podatkov SQL
Te bomo uporabljali dve tabeli SQL za primere.
StudentDetails

StudentMarks

Te tabele lahko ustvarite v svojem sistemu tako, da napišete naslednjo poizvedbo SQL:
MySQL -- Create StudentDetails table CREATE TABLE StudentDetails ( S_ID INT PRIMARY KEY, NAME VARCHAR(255), ADDRESS VARCHAR(255) ); INSERT INTO StudentDetails (S_ID, NAME, ADDRESS) VALUES (1, 'Harsh', 'Kolkata'), (2, 'Ashish', 'Durgapur'), (3, 'Pratik', 'Delhi'), (4, 'Dhanraj', 'Bihar'), (5, 'Ram', 'Rajasthan'); -- Create StudentMarks table CREATE TABLE StudentMarks ( ID INT PRIMARY KEY, NAME VARCHAR(255), Marks INT, Age INT ); INSERT INTO StudentMarks (ID, NAME, Marks, Age) VALUES (1, 'Harsh', 90, 19), (2, 'Suresh', 50, 20), (3, 'Pratik', 80, 19), (4, 'Dhanraj', 95, 21), (5, 'Ram', 85, 18);>
USTVARJANJE POGLEDOV v SQL
Pogled lahko ustvarimo z uporabo USTVARI POGLED izjava. Pogled je mogoče ustvariti iz ene tabele ali več tabel.
Sintaksa
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parametri:
- ime_pogleda : ime za pogled
- ime_tabele : Ime tabele
- stanje : Pogoj za izbiro vrstic
Primeri izjave SQL CREATE VIEW
Oglejmo si nekaj primerov izjave CREATE VIEW v SQL, da bomo bolje razumeli, kako ustvariti poglede v SQL.
Primer 1: Ustvarjanje pogleda iz ene tabele
V tem primeru bomo ustvarili pogled z imenom DetailsView iz tabele StudentDetails. poizvedba:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Če si želimo ogledati podatke v pogledu, lahko poizvedujemo po pogledu na enak način, kot poizvedujemo po tabeli.
SELECT * FROM DetailsView;>
Izhod:

2. primer: ustvarite pogled iz tabele
V tem primeru bomo iz tabele StudentDetails ustvarili pogled z imenom StudentNames. poizvedba:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Če zdaj pogledamo pogled kot,
SELECT * FROM StudentNames;>
Izhod:

Primer 3: Ustvarjanje pogleda iz več tabel
V tem primeru bomo ustvarili pogled z imenom MarksView iz dveh tabel StudentDetails in StudentMarks. Če želite ustvariti pogled iz več tabel, lahko preprosto vključimo več tabel v stavek SELECT. poizvedba:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Za prikaz podatkov View MarksView:
SELECT * FROM MarksView;>
Izhod:

PRIKAZ VSEH POGLEDOV V PODATKOVNI BAZI
Pogled lahko navedemo z uporabo PRIKAŽI CELE TABELE izjavo ali uporabo tabela informacijske_sheme . Pogled je mogoče ustvariti iz ene tabele ali več tabel.
Sintaksa
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Uporaba informacijske_sheme
css spreminjanje velikosti slike
SELECT table_name FROM information_schema.views WHERE table_schema = 'database_name'; OR SELECT table_schema, table_name, view_definition FROM information_schema.views WHERE table_schema = 'database_name';>
DELETE VIEWS v SQL
SQL nam omogoča brisanje obstoječega pogleda. Pogled lahko izbrišemo ali spustimo z uporabo Izjava DROP .
Sintaksa
DROP VIEW view_name;>
Primer
V tem primeru brišemo pogled MarksView.
DROP VIEW MarksView;>
POSODOBITE POGLED v SQL
Če želite posodobiti obstoječe podatke v pogledu, uporabite NADGRADNJA izjava.
Sintaksa
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Opomba: Vseh pogledov ni mogoče posodobiti s stavkom UPDATE.
Če želite posodobiti definicijo pogleda, ne da bi to vplivalo na podatke, uporabite USTVARI ALI ZAMENJAJ POGLED izjava. lahko uporabite to sintakso
koliko tipk imajo tipkovnice
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Pravila za posodobitev pogledov v SQL:
Za posodobitev pogleda morajo biti izpolnjeni nekateri pogoji. Če je kateri od teh pogojev ne met, pogleda ni mogoče posodobiti.
- Stavek SELECT, ki se uporablja za ustvarjanje pogleda, ne sme vključevati člena GROUP BY ali člena ORDER BY.
- Stavek SELECT ne sme imeti ključne besede DISTINCT.
- Pogled mora imeti vse vrednosti NOT NULL.
- Pogled ne bi smel biti ustvarjen z uporabo ugnezdenih poizvedb ali kompleksnih poizvedb.
- Pogled je treba ustvariti iz ene same tabele. Če je pogled ustvarjen z uporabo več tabel, nam ne bo dovoljeno posodobiti pogleda.
Primeri
Oglejmo si različne primere uporabe za posodabljanje pogleda v SQL. Te primere uporabe bomo obravnavali s primeri, da bomo bolje razumeli.
Primer 1: Posodobite pogled za dodajanje ali zamenjavo polja pogleda
Lahko uporabimo USTVARI ALI ZAMENJAJ POGLED stavek za dodajanje ali zamenjavo polj iz pogleda.
Če želimo posodobiti pogled MarksView in temu Pogledu iz dodajte polje STAROST StudentMarks Tabela, to lahko storimo tako:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Če zdaj pridobimo vse podatke iz MarksView kot:
SELECT * FROM MarksView;>
Izhod:

Primer 2: Posodobite pogled za vstavljanje vrstice v pogled
V Pogled lahko vstavimo vrstico na enak način kot v tabelo. Lahko uporabimo VSTAVITE V stavek SQL za vstavljanje vrstice v pogled.
V spodnjem primeru bomo vstavili novo vrstico v View DetailsView, ki smo ga ustvarili zgoraj v primeru ustvarjanja pogledov iz ene tabele.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Če zdaj pridobimo vse podatke iz DetailsView kot,
SELECT * FROM DetailsView;>
Izhod:

3. primer: brisanje vrstice iz pogleda
Brisanje vrstic iz pogleda je prav tako preprosto kot brisanje vrstic iz tabele. Za brisanje vrstic iz pogleda lahko uporabimo stavek DELETE SQL. Tudi brisanje vrstice iz pogleda najprej izbriše vrstico iz dejanske tabele in sprememba se nato odraža v pogledu.
V tem primeru bomo izbrisali zadnjo vrstico iz pogleda DetailsView, ki smo jo pravkar dodali v zgornjem primeru vstavljanja vrstic.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Če zdaj pridobimo vse podatke iz DetailsView kot,
SELECT * FROM DetailsView;>
Izhod:

S klavzulo CHECK OPTION
The Z MOŽNOSTJO ČEKA klavzula v SQL je zelo uporabna klavzula za poglede. Velja za pogled, ki ga je mogoče posodobiti.
Klavzula WITH CHECK OPTION se uporablja za preprečevanje spreminjanja podatkov (z uporabo INSERT ali UPDATE), če pogoj v klavzuli WHERE v stavku CREATE VIEW ni izpolnjen.
Če smo uporabili klavzulo WITH CHECK OPTION v stavku CREATE VIEW in če klavzula UPDATE ali INSERT ne izpolnjujeta pogojev, bosta vrnila napako.
Z MOŽNOSTJO PREVERJANJA Primer klavzule:
V spodnjem primeru ustvarjamo View SampleView iz tabele StudentDetails s klavzulo WITH CHECK OPTION.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
Če zdaj v tem pogledu poskusimo v stolpec NAME vstaviti novo vrstico z ničelno vrednostjo, bo to povzročilo napako, ker je pogled ustvarjen s pogojem za stolpec NAME NOT NULL. Na primer, čeprav je pogled mogoče posodobiti, tudi spodnja poizvedba za ta pogled ni veljavna:
INSERT INTO SampleView(S_ID) VALUES (6);>
OPOMBA : Privzeta vrednost stolpca NAME je nič .
Uporaba pogleda
Dobra zbirka podatkov mora vsebovati poglede iz naslednjih razlogov:
- Omejitev dostopa do podatkov – Pogledi nudijo dodatno raven varnosti tabele z omejitvijo dostopa do vnaprej določenega nabora vrstic in stolpcev tabele.
- Skrivanje kompleksnosti podatkov – Pogled lahko skrije kompleksnost, ki obstaja v več združenih tabelah.
- Poenostavite ukaze za uporabnika – Pogledi omogočajo uporabniku, da izbere informacije iz več tabel, ne da bi morali uporabniki dejansko vedeti, kako izvesti združevanje.
- Shranite zapletene poizvedbe – Poglede je mogoče uporabiti za shranjevanje kompleksnih poizvedb.
- Preimenuj stolpce – Poglede je mogoče uporabiti tudi za preimenovanje stolpcev, ne da bi to vplivalo na osnovne tabele, pod pogojem, da se mora število stolpcev v pogledu ujemati s številom stolpcev, podanih v stavku za izbiro. Tako preimenovanje pomaga skriti imena stolpcev osnovnih tabel.
- Možnost več pogledov – Na isti tabeli je mogoče ustvariti različne poglede za različne uporabnike.
Ključni zaključki o pogledih SQL
- Pogledi v SQL so nekakšne virtualne tabele.
- Polja v pogledu so lahko iz ene ali več tabel.
- Pogled lahko ustvarimo s stavkom CREATE VIEW in izbrišemo pogled s stavkom DROP VIEW.
- Pogled lahko posodobimo s stavkom CREATE OR REPLACE VIEW.
- Klavzula WITH CHECK OPTION se uporablja za preprečevanje vstavljanja novih vrstic, ki ne izpolnjujejo pogojev filtriranja pogleda.