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.