logo

SQL-visninger

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

Bordstudent

Studentmerker

Tabell studentkarakterer

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:

lage visningseksempler

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:

se utgang

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:

se utgang

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.

  1. SELECT-setningen som brukes til å lage visningen skal ikke inneholde GROUP BY-klausul eller ORDER BY-klausul.
  2. SELECT-setningen skal ikke ha nøkkelordet DISTINCT.
  3. Visningen skal ha alle NOT NULL-verdier.
  4. Visningen skal ikke opprettes ved hjelp av nestede spørringer eller komplekse spørringer.
  5. 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:

opprette eller erstatte visningseksempel

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:

sett inn rad i visningseksempel

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:

eksempel på slett rad fra visning

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:

  1. Begrense datatilgang – Visninger gir et ekstra nivå av tabellsikkerhet ved å begrense tilgangen til et forhåndsbestemt sett med rader og kolonner i en tabell.
  2. Skjuler datakompleksitet – En visning kan skjule kompleksiteten som finnes i flere sammenføyde tabeller.
  3. 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.
  4. Lagre komplekse søk – Visninger kan brukes til å lagre komplekse søk.
  5. 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.
  6. 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.