Database
 sql >> Baza danych >  >> RDS >> Database

WIDOK SQL

Koncepcja SQL VIEW pomaga ukryć trudność rekordów i zapewnia ograniczenia dostępu do bazy danych.

Widok SQL jest podobny do tabel SQL. W SQL Tables przechowujemy całe dane w wierszach i kolumnach. W ten sam sposób SQL View jest również używany do przechowywania rekordów w wierszach i kolumnach, ale tylko tych danych, których chce użytkownik, a nie niepotrzebnych danych.

SQL VIEW to wirtualna tabela. Widok SQL umożliwia dostęp tylko do określonych rekordów kolumn, a nie do całych danych tabeli.

Widok możemy łatwo utworzyć, wybierając jedną lub więcej tabel za pomocą słowa kluczowego CREATE VIEW. Możemy również aktualizować i usuwać widok.

W całym tym artykule zrozumiemy koncepcję widoku dotyczącą tworzenia widoku, usuwania widoku i aktualizowania widoku.

1 UTWÓRZ WIDOK SQL:-

W SQL możemy łatwo stworzyć widok używając słowa kluczowego CREATE VIEW. Możemy utworzyć widok dla pojedynczej tabeli i wielu tabel.

Składnia CREATE VIEW (pojedyncza tabela)

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

Powyższa składnia służy do tworzenia widoku z jednej tabeli. W powyższej składni VIEW_NAME to nazwa widoku do utworzenia widoku w SQL. Nazwa_tabeli to nazwa tabeli, z której będziemy wybierać konkretne rekordy, klauzula WHERE jest opcjonalna w zapytaniu SQL.

Składnia CREATE VIEW (wiele tabel)

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

Powyższa składnia służy do tworzenia widoku z wielu tabel. W powyższej składni VIEW_NAME to nazwa widoku do utworzenia widoku w SQL. T1, T2 to nazwa tabel, z których będziemy wybierać konkretne rekordy, klauzula WHERE jest opcjonalna w zapytaniu SQL.

Rozważ poniższe tabele wraz z podanymi rekordami.

Tabela 1:Emp

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY
1001 VAIBHAVI MISHRA 65000 PUNE WYROCZNIA 1
1002 VAIBHAV SHARMA 60000 NOIDA WYROCZNIA 1
1003 NIKHIL VANI 50000 JAIPUR FMW 2
2001 PRACI SHARMA 55500 CZANDIGAR WYROCZNIA 1
2002 PRZYJMUJ SIĘ JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAJ TESTOWANIE 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA GDZIE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAJ JAVA 3
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4

Tabela 2:Menedżer.

Identyfikator menedżera nazwa_menedżera manager_department
1 Snehdeep Kaur WYROCZNIA
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TESTOWANIE

Przykłady tworzenia WIDOKU z jednej tabeli.

Przykład 1:Napisz zapytanie, aby utworzyć widok z identyfikatorem pracownika, imieniem, nazwiskiem, wynagrodzeniem z tabeli Emp.

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

W powyższym zapytaniu utworzyliśmy nazwę widoku EMPLOYEE_VIEW z identyfikatorem pracownika, połącz imię i nazwisko jako Imię i Wynagrodzenie z tabeli Emp.

Ilekroć chcemy przejrzeć rekordy w tabeli, używamy zapytania SELECT * FROM; w ten sam sposób, co zrobimy dla widoku, zamiast nazwy tabeli użyjemy nazwy widoku.

SELECT * FROM EMPLOYEE_VIEW;

Przykład 2:Napisz zapytanie, aby utworzyć widok z identyfikatorem menedżera, nazwą menedżera i działem z tabeli menedżerów.

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

W powyższym zapytaniu utworzyliśmy nazwę widoku MANAGER_VIEW z identyfikatorem menedżera, nazwą menedżera i działem z tabeli menedżerów.

Ilekroć chcemy przejrzeć rekordy w tabeli, używamy zapytania SELECT * FROM. Użyjemy nazwy widoku. Podobnie zrobimy dla widoku zamiast nazwy tabeli.

SELECT * FROM MANAGER_VIEW;

Przykład 3:Napisz zapytanie, aby utworzyć widok z identyfikatorem pracownika, imieniem, nazwiskiem, wynagrodzeniem, miastem pracowników, których wynagrodzenie jest większe niż 54000, a miasto zawiera Pune i Bombaj z tabeli Emp.

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

W powyższym zapytaniu utworzyliśmy nazwę widoku EMPLOYEE_VIEW1 z identyfikatorem pracownika, połączmy imię i nazwisko jako Imię, Wynagrodzenie, Miasto tych pracowników, których wynagrodzenie jest większe niż 54000 i użyliśmy operatora AND z miastami to Pune i Mumbai z tabeli Emp .

Ilekroć chcemy przejrzeć rekordy w tabeli, używamy zapytania SELECT * FROM. Użyjemy nazwy widoku. Podobnie zrobimy dla widoku zamiast nazwy tabeli.

SELECT * FROM EMPLOYEE_VIEW1;

Przykład 4:Napisz zapytanie, aby utworzyć widok z identyfikatorem menedżera, nazwą menedżera i działem tych menedżerów, których dział to „Oracle” i „Java” z tabeli menedżerów.

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

W powyższym zapytaniu utworzyliśmy nazwę widoku MANAGER_VIEW z identyfikatorem menedżera, nazwą menedżera i działem tych menedżerów, których dział to „Oracle” i „Java” z tabeli menedżerów.

Ilekroć chcemy przejrzeć rekordy w tabeli, używamy zapytania SELECT * FROM. Użyjemy nazwy widoku. Podobnie zrobimy dla widoku zamiast nazwy tabeli.

