Visninger i SQL er en slags virtuell tabell. En visning har også rader og kolonner som tabeller, men en visning lagrer ikke data på disken som en tabell. View definerer en tilpasset spørring som henter data fra én eller flere tabeller, og representerer dataene som om de kom fra en enkelt kilde.
Vi kan lage en visning ved å velge felt fra en eller flere tabeller som finnes i databasen. En visning kan enten ha alle radene i en tabell eller spesifikke rader basert på visse forhold.
I denne artikkelen vil vi lære om hvordan du oppretter, oppdaterer og sletter visninger i SQL.
D emo SQL-database
Vi kommer til å bruke disse to SQL-tabeller for eksempel.
Studentdetaljer

Studentmerker

Du kan opprette disse tabellene på systemet ditt ved å skrive følgende SQL-spørring:
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);>
LAG VISNINGER i SQL
Vi kan lage en visning ved hjelp av LAG UTSIKT uttalelse. En visning kan opprettes fra en enkelt tabell eller flere tabeller.
Syntaks
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parametere:
- view_name : Navn på visningen
- tabellnavn : Navn på tabellen
- betingelse : Betingelse for å velge rader
SQL CREATE VIEW-setningseksempler
La oss se på noen eksempler på CREATE VIEW-setning i SQL for å få en bedre forståelse av hvordan du oppretter visninger i SQL.
Eksempel 1: Opprette visning fra en enkelt tabell
I dette eksemplet vil vi lage en visning kalt DetailsView fra tabellen StudentDetails. Spørsmål:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
For å se dataene i visningen kan vi spørre visningen på samme måte som vi spør i en tabell.
SELECT * FROM DetailsView;>
Produksjon:

Eksempel 2: Lag visning fra tabell
I dette eksemplet vil vi lage en visning kalt Studentnavn fra tabellen Studentdetaljer. Spørsmål:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Hvis vi nå spør etter visningen som,
SELECT * FROM StudentNames;>
Produksjon:

Eksempel 3: Opprette visning fra flere tabeller
I dette eksemplet vil vi lage en visning kalt MarksView fra to tabeller StudentDetails og StudentMarks. For å lage en visning fra flere tabeller kan vi ganske enkelt inkludere flere tabeller i SELECT-setningen. Spørsmål:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Slik viser du data for View MarksView:
SELECT * FROM MarksView;>
Produksjon:

LISTER ALLE VISNINGER I EN DATABASE
Vi kan liste Vis ved å bruke VIS HELE TABELLER uttalelse eller ved hjelp av informasjonsskjematabell . En visning kan opprettes fra en enkelt tabell eller flere tabeller.
Syntaks
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Bruker informasjonsskjema
gimp-fontliste
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';>
SLETT VISNINGER i SQL
SQL lar oss slette en eksisterende visning. Vi kan slette eller droppe View ved å bruke DROP-uttalelse .
Syntaks
DROP VIEW view_name;>
Eksempel
I dette eksemplet sletter vi visningen MarksView.
DROP VIEW MarksView;>
OPPDATERT VISNING i SQL
Hvis du vil oppdatere eksisterende data i visningen, bruk OPPDATER uttalelse.
Syntaks
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Merk: Ikke alle visninger kan oppdateres ved hjelp av UPDATE-setningen.
Hvis du vil oppdatere visningsdefinisjonen uten å påvirke dataene, bruk LAG ELLER ERSTATT VISNING uttalelse. du kan bruke denne syntaksen
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Regler for å oppdatere visninger i SQL:
Visse betingelser må være oppfylt for å oppdatere en visning. Hvis noen av disse forholdene er ikke møtt, kan visningen ikke oppdateres.
- SELECT-setningen som brukes til å lage visningen skal ikke inneholde GROUP BY-klausul eller ORDER BY-klausul.
- SELECT-setningen skal ikke ha nøkkelordet DISTINCT.
- Visningen skal ha alle NOT NULL-verdier.
- Visningen skal ikke opprettes ved hjelp av nestede spørringer eller komplekse spørringer.
- Visningen skal opprettes fra en enkelt tabell. Hvis visningen er opprettet ved hjelp av flere tabeller, har vi ikke lov til å oppdatere visningen.
Eksempler
La oss se på forskjellige brukstilfeller for å oppdatere en visning i SQL. Vi vil dekke disse brukstilfellene med eksempler for å få en bedre forståelse.
Eksempel 1: Oppdater visning for å legge til eller erstatte et visningsfelt
Vi kan bruke LAG ELLER ERSTATT VISNING setning for å legge til eller erstatte felt fra en visning.
Hvis vi ønsker å oppdatere visningen MarksView og legg til feltet AGE i denne View from Studentmerker Tabell, kan vi gjøre dette ved å:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Hvis vi henter alle dataene fra MarksView nå som:
SELECT * FROM MarksView;>
Produksjon:

Eksempel 2: Oppdater visning for å sette inn en rad i en visning
Vi kan sette inn en rad i en View på samme måte som vi gjør i en tabell. Vi kan bruke SETTE INN I SQL-setning for å sette inn en rad i en visning.
I eksemplet nedenfor vil vi sette inn en ny rad i View DetailsView som vi har opprettet ovenfor i eksemplet med å lage visninger fra en enkelt tabell.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Hvis vi henter alle dataene fra DetailsView nå som,
SELECT * FROM DetailsView;>
Produksjon:

Eksempel 3: Slette en rad fra en visning
Å slette rader fra en visning er også like enkelt som å slette rader fra en tabell. Vi kan bruke DELETE-setningen til SQL for å slette rader fra en visning. Også sletting av en rad fra en visning sletter først raden fra den faktiske tabellen, og endringen reflekteres deretter i visningen.
I dette eksemplet vil vi slette den siste raden fra visningen DetailsView som vi nettopp la til i eksemplet ovenfor for å sette inn rader.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Hvis vi henter alle dataene fra DetailsView nå som,
SELECT * FROM DetailsView;>
Produksjon:

MED KONTROLLOPSJON Klausul
De MED KONTROLLVALG klausul i SQL er en veldig nyttig klausul for visninger. Det gjelder en oppdaterbar visning.
WITH CHECK OPTION-leddet brukes til å forhindre datamodifisering (ved å bruke INSERT eller UPDATE) hvis betingelsen i WHERE-leddet i CREATE VIEW-setningen ikke er oppfylt.
Hvis vi har brukt WITH CHECK OPTION-leddet i CREATE VIEW-setningen, og hvis UPDATE- eller INSERT-leddet ikke tilfredsstiller betingelsene, vil de returnere en feil.
streng json java
MED KONTROLLOPSJON Klausuleksempel:
I eksemplet nedenfor lager vi en View SampleView fra StudentDetails-tabellen med en WITH CHECK OPTION-klausul.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
I denne visningen, hvis vi nå prøver å sette inn en ny rad med en nullverdi i NAME-kolonnen, vil det gi en feilmelding fordi visningen er opprettet med betingelsen for NAME-kolonnen som NOT NULL. For eksempel, selv om visningen kan oppdateres, er heller ikke spørringen nedenfor for denne visningen gyldig:
INSERT INTO SampleView(S_ID) VALUES (6);>
MERK : Standardverdien for NAME-kolonnen er null .
Bruk av en visning
En god database bør inneholde visninger av følgende grunner:
- Begrense datatilgang – Visninger gir et ekstra nivå av tabellsikkerhet ved å begrense tilgangen til et forhåndsbestemt sett med rader og kolonner i en tabell.
- Skjuler datakompleksitet – En visning kan skjule kompleksiteten som finnes i flere sammenføyde tabeller.
- Forenkle kommandoer for brukeren – Visninger lar brukeren velge informasjon fra flere tabeller uten å kreve at brukerne faktisk vet hvordan de skal utføre en sammenføyning.
- Lagre komplekse søk – Visninger kan brukes til å lagre komplekse søk.
- Gi nytt navn til kolonner – Visninger kan også brukes til å gi nytt navn til kolonnene uten å påvirke basistabellene, forutsatt at antallet kolonner som vises må samsvare med antallet kolonner som er spesifisert i en select-setning. Dermed hjelper det å gi nytt navn til å skjule navnene på kolonnene i basistabellene.
- Multiple view anlegg – Ulike visninger kan opprettes på samme tabell for forskjellige brukere.
Viktige ting om SQL-visninger
- Visninger i SQL er en slags virtuell tabell.
- Feltene i en visning kan være fra én eller flere tabeller.
- Vi kan opprette en visning ved å bruke CREATE VIEW-setningen og slette en visning ved å bruke DROP VIEW-setningen.
- Vi kan oppdatere en visning ved å bruke CREATE OR REPLACE VIEW-setningen.
- WITH CHECK OPTION-klausulen brukes for å forhindre innsetting av nye rader som ikke tilfredsstiller visningens filtreringsbetingelse.