sql >> Databasteknik >  >> RDS >> Database

SQL VIEW

SQL VIEW-konceptet hjälper till att dölja posternas svårighetsgrad och ger begränsningar för åtkomst till databasen.

SQL-vyn liknar SQL-tabellerna. I SQL-tabeller lagrar vi hela data i rader och kolumner. På samma sätt används SQL View också för att lagra poster i rader och kolumner, men bara de data som användaren vill ha, inte onödiga data.

SQL VIEW är en virtuell tabell. SQL View tillåter endast åtkomst till specifika kolumnposter snarare än hela tabelldata.

Vi kan enkelt skapa en vy genom att välja en eller flera tabeller med nyckelordet CREATE VIEW. Vi kan också uppdatera och ta bort vyn.

I hela den här artikeln kommer vi att förstå konceptet med vy om hur man skapar en vy, tar bort en vy och uppdaterar en vy.

1 SKAPA SQL-vy:-

I SQL kan vi enkelt skapa en vy genom att använda nyckelordet CREATE VIEW. Vi kan skapa en vy för enkeltabellen och multipeltabellen.

Syntaxen för CREATE VIEW (Single Table)

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

Ovanstående syntax är till för att skapa en vy från en enda tabell. I ovanstående syntax är VIEW_NAME namnet på vyn för att skapa en vy i SQL. Tabellnamn är tabellens namn där vi kommer att välja specifika poster, WHERE-satsen är valfri i SQL-frågan.

Syntaxen för CREATE VIEW (flera tabeller)

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

Ovanstående syntax är till för att skapa en vy från flera tabeller. I ovanstående syntax är VIEW_NAME namnet på vyn för att skapa en vy i SQL. T1, T2 är namnet på tabeller där vi kommer att välja specifika poster, WHERE-satsen är valfri i SQL-frågan.

Betrakta följande tabeller tillsammans med de givna posterna.

Tabell 1:Emp

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING MANAGERID
1001 VAIBHAVI MISHRA 65 000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60 000 NOIDA ORACLE 1
1003 NIKHIL VANI 50 000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50 000 MUMBAI TESTER 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA VAR 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTER 4

Tabell 2:Manager.

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

Exempel för att SKAPA VY från en enda tabell.

Exempel 1:Skriv en fråga för att skapa en vy med medarbetar-id, förnamn, efternamn, lön från Emp-tabellen.

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

I frågan ovan skapade vi ett vynamn EMPLOYEE_VIEW med Employee Id, sammanfoga förnamn och efternamn som Namn, Lön från Emp Table.

När vi vill titta på posterna i tabellen använder vi SELECT * FROM-frågan; på samma sätt som vi kommer att göra för vy, istället för tabellnamnet, kommer vi att använda vynamn.

SELECT * FROM EMPLOYEE_VIEW;

Exempel 2:Skriv en fråga för att skapa en vy med chefs-ID, chefsnamn och avdelning från chefstabell.

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

I frågan ovan skapade vi ett vynamn MANAGER_VIEW med chefs-ID, chefsnamn och avdelning från chefstabellen.

När vi vill titta på posterna i tabellen använder vi SELECT * FROM-frågan. Vi kommer att använda vynnamnet. På samma sätt kommer vi att göra för visning istället för tabellnamnet.

SELECT * FROM MANAGER_VIEW;

Exempel 3:Skriv en fråga för att skapa en vy med anställd-id, förnamn, efternamn, lön, stad för de anställda vars lön är högre än 54 000 och stad inkluderar Pune och Mumbai från Emp-tabellen.

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

I ovanstående fråga skapade vi ett vynamn EMPLOYEE_VIEW1 med Employee Id, sammanfoga förnamn och efternamn som Namn, Lön, Stad för de anställda vars lön är högre än 54 000 och vi använde AND-operatören med City include Pune och Mumbai från Emp Table .

När vi vill titta på posterna i tabellen använder vi SELECT * FROM-frågan. Vi kommer att använda vynnamnet. På samma sätt kommer vi att göra för visning istället för tabellnamnet.

SELECT * FROM EMPLOYEE_VIEW1;

Exempel 4:Skriv en fråga för att skapa en vy med chefs-ID, chefsnamn och avdelning för de chefer vars avdelning är "Oracle" och "Java" från chefstabellen.

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

I frågan ovan skapade vi ett vynamn MANAGER_VIEW med chefs-ID, chefsnamn och avdelning för de chefer vars avdelning är "Oracle" och "Java" från Manager Table.

