logo

SQL-weergaven

Weergaven in SQL zijn een soort virtuele tafel. Een weergave heeft ook rijen en kolommen zoals tabellen, maar een weergave slaat gegevens niet op de schijf op zoals een tabel. View definieert een aangepaste query die gegevens uit een of meer tabellen ophaalt en de gegevens representeert alsof deze uit één enkele bron komen.

We kunnen een weergave creëren door velden te selecteren uit een of meer tabellen die in de database aanwezig zijn. Een weergave kan alle rijen van een tabel bevatten of specifieke rijen op basis van bepaalde voorwaarden.



In dit artikel leren we over het maken, bijwerken en verwijderen van weergaven in SQL.

D emo SQL-database

Deze gaan we gebruiken twee SQL-tabellen bijvoorbeeld.

Studentgegevens



Tafel Student

Studentenmerken

Tabel Studentencijfers



U kunt deze tabellen op uw systeem maken door de volgende SQL-query te schrijven:

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);>

MAAK WEERGAVEN in SQL

We kunnen een weergave maken met behulp van CREËER UITZICHT stelling. Een weergave kan worden gemaakt op basis van een enkele tabel of meerdere tabellen.

Syntaxis

  CREATE VIEW   view_name AS   SELECT   column1, column2.....   FROM   table_name   WHERE   condition;>

Parameters:

  • weergavenaam : Naam voor de weergave
  • tafel naam : Naam van de tafel
  • voorwaarde : voorwaarde om rijen te selecteren

Voorbeelden van SQL CREATE VIEW-instructie

Laten we eens kijken naar enkele voorbeelden van de CREATE VIEW-instructie in SQL om een ​​beter begrip te krijgen van hoe u weergaven in SQL kunt maken.

Voorbeeld 1: Weergave maken vanuit één tabel

In dit voorbeeld maken we een weergave met de naam DetailsView uit de tabel StudentDetails. Vraag:

  CREATE VIEW   DetailsView   AS    SELECT   NAME, ADDRESS   FROM   StudentDetails   WHERE   S_ID <5;>

Om de gegevens in de weergave te bekijken, kunnen we de weergave op dezelfde manier doorzoeken als we een tabel doorzoeken.

  SELECT   *   FROM   DetailsView;>

Uitgang:

weergavevoorbeelden maken

Voorbeeld 2: Weergave vanuit tabel maken

In dit voorbeeld maken we een weergave met de naam StudentNames uit de tabel StudentDetails. Vraag:

  CREATE VIEW   StudentNames   AS    SELECT   S_ID, NAME   FROM   StudentDetails   ORDER BY   NAME;>

Als we nu de weergave opvragen als:

  SELECT   *   FROM   StudentNames;>

Uitgang:

uitvoer bekijken

Voorbeeld 3: Weergave maken van meerdere tabellen

In dit voorbeeld maken we een weergave met de naam MarksView uit twee tabellen StudentDetails en StudentMarks. Om een ​​weergave van meerdere tabellen te maken, kunnen we eenvoudig meerdere tabellen in de SELECT-instructie opnemen. Vraag:

  CREATE VIEW   MarksView AS   SELECT   StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS   FROM   StudentDetails, StudentMarks   WHERE   StudentDetails.NAME = StudentMarks.NAME;>

Gegevens van View MarksView weergeven:

  SELECT   *   FROM   MarksView;>

Uitgang:

uitvoer bekijken

ALLE VIEWS IN EEN DATABASE VERMELDEN

We kunnen View weergeven met behulp van de TOON VOLLEDIGE TAFELS verklaring of het gebruik van de informatie_schema tabel . Een weergave kan worden gemaakt op basis van een enkele tabel of meerdere tabellen.

Syntaxis

  USE   'database_name';   SHOW FULL   TABLES   WHERE   table_type LIKE '%VIEW';>

Informatie_schema gebruiken

Java-architectuur
  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';>

VERWIJDER WEERGAVEN in SQL

Met SQL kunnen we een bestaande weergave verwijderen. We kunnen View verwijderen of laten vallen met behulp van de DROP-verklaring .

