SQL VIEW-konceptet hjælper med at skjule sværhedsgraden af posterne og giver begrænsninger for adgang til databasen.
SQL-visningen ligner SQL-tabellerne. I SQL Tables gemmer vi hele data i rækker og kolonner. På samme måde bruges SQL View også til at gemme poster i rækker og kolonner, men kun de data, som brugeren ønsker, ikke unødvendige data.
SQL VIEW er en virtuel tabel. SQL View giver kun adgang til specifikke kolonneposter i stedet for hele tabeldataene.
Vi kan nemt oprette en visning ved at vælge en eller flere tabeller ved hjælp af CREATE VIEW nøgleordet. Vi kan også opdatere og slette visningen.
I hele denne artikel vil vi forstå begrebet visning om, hvordan man opretter en visning, sletter en visning og opdaterer en visning.
1 OPRET SQL-VISNING:-
I SQL kan vi nemt oprette en visning ved at bruge CREATE VIEW nøgleordet. Vi kan oprette en visning for enkelttabellen og multipla-tabellen.
Syntaksen for CREATE VIEW (enkelt tabel)
CREATE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
Ovenstående syntaks er til at skabe en visning fra en enkelt tabel. I ovenstående syntaks er VIEW_NAME navnet på visningen til at oprette en visning i SQL. Tabelnavn er tabellens navn, hvorfra vi vil vælge specifikke poster. WHERE-sætningen er valgfri i SQL-forespørgslen.
Syntaksen for CREATE VIEW (Multiple Table)
CREATE VIEW VIEW_NAME AS SELECT T1.COLUMN_NAME, T1.COLUMN_NAME2, T2.COLUMN_NAME1, T2.COLUMN_NAME2 FROM T1, T2 WHERE CONDITION;
Ovenstående syntaks er til at skabe en visning fra flere tabeller. I ovenstående syntaks er VIEW_NAME navnet på visningen til at oprette en visning i SQL. T1, T2 er navnet på tabeller, hvorfra vi vil vælge specifikke poster, WHERE-sætning er valgfri i SQL-forespørgslen.
Overvej følgende tabeller sammen med de givne poster.
Tabel 1:Emp
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | 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 | TEST | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | HVOR | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TEST | 4 |
Tabel 2:Manager.
Managerid | manager_navn | manager_afdeling |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TEST |
Eksempler på CREATE VIEW fra en enkelt tabel.
Eksempel 1:Skriv en forespørgsel for at oprette en visning med medarbejder-id, fornavn, efternavn, løn fra Emp-tabellen.
CREATE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY FROM EMP;
I ovenstående forespørgsel oprettede vi et visningsnavn EMPLOYEE_VIEW med medarbejder-id, sammenkæde fornavn og efternavn som Navn, Løn fra Emp Table.
Når vi ønsker at se på posterne i tabellen, bruger vi SELECT * FROM forespørgslen; på samme måde som vi vil gøre for visning, i stedet for tabelnavnet, vil vi bruge visningsnavn.
SELECT * FROM EMPLOYEE_VIEW;
Eksempel 2:Skriv en forespørgsel for at oprette en visning med leder-id, ledernavn og afdeling fra ledertabel.
CREATE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER;
I ovenstående forespørgsel oprettede vi et visningsnavn MANAGER_VIEW med leder-id, ledernavn og afdeling fra ledertabel.
Når vi ønsker at se på posterne i tabellen, bruger vi SELECT * FROM forespørgslen. Vi vil bruge visningsnavnet. På samme måde vil vi gøre for visning i stedet for tabelnavnet.
SELECT * FROM MANAGER_VIEW;
Eksempel 3:Skriv en forespørgsel for at oprette en visning med medarbejder-id, fornavn, efternavn, løn, by for de medarbejdere, hvis løn er større end 54.000, og by inkluderer Pune og Mumbai fra 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 ovenstående forespørgsel oprettede vi et visningsnavn EMPLOYEE_VIEW1 med medarbejder-id, sammenkæd fornavn og efternavn som navn, løn, by for de ansatte, hvis løn er større end 54.000, og vi brugte AND-operator med City include Pune og Mumbai fra Emp Table .
Når vi ønsker at se på posterne i tabellen, bruger vi SELECT * FROM forespørgslen. Vi vil bruge visningsnavnet. På samme måde vil vi gøre for visning i stedet for tabelnavnet.
SELECT * FROM EMPLOYEE_VIEW1;
Eksempel 4:Skriv en forespørgsel for at oprette en visning med leder-id, ledernavn og afdeling for de ledere, hvis afdeling er 'Oracle' og 'Java' fra ledertabel.
CREATE VIEW MANAGER_VIEW1 AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER; WHERE MANAGER_DEPARTMENT IN (‘ORACLE’, ‘JAVA’);
I ovenstående forespørgsel oprettede vi et visningsnavn MANAGER_VIEW med leder-id, ledernavn og afdeling for de ledere, hvis afdeling er "Oracle", og "Java" fra ledertabellen.
Når vi ønsker at se på posterne i tabellen, bruger vi SELECT * FROM forespørgslen. Vi vil bruge visningsnavnet. På samme måde vil vi gøre for visning i stedet for tabelnavnet.
SELECT * FROM MANAGER_VIEW1;
Alle ovenstående eksempler på CREATE VIEW er fra enkelttabeller. Det næste eksempel på CREATE VIEW er fra flere tabeller.
Overvej følgende tabeller sammen med de givne poster.
Tabel 1:Emp
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | 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 | TEST | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | HVOR | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TEST | 4 |
Tabel 2:Manager.
Managerid | manager_navn | manager_afdeling |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TEST |
Eksempel 1:Skriv en forespørgsel for at oprette visning med medarbejder-id, navn, by, leder-id og ledernavn fra Emp Table og 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 ovenstående forespørgsel oprettede vi en visning med medarbejder-id, navn, by, leder-id og ledernavn fra Emp Table og Manager Table.
Når vi ønsker at se på posterne i tabellen, bruger vi SELECT * FROM forespørgslen. Vi vil bruge visningsnavnet. På samme måde vil vi gøre for visning i stedet for tabelnavnet.
SELECT * FROM EMP_MAN_VIEW;
2 OPDATERING SQL-VISNING:-
Opdateringssætningen ændrer den eksisterende tabel og eksisterende visning i SQL. Vi kan også indsætte nye data i den eksisterende visning i SQL. I SQL ændres en visning kun, når nedenstående betingelser er opfyldt. Hvis en af de givne betingelser ikke er opfyldt, vil vi ikke være i stand til at ændre visningen.
- DISTINCT søgeord bør ikke bruges i SELECT-sætningen.
- Visningen bør ikke have alle NOT NULL-værdier.
- Bør ikke bruge ORDER BY-sætning og GROUP BY-sætning, mens du opretter en visning i SELECT-sætningen.
- Hvis den oprettede visning indeholder kolonner fra den enkelte tabel, har vi lov til at ændre visningen. dvs. brugen af flere tabeller i visningen er ikke tilladt.
- Visningen bør ikke oprettes ved hjælp af en underforespørgsel eller indeholde komplekse forespørgsler
- Udvalget indeholder alle SQL-aggregatfunktioner; vi har ikke tilladelse til at ændre den eksisterende visning.
CREATE OR REPLACE VIEW-sætning bruges til at tilføje nye felter eller slippe felter fra visningen.
Syntaks:
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
Eksempel 1:Skriv en forespørgsel for at opdatere Employee_View og tilføj kolonnen Manager Id fra Emp-tabellen i visningen.
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');
Ovenstående forespørgsel ændrer den eksisterende Employee_view og ændrer posterne baseret på den givne SELECT-forespørgsel.
Når vi ønsker at se på posterne i tabellen, bruger vi SELECT * FROM forespørgslen. Vi vil bruge visningsnavnet. På samme måde vil vi gøre for visning i stedet for tabelnavnet.
SELECT * FROM EMPLOYEE_VIEW;
Eksempel 2:Skriv en forespørgsel for at opdatere Manager_View.
CREATE OR REPLACE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME FROM MANAGER WHERE MANAGER_NAME LIKE ‘A%’;
Ovenstående forespørgsel ændrer den eksisterende Employee_view og ændrer posterne baseret på den givne SELECT-forespørgsel.
Når vi ønsker at se på posterne i tabellen, bruger vi SELECT * FROM forespørgslen. Vi vil bruge visningsnavnet. På samme måde vil vi gøre for visning i stedet for tabelnavnet.
SELECT * FROM MANAGER_VIEW;
Indsætter ny post i den eksisterende visning
Vi indsætter de nye poster i tabellen. På samme måde kan vi også indsætte det til syne.
Syntaks
INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);
Eksempel:Skriv en forespørgsel for at indsætte en ny post i Manager_view.
INSERT INTO MANAGER_VIEW VALUES (5, ‘Akash Kadam’);
Når vi indsætter nye poster i Manager_View. For at kontrollere, om nye data er indsat eller ej, bruger vi SELECT-forespørgslen:
SELECT * FROM MANAGER_VIEW;
3 DROP VISNING:-
Vi taber bordet. På samme måde kan vi også droppe view.
Syntaks:
DROP VIEW VIEW_NAME;
Eksempel:Skriv en forespørgsel for at slette EMP_MAN_VIEW.
DROP VIEW EMP_MAN_VIEW;
Hvis vi vil kontrollere, om en visning er slettet eller ej, vil vi bruge forespørgslen VIS TABELLER.
SHOW TABLES;
Visningsnavnet EMP_MAN_VIEW er ikke i databasen, hvilket betyder, at vi har slettet visningen.