Visningar i SQL är ett slags virtuellt bord. En vy har också rader och kolumner som tabeller, men en vy lagrar inte data på disken som en tabell. View definierar en anpassad fråga som hämtar data från en eller flera tabeller och representerar data som om den kom från en enda källa.
Vi kan skapa en vy genom att välja fält från en eller flera tabeller som finns i databasen. En vy kan antingen ha alla rader i en tabell eller specifika rader baserat på vissa villkor.
I den här artikeln kommer vi att lära oss om att skapa, uppdatera och ta bort vyer i SQL.
D emo SQL-databas
Vi kommer att använda dessa två SQL-tabeller till exempel.
Studentdetaljer

StudentMarks

Du kan skapa dessa tabeller på ditt system genom att skriva följande SQL-fråga:
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);>
SKAPA VISNINGAR i SQL
Vi kan skapa en vy med hjälp av SKAPA VY påstående. En vy kan skapas från en enda tabell eller flera tabeller.
Syntax
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parametrar:
- view_name : Namn på vyn
- tabellnamn : Namn på tabellen
- skick : Villkor för att välja rader
Exempel på SQL CREATE VIEW-sats
Låt oss titta på några exempel på CREATE VIEW-sats i SQL för att få en bättre förståelse för hur man skapar vyer i SQL.
Exempel 1: Skapa vy från en enda tabell
I det här exemplet kommer vi att skapa en vy med namnet DetailsView från tabellen StudentDetails. Fråga:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
För att se data i vyn kan vi fråga vyn på samma sätt som vi frågar en tabell.
SELECT * FROM DetailsView;>
Produktion:

Exempel 2: Skapa vy från tabell
I det här exemplet kommer vi att skapa en vy med namnet StudentNames från tabellen StudentDetails. Fråga:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Om vi nu frågar vyn som,
SELECT * FROM StudentNames;>
Produktion:

Exempel 3: Skapa vy från flera tabeller
I det här exemplet kommer vi att skapa en vy med namnet MarksView från två tabeller StudentDetails och StudentMarks. För att skapa en vy från flera tabeller kan vi helt enkelt inkludera flera tabeller i SELECT-satsen. Fråga:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
För att visa data för View MarksView:
SELECT * FROM MarksView;>
Produktion:

LISTAR ALLA VISNINGAR I EN DATABAS
Vi kan lista Visa med hjälp av VISA HELA TABELLER uttalande eller använda informationsschematabell . En vy kan skapas från en enda tabell eller flera tabeller.
Syntax
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Använder informationsschema
Hur man laddar ner youtube video vlc
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 i SQL
SQL tillåter oss att ta bort en befintlig vy. Vi kan ta bort eller släppa Visa med hjälp av DROP uttalande .
Syntax
DROP VIEW view_name;>
Exempel
I det här exemplet tar vi bort vyn MarksView.
DROP VIEW MarksView;>
UPPDATERA VY i SQL
Om du vill uppdatera befintliga data i vyn, använd UPPDATERING påstående.
Syntax
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Notera: Alla vyer kan inte uppdateras med UPDATE-satsen.
Om du vill uppdatera vydefinitionen utan att påverka data, använd SKAPA ELLER BYT VY påstående. du kan använda denna syntax
samling java
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Regler för att uppdatera vyer i SQL:
Vissa villkor måste vara uppfyllda för att uppdatera en vy. Om något av dessa villkor är inte uppfyllt kan vyn inte uppdateras.
- SELECT-satsen som används för att skapa vyn bör inte inkludera GROUP BY-sats eller ORDER BY-sats.
- SELECT-satsen ska inte ha nyckelordet DISTINCT.
- Vyn bör ha alla INTE NULL-värden.
- Vyn ska inte skapas med kapslade frågor eller komplexa frågor.
- Vyn ska skapas från en enda tabell. Om vyn skapas med hjälp av flera tabeller kommer vi inte att tillåtas att uppdatera vyn.
Exempel
Låt oss titta på olika användningsfall för att uppdatera en vy i SQL. Vi kommer att täcka dessa användningsfall med exempel för att få en bättre förståelse.
Exempel 1: Uppdatera vy för att lägga till eller ersätta ett vyfält
Vi kan använda SKAPA ELLER BYT VY uttalande för att lägga till eller ersätta fält från en vy.
Om vi vill uppdatera vyn MarksView och lägg till fältet AGE i denna View from StudentMarks Tabell, kan vi göra detta genom att:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Om vi hämtar all data från MarksView nu som:
SELECT * FROM MarksView;>
Produktion:

Exempel 2: Uppdatera vy för att infoga en rad i en vy
Vi kan infoga en rad i en vy på samma sätt som vi gör i en tabell. Vi kan använda SÄTT IN I SQL-sats för att infoga en rad i en vy.
I exemplet nedan kommer vi att infoga en ny rad i View DetailsView som vi har skapat ovan i exemplet med att skapa vyer från en enda tabell.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Om vi hämtar all data från DetailsView nu som,
SELECT * FROM DetailsView;>
Produktion:

Exempel 3: Ta bort en rad från en vy
Att ta bort rader från en vy är också lika enkelt som att ta bort rader från en tabell. Vi kan använda SQL-satsen DELETE för att ta bort rader från en vy. Om du också tar bort en rad från en vy raderas först raden från den faktiska tabellen och ändringen återspeglas sedan i vyn.
I det här exemplet kommer vi att ta bort den sista raden från vyn DetailsView som vi precis lade till i exemplet ovan med att infoga rader.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Om vi hämtar all data från DetailsView nu som,
SELECT * FROM DetailsView;>
Produktion:

MED KONTROLLVALKlausul
De MED KONTROLLVAL sats i SQL är en mycket användbar klausul för vyer. Det gäller en uppdateringsbar vy.
WITH CHECK OPTION-satsen används för att förhindra datamodifiering (med hjälp av INSERT eller UPDATE) om villkoret i WHERE-satsen i CREATE VIEW-satsen inte är uppfyllt.
Om vi har använt WITH CHECK OPTION-satsen i CREATE VIEW-satsen och om UPDATE- eller INSERT-satsen inte uppfyller villkoren kommer de att returnera ett fel.
MED KONTROLLALTERNATIV Klausulexempel:
I exemplet nedan skapar vi en View SampleView från StudentDetails-tabellen med en WITH CHECK OPTION-sats.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
I den här vyn, om vi nu försöker infoga en ny rad med ett nullvärde i NAME-kolumnen så kommer det att ge ett fel eftersom vyn skapas med villkoret för NAME-kolumnen som NOT NULL. Till exempel, även om vyn är uppdateringsbar är inte heller nedanstående fråga för den här vyn giltig:
INSERT INTO SampleView(S_ID) VALUES (6);>
NOTERA : Standardvärdet för NAME-kolumnen är null .
Användningar av en vy
En bra databas bör innehålla vyer av de angivna anledningarna:
- Begränsa dataåtkomst – Vyer ger en extra nivå av tabellsäkerhet genom att begränsa åtkomsten till en förutbestämd uppsättning rader och kolumner i en tabell.
- Dölja datakomplexitet – En vy kan dölja komplexiteten som finns i flera sammanfogade tabeller.
- Förenkla kommandon för användaren – Med vyer kan användaren välja information från flera tabeller utan att användarna behöver faktiskt veta hur man utför en koppling.
- Lagra komplexa frågor – Vyer kan användas för att lagra komplexa frågor.
- Byt namn på kolumner – Vyer kan också användas för att byta namn på kolumnerna utan att påverka bastabellerna förutsatt att antalet kolumner som visas måste matcha antalet kolumner som anges i en select-sats. Således hjälper byta namn till att dölja namnen på kolumnerna i bastabellerna.
- Multiple view-anläggning – Olika vyer kan skapas på samma bord för olika användare.
Viktiga tips om SQL-vyer
- Vyer i SQL är en slags virtuell tabell.
- Fälten i en vy kan vara från en eller flera tabeller.
- Vi kan skapa en vy med CREATE VIEW-satsen och ta bort en vy med DROP VIEW-satsen.
- Vi kan uppdatera en vy med hjälp av CREATE OR REPLACE VIEW-satsen.
- WITH CHECK OPTION-satsen används för att förhindra att nya rader infogas som inte uppfyller vyns filtreringsvillkor.