sql >> Database teknologi >  >> RDS >> Database

SQL VISNING

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.


  1. 3 måder at konvertere et heltal til decimal i SQL Server

  2. Lower()-funktionen på internationale tegn i postgresql

  3. Felttyper og anvendelser i Access 2019-databaser

  4. Guide til designdatabase til blogstyring i MySQL