Syntaxis

  DROP VIEW   view_name;>

Voorbeeld

In dit voorbeeld verwijderen we de weergave MarksView.

  DROP VIEW   MarksView;>

UPDATE WEERGAVE in SQL

Als u de bestaande gegevens in de weergave wilt bijwerken, gebruikt u de UPDATE stelling.

Syntaxis

  UPDATE   view_name   SET   column1 = value1, column2 = value2...., columnN = valueN   WHERE   [condition];>

Opmerking: Niet alle weergaven kunnen worden bijgewerkt met de UPDATE-instructie.

Als u de weergavedefinitie wilt bijwerken zonder de gegevens te beïnvloeden, gebruikt u de MAAK OF VERVANG WEERGAVE stelling. u kunt deze syntaxis gebruiken

  CREATE OR REPLACE   VIEW view_name   AS    SELECT   column1, column2, ...   FROM   table_name   WHERE   condition;>

Regels voor het bijwerken van weergaven in SQL:

Er moet aan bepaalde voorwaarden zijn voldaan om een ​​weergave bij te werken. Als een van deze omstandigheden van toepassing is niet voldaan, kan de weergave niet worden bijgewerkt.

  1. De SELECT-instructie die wordt gebruikt om de weergave te maken, mag geen GROUP BY-clausule of ORDER BY-clausule bevatten.
  2. De SELECT-instructie mag niet het trefwoord DISTINCT bevatten.
  3. De weergave moet alle NIET NULL-waarden bevatten.
  4. De weergave mag niet worden gemaakt met behulp van geneste of complexe query's.
  5. De weergave moet worden gemaakt op basis van één enkele tabel. Als de weergave is gemaakt met behulp van meerdere tabellen, mogen we de weergave niet bijwerken.

Voorbeelden

Laten we eens kijken naar verschillende gebruiksscenario's voor het bijwerken van een weergave in SQL. We zullen deze gebruiksscenario's behandelen met voorbeelden om een ​​beter begrip te krijgen.

Voorbeeld 1: Weergave bijwerken om een ​​weergaveveld toe te voegen of te vervangen

Wij kunnen gebruik maken van de MAAK OF VERVANG WEERGAVE instructie om velden aan een weergave toe te voegen of te vervangen.

Als we de weergave willen bijwerken MarksView en voeg het veld AGE toe aan deze weergave van Studentenmerken Tabel, we kunnen dit doen door:

  CREATE OR REPLACE VIEW   MarksView AS   SELECT   StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE   FROM   StudentDetails, StudentMarks   WHERE   StudentDetails.NAME = StudentMarks.NAME;>

Als we nu alle gegevens uit MarksView ophalen als:

  SELECT   *   FROM   MarksView;>

Uitgang:

maak of vervang voorbeeldweergave

Voorbeeld 2: Weergave bijwerken om een ​​rij in een weergave in te voegen

We kunnen een rij in een View invoegen op dezelfde manier als in een tabel. Wij kunnen gebruik maken van de INVOEREN -instructie van SQL om een ​​rij in een weergave in te voegen.

In het onderstaande voorbeeld zullen we een nieuwe rij invoegen in de View DetailsView die we hierboven hebben gemaakt in het voorbeeld van het maken van views vanuit een enkele tabel.

  INSERT INTO   DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>

Als we nu alle gegevens uit DetailsView ophalen als,

  SELECT   *   FROM   DetailsView;>

Uitgang:

rij invoegen in weergavevoorbeeld

Voorbeeld 3: Een rij uit een weergave verwijderen

Het verwijderen van rijen uit een weergave is net zo eenvoudig als het verwijderen van rijen uit een tabel. We kunnen de DELETE-instructie van SQL gebruiken om rijen uit een weergave te verwijderen. Als u een rij uit een weergave verwijdert, wordt ook eerst de rij uit de daadwerkelijke tabel verwijderd, waarna de wijziging in de weergave wordt weerspiegeld.