När vi vill titta på posterna i tabellen använder vi SELECT * FROM-frågan. Vi kommer att använda vynnamnet. På samma sätt kommer vi att göra för visning istället för tabellnamnet.

SELECT * FROM MANAGER_VIEW1;

Alla ovanstående exempel på CREATE VIEW är från enstaka tabeller. Nästa exempel på CREATE VIEW är från flera tabeller.

Betrakta följande tabeller tillsammans med de givna posterna.

Tabell 1:Emp

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING MANAGERID
1001 VAIBHAVI MISHRA 65 000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60 000 NOIDA ORACLE 1
1003 NIKHIL VANI 50 000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50 000 MUMBAI TESTER 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA VAR 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTER 4

Tabell 2:Manager.

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

Exempel 1:Skriv en fråga för att skapa vy med anställd-id, namn, stad, chefs-ID och chefsnamn från Emp Table och Manager Table.

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;   

I ovanstående fråga skapade vi en vy med anställd-id, namn, stad, chefs-ID och chefsnamn från Emp Table och Manager Table.

När vi vill titta på posterna i tabellen använder vi SELECT * FROM-frågan. Vi kommer att använda vynnamnet. På samma sätt kommer vi att göra för visning istället för tabellnamnet.

SELECT * FROM EMP_MAN_VIEW;

2 UPPDATERA SQL-VY:-

Uppdateringssatsen ändrar den befintliga tabellen och befintliga vyn i SQL. Vi kan också infoga ny data i den befintliga vyn i SQL. I SQL ändras en vy endast när nedanstående villkor är uppfyllda. Om något av de angivna villkoren inte uppfylls kommer vi inte att kunna ändra vyn.

  • DISTINCT-sökord ska inte användas i SELECT-satsen.
  • Vyn ska inte ha alla NOT NULL-värden.
  • Bör inte använda ORDER BY-satsen och GROUP BY-satsen när du skapar en vy i SELECT-satsen.
  • Om den skapade vyn innehåller kolumner från den enskilda tabellen, får vi ändra vyn. d.v.s. användningen av flera tabeller är inte tillåten.
  • Vyn ska inte skapas med hjälp av en underfråga eller inkludera komplexa frågor
  • Vyn innehåller alla SQL-aggregatfunktioner; vi får inte ändra den befintliga vyn.

CREATE OR REPLACE VIEW-satsen används för att lägga till nya fält eller släppa fält från vyn.

Syntax: 

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

Exempel 1:Skriv en fråga för att uppdatera Employee_View och lägg till kolumnen Manager Id från Emp-tabellen i vyn.

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

Ovanstående fråga modifierar den befintliga Employee_view och modifierar posterna baserat på den givna SELECT-frågan.

När vi vill titta på posterna i tabellen använder vi SELECT * FROM-frågan. Vi kommer att använda vynnamnet. På samma sätt kommer vi att göra för visning istället för tabellnamnet.

SELECT * FROM EMPLOYEE_VIEW;

Exempel 2:Skriv en fråga för att uppdatera Manager_View.

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

Ovanstående fråga modifierar den befintliga Employee_view och modifierar posterna baserat på den givna SELECT-frågan.

När vi vill titta på posterna i tabellen använder vi SELECT * FROM-frågan. Vi kommer att använda vynnamnet. På samma sätt kommer vi att göra för visning istället för tabellnamnet.

SELECT * FROM MANAGER_VIEW;

Infogar ny post i den befintliga vyn

Vi lägger in de nya posterna i tabellen. På samma sätt kan vi också sätta in den i synen.

Syntax

INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);

Exempel:skriv en fråga för att infoga en ny post i Manager_view.

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

När vi infogar nya poster i Manager_View. För att kontrollera att ny data har infogats eller inte använder vi SELECT-frågan:

SELECT * FROM MANAGER_VIEW; 

3 DROPPSVISNING:-

Vi släpper bordet. På samma sätt kan vi också släppa visningen.

Syntax:

DROP VIEW VIEW_NAME;

Exempel:Skriv en fråga för att släppa EMP_MAN_VIEW.

DROP VIEW EMP_MAN_VIEW; 

Om vi ​​vill kontrollera om en vy är raderad eller inte, använder vi frågan VISA TABELL.

SHOW TABLES;

Vynamnet EMP_MAN_VIEW finns inte i databasen, vilket betyder att vi har släppt vyn.


  1. Korrekt bevarade beräknade kolumner

  2. connection.select_value returnerar endast strängar i postgres med pg gem

  3. Ställa in nätverkstidsgräns för JDBC-anslutning

  4. EXP() Exempel i SQL Server