SELECT * FROM MANAGER_VIEW1;

Wszystkie powyższe przykłady CREATE VIEW pochodzą z pojedynczych tabel. Następny przykład CREATE VIEW pochodzi z wielu tabel.

Rozważ poniższe tabele wraz z podanymi rekordami.

Tabela 1:Emp

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY
1001 VAIBHAVI MISHRA 65000 PUNE WYROCZNIA 1
1002 VAIBHAV SHARMA 60000 NOIDA WYROCZNIA 1
1003 NIKHIL VANI 50000 JAIPUR FMW 2
2001 PRACI SHARMA 55500 CZANDIGAR WYROCZNIA 1
2002 PRZYJMUJ SIĘ JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAJ TESTOWANIE 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA GDZIE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAJ JAVA 3
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4

Tabela 2:Menedżer.

Identyfikator menedżera nazwa_menedżera manager_department
1 Snehdeep Kaur WYROCZNIA
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TESTOWANIE

Przykład 1:Napisz zapytanie, aby utworzyć widok z identyfikatorem pracownika, nazwiskiem, miastem, identyfikatorem menedżera i nazwiskiem menedżera z tabeli Emp i tabeli menedżera.

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;   

W powyższym zapytaniu utworzyliśmy widok z identyfikatorem pracownika, nazwiskiem, miastem, identyfikatorem menedżera i nazwiskiem menedżera z tabeli Emp i tabeli menedżerów.

Ilekroć chcemy przejrzeć rekordy w tabeli, używamy zapytania SELECT * FROM. Użyjemy nazwy widoku. Podobnie zrobimy dla widoku zamiast nazwy tabeli.

SELECT * FROM EMP_MAN_VIEW;

2 AKTUALIZUJ WIDOK SQL:-

Instrukcja aktualizacji modyfikuje istniejącą tabelę i istniejący widok w SQL. Możemy również wstawić nowe dane do istniejącego widoku w SQL. W SQL widok jest modyfikowany tylko wtedy, gdy spełnione są poniższe warunki. Jeśli jeden z podanych warunków nie zostanie spełniony, nie będziemy mogli zmodyfikować widoku.

  • Słowo kluczowe DISTINCT nie powinno być używane w instrukcji SELECT.
  • Widok nie powinien zawierać wszystkich wartości NOT NULL.
  • Nie należy używać klauzul ORDER BY i GROUP BY podczas tworzenia widoku w instrukcji SELECT.
  • Jeżeli utworzony widok zawiera kolumny z pojedynczej tabeli, to możemy modyfikować widok. tzn. używanie wielu tabel w widoku jest niedozwolone.
  • Widok nie powinien być tworzony przy użyciu podzapytania ani zawierać złożonych zapytań
  • Widok zawiera dowolne funkcje agregujące SQL; nie możemy modyfikować istniejącego widoku.

Instrukcja CREATE OR REPLACE VIEW służy do dodawania nowych pól lub usuwania pól z widoku.

Składnia: 

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

Przykład 1:Napisz zapytanie aktualizujące widok Employee_View i dodaj kolumnę Identyfikator menedżera z tabeli Emp w widoku.

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

Powyższe zapytanie modyfikuje istniejący Employee_view i modyfikuje rekordy na podstawie danego zapytania SELECT.

Ilekroć chcemy przejrzeć rekordy w tabeli, używamy zapytania SELECT * FROM. Użyjemy nazwy widoku. Podobnie zrobimy dla widoku zamiast nazwy tabeli.

SELECT * FROM EMPLOYEE_VIEW;

Przykład 2:Napisz zapytanie, aby zaktualizować Manager_View.

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

Powyższe zapytanie modyfikuje istniejący Employee_view i modyfikuje rekordy na podstawie danego zapytania SELECT.

Ilekroć chcemy przejrzeć rekordy w tabeli, używamy zapytania SELECT * FROM. Użyjemy nazwy widoku. Podobnie zrobimy dla widoku zamiast nazwy tabeli.

SELECT * FROM MANAGER_VIEW;

Wstawianie nowego rekordu do istniejącego widoku

Wstawiamy nowe rekordy do tabeli. W ten sam sposób możemy również wstawić go do widoku.

Składnia

INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);

Przykład:napisz zapytanie, aby wstawić nowy rekord do widoku menedżera.

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

Gdy wstawiamy nowe rekordy do Manager_View. Aby sprawdzić, czy wstawiono nowe dane, czy nie, użyjemy zapytania SELECT:

SELECT * FROM MANAGER_VIEW; 

WIDOK Z 3 UPADKU:-

Odrzucamy stół. W ten sam sposób możemy również upuścić widok.

Składnia:

DROP VIEW VIEW_NAME;

Przykład:Napisz zapytanie, aby usunąć EMP_MAN_VIEW.

DROP VIEW EMP_MAN_VIEW; 

Jeśli chcemy sprawdzić, czy widok został usunięty, czy nie, użyjemy zapytania SHOW TABLES.

SHOW TABLES;

Nazwa widoku EMP_MAN_VIEW nie znajduje się w bazie danych, co oznacza, że ​​pomyślnie usunęliśmy widok.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Model bazy danych dla usługi taksówkowej

  2. Salesforce SOQL z Windows PowerShell

  3. Dedykowana procedura składowana umożliwiająca uzyskanie najnowszego stanu kopii zapasowych bazy danych

  4. Kłopot z wielkimi danymi:sprzęt lub oprogramowanie… Urządzenia…

  5. Przepisywanie zapytań w celu poprawy wydajności