logo

SQL-näkymät

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

Pöytäopiskelija

Opiskelijamerkit

Pöytä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ö:

luoda näkymäesimerkkejä

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ö:

näytä tulos

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ö:

näytä tulos

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ää.

  1. Näkymän luomiseen käytettävä SELECT-käsky ei saa sisältää GROUP BY- tai ORDER BY -lausetta.
  2. SELECT-lauseessa ei saa olla DISTINCT-avainsanaa.
  3. Näkymässä tulee olla kaikki NOT NULL -arvot.
  4. Näkymää ei saa luoda käyttämällä sisäkkäisiä tai monimutkaisia ​​kyselyitä.
  5. 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ö:

Luo tai korvaa näkymäesimerkki

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ö:

lisää rivi näkymäesimerkkiin

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ö:

Poista rivi näkymästä esimerkki

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ä:

  1. Tietojen käytön rajoittaminen – Näkymät tarjoavat lisäsuojaustasoa taulukosta rajoittamalla pääsyn ennalta määrättyyn taulukon rivien ja sarakkeiden joukkoon.
  2. Tietojen monimutkaisuuden piilottaminen – Näkymä voi piilottaa monimutkaisuuden, joka esiintyy useissa yhdistetyissä taulukoissa.
  3. 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.
  4. Tallenna monimutkaiset kyselyt - Näkymiä voidaan käyttää monimutkaisten kyselyjen tallentamiseen.
  5. 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.
  6. 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.