logo

Pogledi SQL

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

Tabela Študent

StudentMarks

Tabela Študentske ocene

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:

ustvarite primere ogledov

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:

ogled izpisa

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:

ogled izpisa

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.

  1. Stavek SELECT, ki se uporablja za ustvarjanje pogleda, ne sme vključevati člena GROUP BY ali člena ORDER BY.
  2. Stavek SELECT ne sme imeti ključne besede DISTINCT.
  3. Pogled mora imeti vse vrednosti NOT NULL.
  4. Pogled ne bi smel biti ustvarjen z uporabo ugnezdenih poizvedb ali kompleksnih poizvedb.
  5. 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:

ustvarite ali zamenjajte primer pogleda

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:

primer vstavi vrstico v pogled

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:

primer brisanja vrstice iz pogleda

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:

  1. Omejitev dostopa do podatkov – Pogledi nudijo dodatno raven varnosti tabele z omejitvijo dostopa do vnaprej določenega nabora vrstic in stolpcev tabele.
  2. Skrivanje kompleksnosti podatkov – Pogled lahko skrije kompleksnost, ki obstaja v več združenih tabelah.
  3. 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.
  4. Shranite zapletene poizvedbe – Poglede je mogoče uporabiti za shranjevanje kompleksnih poizvedb.
  5. 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.
  6. 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.