sql >> Database >  >> RDS >> Database

SQL VIEW

Het SQL VIEW-concept helpt de moeilijkheidsgraad van de records te verbergen en biedt beperkingen voor de toegang tot de database.

De SQL-weergave is vergelijkbaar met de SQL-tabellen. In SQL-tabellen slaan we volledige gegevens op in rijen en kolommen. Op dezelfde manier wordt SQL View ook gebruikt om records in rijen en kolommen op te slaan, maar alleen die gegevens die de gebruiker wil, geen onnodige gegevens.

SQL VIEW is een virtuele tabel. Met SQL View heeft u alleen toegang tot specifieke kolomrecords in plaats van tot de volledige tabelgegevens.

We kunnen eenvoudig een weergave maken door een of meer tabellen te selecteren met het trefwoord CREATE VIEW. We kunnen de weergave ook bijwerken en verwijderen.

In dit hele artikel zullen we het concept van weergave begrijpen over hoe u een weergave kunt maken, een weergave kunt verwijderen en een weergave kunt bijwerken.

1 MAAK SQL-VIEW:-

In SQL kunnen we eenvoudig een weergave maken door het trefwoord CREATE VIEW te gebruiken. We kunnen een weergave maken voor de enkele tafel en de veelvoudentabel.

De syntaxis voor CREATE VIEW (enkele tabel)

CREATE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;    

De bovenstaande syntaxis is voor het maken van een weergave van een enkele tabel. In de bovenstaande syntaxis is VIEW_NAME de naam van de weergave om een ​​weergave in SQL te maken. Table_name is de naam van de tabel waaruit we specifieke records zullen selecteren, de WHERE-clausule is optioneel in de SQL-query.

De syntaxis voor CREATE VIEW (Meerdere tabellen)

CREATE VIEW VIEW_NAME AS SELECT T1.COLUMN_NAME, T1.COLUMN_NAME2, T2.COLUMN_NAME1, T2.COLUMN_NAME2 FROM T1, T2 WHERE CONDITION;

De bovenstaande syntaxis is voor het maken van een weergave van meerdere tabellen. In de bovenstaande syntaxis is VIEW_NAME de naam van de weergave om een ​​weergave in SQL te maken. T1, T2 is de naam van tabellen waaruit we specifieke records zullen selecteren, WHERE-clausule is optioneel in de SQL-query.

Bekijk de volgende tabellen samen met de gegeven records.

Tabel 1:Werknemer

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORAKLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORAKLE 1
1003 NIKHIL VANI 50000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI TESTEN 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WAAR 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTEN 4

Tabel 2:Manager.

Managerid manager_name manager_department
1 Snehdeep Kaur ORAKLE
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TESTEN

Voorbeelden om VIEW te MAKEN van een enkele tabel.

Voorbeeld 1:Schrijf een query om een ​​weergave te maken met Werknemer-ID, Voornaam, Achternaam, Salaris van Werknemer-tabel.

CREATE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY FROM EMP;

In de bovenstaande zoekopdracht hebben we een weergavenaam EMPLOYEE_VIEW gemaakt met werknemers-ID, voeg de voornaam en achternaam samen als naam, salaris uit de personeelstabel.

Wanneer we de records in de tabel willen bekijken, gebruiken we de SELECT * FROM-query; op dezelfde manier die we zullen doen voor weergave, in plaats van de tabelnaam, zullen we de weergavenaam gebruiken.

SELECT * FROM EMPLOYEE_VIEW;

Voorbeeld 2:Schrijf een query om een ​​weergave te maken met Manager-ID, Managernaam en Afdeling uit Managertabel.

CREATE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER;

In de bovenstaande query hebben we een weergavenaam MANAGER_VIEW gemaakt met manager-ID, managernaam en afdeling uit de managertabel.

Wanneer we de records in de tabel willen bekijken, gebruiken we de SELECT * FROM-query. We gebruiken de weergavenaam. Op dezelfde manier doen we het voor weergave in plaats van de tabelnaam.