In dit voorbeeld verwijderen we de laatste rij uit de weergave DetailsView die we zojuist hebben toegevoegd in het bovenstaande voorbeeld van het invoegen van rijen.

  DELETE FROM   DetailsView   WHERE   NAME='Suresh';>

Als we nu alle gegevens uit DetailsView ophalen als,

  SELECT   *   FROM   DetailsView;>

Uitgang:

verwijder rij uit weergavevoorbeeld

MET CHECK OPTIE Clausule

De MET CHECK-OPTIE clausule in SQL is een zeer nuttige clausule voor views. Het is van toepassing op een weergave die kan worden bijgewerkt.

De clausule WITH CHECK OPTION wordt gebruikt om gegevenswijziging te voorkomen (met behulp van INSERT of UPDATE) als niet aan de voorwaarde in de WHERE-clausule in de CREATE VIEW-instructie wordt voldaan.

Als we de clausule WITH CHECK OPTION in de instructie CREATE VIEW hebben gebruikt en als de clausule UPDATE of INSERT niet aan de voorwaarden voldoet, wordt er een fout geretourneerd.

MET CHECK-OPTIE Clausulevoorbeeld:

In het onderstaande voorbeeld maken we een View SampleView uit de StudentDetails-tabel met een WITH CHECK OPTION-clausule.

  CREATE VIEW   SampleView AS   SELECT   S_ID, NAME   FROM   StudentDetails   WHERE   NAME IS NOT NULL   WITH CHECK OPTION  ;>

Als we in deze weergave nu proberen een nieuwe rij met een nulwaarde in de kolom NAME in te voegen, wordt er een foutmelding gegeven omdat de weergave is gemaakt met de voorwaarde voor de kolom NAME als NOT NULL. Hoewel de weergave bijvoorbeeld kan worden bijgewerkt, is de onderstaande zoekopdracht voor deze weergave niet geldig:

  INSERT INTO   SampleView(S_ID)   VALUES  (6);>

OPMERKING : De standaardwaarde van de kolom NAAM is nul .

hoe groot is mijn beeldscherm

Gebruik van een weergave

Een goede database zou om de gegeven redenen views moeten bevatten:

  1. Gegevenstoegang beperken – Weergaven bieden een extra niveau van tabelbeveiliging door de toegang tot een vooraf bepaalde reeks rijen en kolommen van een tabel te beperken.
  2. Complexiteit van gegevens verbergen – Een weergave kan de complexiteit verbergen die bestaat in meerdere samengevoegde tabellen.
  3. Vereenvoudig opdrachten voor de gebruiker – Met weergaven kan de gebruiker informatie uit meerdere tabellen selecteren zonder dat de gebruiker daadwerkelijk hoeft te weten hoe hij een join moet uitvoeren.
  4. Complexe zoekopdrachten opslaan – Weergaven kunnen worden gebruikt om complexe query's op te slaan.
  5. Kolommen hernoemen – Views kunnen ook worden gebruikt om de kolommen een andere naam te geven zonder dat dit gevolgen heeft voor de basistabellen, op voorwaarde dat het aantal weergegeven kolommen overeenkomt met het aantal kolommen dat is opgegeven in een select-instructie. Het hernoemen helpt dus om de namen van de kolommen van de basistabellen te verbergen.
  6. Meerdere weergavemogelijkheden – Er kunnen voor verschillende gebruikers verschillende weergaven op dezelfde tafel worden gemaakt.

Belangrijkste punten over SQL-weergaven

  • Weergaven in SQL zijn een soort virtuele tabel.
  • De velden in een weergave kunnen afkomstig zijn uit één of meerdere tabellen.
  • We kunnen een weergave maken met behulp van de CREATE VIEW-instructie en een weergave verwijderen met behulp van de DROP VIEW-instructie.
  • We kunnen een weergave bijwerken met behulp van de CREATE OR REPLACE VIEW-instructie.
  • De clausule WITH CHECK OPTION wordt gebruikt om te voorkomen dat nieuwe rijen worden ingevoegd die niet voldoen aan de filtervoorwaarde van de weergave.