Näkymät SQL:ssä ovat eräänlainen virtuaalipöytä. Näkymässä on myös rivejä ja sarakkeita kuten taulukoita, mutta näkymä ei tallenna tietoja levylle kuten taulukko. Näkymä määrittää mukautetun kyselyn, joka hakee tiedot yhdestä tai useammasta taulukosta ja esittää tiedot ikään kuin ne olisivat peräisin yhdestä lähteestä.
Voimme luoda näkymän valitsemalla kenttiä yhdestä tai useammasta tietokannassa olevasta taulukosta. Näkymässä voi olla joko kaikki taulukon rivit tai tietyt rivit tiettyjen ehtojen perusteella.
Tässä artikkelissa opimme SQL-näkymien luomisesta, päivittämisestä ja poistamisesta.
D emo SQL-tietokanta
Tulemme käyttämään näitä kaksi SQL-taulukkoa esimerkeiksi.
Opiskelijatiedot

Opiskelijamerkit

Voit luoda nämä taulukot järjestelmässäsi kirjoittamalla seuraavan SQL-kyselyn:
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);>
LUO NÄKYMÄT SQL:ssä
Voimme luoda näkymän käyttämällä LUO NÄKYMÄ lausunto. Näkymä voidaan luoda yhdestä taulukosta tai useista taulukoista.
Syntaksi
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parametrit:
- näkymän_nimi : Näkymän nimi
- taulukon_nimi : Taulukon nimi
- kunto : Rivien valinnan ehto
SQL CREATE VIEW -lauseesimerkit
Katsotaanpa joitain esimerkkejä CREATE VIEW -lausekkeesta SQL:ssä saadaksesi paremman käsityksen näkymien luomisesta SQL:ssä.
Esimerkki 1: Näkymän luominen yhdestä taulukosta
Tässä esimerkissä luomme näkymän nimeltä DetailsView taulukosta StudentDetails. Kysely:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Nähdäksemme tiedot näkymässä, voimme tehdä kyselyn näkymästä samalla tavalla kuin taulukosta.
SELECT * FROM DetailsView;>
Lähtö:

Esimerkki 2: Luo näkymä taulukosta
Tässä esimerkissä luomme StudentDetails-taulukosta näkymän nimeltä StudentNames. Kysely:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Jos nyt kysytään näkymää
SELECT * FROM StudentNames;>
Lähtö:

Esimerkki 3: Näkymän luominen useista taulukoista
Tässä esimerkissä luomme MarksView-nimisen näkymän kahdesta taulukosta StudentDetails ja StudentMarks. Jos haluat luoda näkymän useista taulukoista, voimme yksinkertaisesti sisällyttää useita taulukoita SELECT-käskyyn. Kysely:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Näytä MarksView-näkymän tiedot:
SELECT * FROM MarksView;>
Lähtö:

KAIKKI NÄKYMÄT TIETOKANTAAN
Voimme listata Näytä käyttämällä NÄYTÄ TÄYDET PÖYTÄT lausuntoa tai käyttämällä information_schema taulukko . Näkymä voidaan luoda yhdestä taulukosta tai useista taulukoista.
Syntaksi
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Tietojen_skeeman käyttö
java sopimusten nimeäminen
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';>
POISTA NÄKYMÄT SQL:ssä
SQL mahdollistaa olemassa olevan näkymän poistamisen. Voimme poistaa tai pudottaa näkymän käyttämällä DROP lausunto .
Syntaksi
DROP VIEW view_name;>
Esimerkki
Tässä esimerkissä poistamme näkymän MarksView.
DROP VIEW MarksView;>
PÄIVITYS SQL:ssä
Jos haluat päivittää näkymän olemassa olevat tiedot, käytä PÄIVITTÄÄ lausunto.
Syntaksi
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Huomautus: Kaikkia näkymiä ei voi päivittää UPDATE-käskyn avulla.
Jos haluat päivittää näkymän määritelmän vaikuttamatta tietoihin, käytä LUO TAI KORVAA NÄKYMÄ lausunto. voit käyttää tätä syntaksia
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Säännöt näkymien päivittämiseen SQL:ssä:
Tiettyjen ehtojen on täytyttävä näkymän päivittämiseksi. Jos jokin näistä ehdoista on ei täytetty, näkymää ei voi päivittää.
- Näkymän luomiseen käytettävä SELECT-käsky ei saa sisältää GROUP BY- tai ORDER BY -lausetta.
- SELECT-lauseessa ei saa olla DISTINCT-avainsanaa.
- Näkymässä tulee olla kaikki NOT NULL -arvot.
- Näkymää ei saa luoda käyttämällä sisäkkäisiä tai monimutkaisia kyselyitä.
- Näkymä tulee luoda yhdestä taulukosta. Jos näkymä luodaan käyttämällä useita taulukoita, emme saa päivittää näkymää.
Esimerkkejä
Tarkastellaan erilaisia käyttötapauksia näkymän päivittämiseen SQL:ssä. Käsittelemme nämä käyttötapaukset esimerkein saadaksemme paremman käsityksen.
Esimerkki 1: Päivitä näkymä lisätäksesi tai korvataksesi näkymäkentän
Voimme käyttää LUO TAI KORVAA NÄKYMÄ lauseke kenttiä lisäämiseen tai korvaamiseen näkymästä.
Jos haluamme päivittää näkymää MarksView ja lisää kenttä IKÄ tähän näkymään alkaen Opiskelijamerkit Taulukko, voimme tehdä tämän seuraavasti:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Jos haemme kaikki tiedot MarksView'sta nyt seuraavasti:
SELECT * FROM MarksView;>
Lähtö:

Esimerkki 2: Päivitä näkymä lisätäksesi rivi näkymään
Voimme lisätä rivin näkymään samalla tavalla kuin taulukkoon. Voimme käyttää LAITTAA SISÄÄN SQL-käsky lisätäksesi rivin näkymään.
Alla olevassa esimerkissä lisäämme uuden rivin View DetailsView -näkymään, jonka loimme yllä esimerkkinä näkemysten luomisesta yhdestä taulukosta.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Jos haemme kaikki tiedot DetailsView'sta nyt,
SELECT * FROM DetailsView;>
Lähtö:

Esimerkki 3: Rivin poistaminen näkymästä
Rivien poistaminen näkymästä on myös yhtä helppoa kuin rivien poistaminen taulukosta. Voimme käyttää SQL:n DELETE-käskyä rivien poistamiseen näkymästä. Myös rivin poistaminen näkymästä poistaa ensin rivin varsinaisesta taulukosta ja muutos näkyy sitten näkymässä.
Tässä esimerkissä poistamme viimeisen rivin DetailsView-näkymästä, jonka juuri lisäsimme yllä olevaan rivien lisäysesimerkkiin.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Jos haemme kaikki tiedot DetailsView'sta nyt,
SELECT * FROM DetailsView;>
Lähtö:

CHECK OPTION -lausekkeella
The TARKKIVAIHTOEHDOLLA SQL:n lauseke on erittäin hyödyllinen lauseke näkymille. Se koskee päivitettävää näkymää.
WITH CHECK OPTION -lausetta käytetään estämään tietojen muuttaminen (käyttäen INSERT- tai UPDATE-komentoa), jos CREATE VIEW -käskyn WHERE-lauseen ehto ei täyty.
Jos olemme käyttäneet WITH CHECK OPTION -lausetta CREATE VIEW -käskyssä ja jos UPDATE- tai INSERT-lause ei täytä ehtoja, ne palauttavat virheilmoituksen.
CHECK OPTION -lauseke Esimerkki:
Alla olevassa esimerkissä luomme View SampleView -näkymän StudentDetails-taulukosta, jossa on WITH CHECK OPTION -lause.
usa kaupungin nimi
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
Jos yritämme tässä näkymässä nyt lisätä uuden rivin, jossa on nolla-arvo sarakkeeseen NAME, se antaa virheen, koska näkymä luodaan NIMI-sarakkeen ehdolla NOT NULL. Esimerkiksi vaikka näkymä on päivitettävissä, myös alla oleva kysely tälle näkymälle ei ole kelvollinen:
INSERT INTO SampleView(S_ID) VALUES (6);>
HUOMAUTUS : Sarakkeen NAME oletusarvo on tyhjä .
Näkymän käyttötarkoitukset
Hyvän tietokannan tulisi sisältää näkymiä seuraavista syistä:
- Tietojen käytön rajoittaminen – Näkymät tarjoavat lisäsuojaustasoa taulukosta rajoittamalla pääsyn ennalta määrättyyn taulukon rivien ja sarakkeiden joukkoon.
- Tietojen monimutkaisuuden piilottaminen – Näkymä voi piilottaa monimutkaisuuden, joka esiintyy useissa yhdistetyissä taulukoissa.
- Yksinkertaista komennot käyttäjälle - Näkymien avulla käyttäjä voi valita tietoja useista taulukoista ilman, että käyttäjät todella tietävät, miten liittäminen tehdään.
- Tallenna monimutkaiset kyselyt - Näkymiä voidaan käyttää monimutkaisten kyselyjen tallentamiseen.
- Nimeä sarakkeet uudelleen - Näkymiä voidaan käyttää myös sarakkeiden nimeämiseen uudelleen vaikuttamatta perustaulukoihin, jos näkymässä olevien sarakkeiden lukumäärän on vastattava select-käskyssä määritettyä sarakkeiden määrää. Siten uudelleennimeäminen auttaa piilottamaan perustaulukoiden sarakkeiden nimet.
- Monipuolinen näkymä - Samaan taulukkoon voidaan luoda erilaisia näkymiä eri käyttäjille.
Tärkeimmät tiedot SQL-näkymistä
- Näkymät SQL:ssä ovat eräänlainen virtuaalinen taulukko.
- Näkymän kentät voivat olla yhdestä tai useammasta taulukosta.
- Voimme luoda näkymän CREATE VIEW -käskyllä ja poistaa näkymän DROP VIEW -käskyllä.
- Voimme päivittää näkymän käyttämällä CREATE OR REPLACE VIEW -käskyä.
- WITH CHECK OPTION -lauseketta käytetään estämään uusien rivien lisääminen, jotka eivät täytä näkymän suodatusehtoja.