SELECT * FROM MANAGER_VIEW;

Voorbeeld 3:Schrijf een query om een ​​weergave te maken met Werknemer-ID, Voornaam, Achternaam, Salaris, Stad van die werknemers wiens salaris hoger is dan 54000 en Plaats inclusief Pune en Mumbai uit de Emp-tabel.

CREATE VIEW EMPLOYEE_VIEW1 AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY, CITY FROM EMP WHERE SALARY > 54000 AND  CITY IN (‘PUNE’, ‘MUMBAI’);

In de bovenstaande query hebben we een weergavenaam EMPLOYEE_VIEW1 gemaakt met werknemers-ID, voeg voornaam en achternaam samen als Naam, Salaris, Stad van die werknemers met een salaris hoger dan 54000 en we gebruikten de AND-operator met City include Pune en Mumbai van Emp Table .

Wanneer we de records in de tabel willen bekijken, gebruiken we de SELECT * FROM-query. We gebruiken de weergavenaam. Op dezelfde manier doen we het voor weergave in plaats van de tabelnaam.

SELECT * FROM EMPLOYEE_VIEW1;

Voorbeeld 4:Schrijf een query om een ​​weergave te maken met Manager-ID, Managernaam en Afdeling van die managers wiens afdeling 'Oracle' en 'Java' is uit Managertabel.

CREATE VIEW MANAGER_VIEW1 AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER; WHERE MANAGER_DEPARTMENT IN (‘ORACLE’, ‘JAVA’);

In de bovenstaande query hebben we een weergavenaam MANAGER_VIEW gemaakt met Manager-ID, Managernaam en Afdeling van die managers wiens afdeling 'Oracle' is en 'Java' uit Managertabel.

Wanneer we de records in de tabel willen bekijken, gebruiken we de SELECT * FROM-query. We gebruiken de weergavenaam. Op dezelfde manier doen we het voor weergave in plaats van de tabelnaam.

SELECT * FROM MANAGER_VIEW1;

Alle bovenstaande voorbeelden van CREATE VIEW zijn afkomstig uit enkele tabellen. Het volgende voorbeeld van CREATE VIEW is van meerdere tabellen.

Bekijk de volgende tabellen samen met de gegeven records.

Tabel 1:Werknemer

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORAKLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORAKLE 1
1003 NIKHIL VANI 50000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI TESTEN 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WAAR 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTEN 4

Tabel 2:Manager.

Managerid manager_name manager_department
1 Snehdeep Kaur ORAKLE
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TESTEN

Voorbeeld 1:Schrijf een query om een ​​weergave te maken met werknemers-ID, naam, stad, manager-ID en managernaam uit de Werknemerstabel en Managertabel.

CREATE VIEW EMP_MAN_VIEW AS SELECT EMP.EMPLOYEEID, CONCAT(EMP.FIRST_NAME, CONCAT(“ ”, EMP.LAST_NAME)) AS NAME, CITY, MANAGER.MANAGERID, MANAGER.MANAGER_NAME FROM EMP, MANAGER WHERE EMP.MANAGERID = MANAGER.MANAGERID;   

In de bovenstaande query hebben we een weergave gemaakt met werknemers-ID, naam, stad, manager-ID en managernaam uit de Werknemerstabel en Managertabel.

Wanneer we de records in de tabel willen bekijken, gebruiken we de SELECT * FROM-query. We gebruiken de weergavenaam. Op dezelfde manier doen we het voor weergave in plaats van de tabelnaam.

SELECT * FROM EMP_MAN_VIEW;

2 UPDATE SQL VIEW:-

De update-instructie wijzigt de bestaande tabel en de bestaande weergave in de SQL. We kunnen ook nieuwe gegevens invoegen in de bestaande weergave in de SQL. In SQL wordt een weergave alleen gewijzigd als aan de onderstaande voorwaarden is voldaan. Als aan een van de gegeven voorwaarden niet wordt voldaan, kunnen we de weergave niet wijzigen.

  • DISTINCT-sleutelwoord mag niet worden gebruikt in de SELECT-instructie.
  • De weergave mag niet alle NIET NULL-waarden hebben.
  • Moet de ORDER BY-clausule en GROUP BY-clausule niet gebruiken bij het maken van een weergave in de SELECT-instructie.
  • Als de gemaakte weergave kolommen uit de enkele tabel bevat, mogen we de weergave wijzigen. d.w.z. het gebruik van meerdere tabellen in de weergave is niet toegestaan.
  • De weergave mag niet worden gemaakt met behulp van een subquery of complexe query's bevatten
  • De weergave bevat alle SQL-aggregatiefuncties; we mogen de bestaande weergave niet wijzigen.

De instructie CREATE OR REPLACE VIEW wordt gebruikt om nieuwe velden toe te voegen of om velden uit de weergave te verwijderen.

Syntaxis: 

CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;    

Voorbeeld 1:Schrijf een query om de Employee_View bij te werken en voeg de Manager-ID-kolom uit de Emp-tabel toe aan de weergave.

CREATE OR REPLACE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT(FIRST_NAME,CONCAT(" ", LAST_NAME)) AS NAME, SALARY, MANAGERID FROM EMP WHERE DEPARTMENT IN ('ORACLE', 'FMW');

De bovenstaande query wijzigt de bestaande Employee_view en wijzigt de records op basis van de gegeven SELECT-query.

Wanneer we de records in de tabel willen bekijken, gebruiken we de SELECT * FROM-query. We gebruiken de weergavenaam. Op dezelfde manier doen we het voor weergave in plaats van de tabelnaam.

SELECT * FROM EMPLOYEE_VIEW;

Voorbeeld 2:Schrijf een query om de Manager_View bij te werken.

CREATE OR REPLACE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME FROM MANAGER WHERE MANAGER_NAME LIKE ‘A%’;

De bovenstaande query wijzigt de bestaande Employee_view en wijzigt de records op basis van de gegeven SELECT-query.

Wanneer we de records in de tabel willen bekijken, gebruiken we de SELECT * FROM-query. We gebruiken de weergavenaam. Op dezelfde manier doen we het voor weergave in plaats van de tabelnaam.

SELECT * FROM MANAGER_VIEW;

Nieuw record invoegen in de bestaande weergave

We voegen de nieuwe records in de tabel in. Op dezelfde manier kunnen we het ook in beeld invoegen.

Syntaxis

INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);

Voorbeeld:schrijf een query om een ​​nieuw record in de Manager_view in te voegen.

INSERT INTO MANAGER_VIEW VALUES (5, ‘Akash Kadam’);

Terwijl we nieuwe records invoegen in Manager_View. Om te controleren of er nieuwe gegevens zijn ingevoerd of niet, gebruiken we de SELECT-query:

SELECT * FROM MANAGER_VIEW; 

3 DROP VIEW:-

We laten de tafel vallen. Op dezelfde manier kunnen we de weergave ook laten vallen.

Syntaxis:

DROP VIEW VIEW_NAME;

Voorbeeld:schrijf een query om de EMP_MAN_VIEW te verwijderen.

DROP VIEW EMP_MAN_VIEW; 

Als we willen controleren of een weergave is verwijderd of niet, gebruiken we de SHOW TABLES-query.

SHOW TABLES;

Weergavenaam EMP_MAN_VIEW staat niet in de database, wat betekent dat we de weergave succesvol hebben verwijderd.


  1. Organiseer uw thuiskantoor voor meer productiviteit

  2. SQL Server 2008 - volgorde op tekenreeksen met numeriek nummer

  3. Hoe kan ik een .sql-bestand importeren in mijn Heroku postgres-database?

  4. Updatequery's optimaliseren