Концепцията SQL VIEW помага да се скрие трудността на записите и предоставя ограничения за достъп до базата данни.
SQL изгледът е подобен на SQL таблиците. В SQL таблици съхраняваме цели данни в редове и колони. По същия начин SQL View се използва и за съхраняване на записи в редове и колони, но само тези данни, които потребителят иска, а не ненужни данни.
SQL VIEW е виртуална таблица. SQL View позволява достъп само до записите на конкретни колони, а не до цялата таблица.
Можем лесно да създадем изглед, като изберем една или повече таблици с помощта на ключова дума CREATE VIEW. Можем също да актуализираме и изтриваме изгледа.
В цялата тази статия ще разберем концепцията за изглед за това как да създадете изглед, да изтриете изглед и да актуализирате изглед.
1 СЪЗДАВАНЕ НА SQL ИЗГЛЕД:-
В SQL можем лесно да създадем изглед, като използваме ключова дума CREATE VIEW. Можем да създадем изглед за единична таблица и таблица с множества.
Синтаксисът за CREATE VIEW (Единична таблица)
CREATE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
Горният синтаксис е за създаване на изглед от една таблица. В горния синтаксис VIEW_NAME е името на изгледа за създаване на изглед в SQL. Table_name е името на таблицата, откъдето ще изберем конкретни записи, клаузата WHERE не е задължителна в SQL заявката.
Синтаксисът за CREATE VIEW (Множество таблици)
CREATE VIEW VIEW_NAME AS SELECT T1.COLUMN_NAME, T1.COLUMN_NAME2, T2.COLUMN_NAME1, T2.COLUMN_NAME2 FROM T1, T2 WHERE CONDITION;
Горният синтаксис е за създаване на изглед от множество таблици. В горния синтаксис VIEW_NAME е името на изгледа за създаване на изглед в SQL. T1, T2 е името на таблици, от които ще избираме конкретни записи, клаузата WHERE е по избор в SQL заявката.
Разгледайте следните таблици заедно с дадените записи.
Таблица 1:Изп.
ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ | FIRST_NAME | LAST_NAME | ЗАПЛАТА | ГРАД | ОТДЕЛ | MANAGERID |
1001 | VAIBHAVI | МИШРА | 65 000 | ПУНА | ORACLE | 1 |
1002 | VAIBHAV | ШАРМА | 60 000 | NOIDA | ORACLE | 1 |
1003 | НИХИЛ | VANI | 50 000 | ДЖАЙПУР | FMW | 2 |
2001 | PRACHI | ШАРМА | 55500 | ЧАНДИГАР | ORACLE | 1 |
2002 | BHAVESH | ДЖЕЙН | 65500 | ПУНА | FMW | 2 |
2003 | РУЧИКА | ДЖЕЙН | 50 000 | МУМБАЙ | ТЕСТВАНЕ | 4 |
3001 | PRANOTI | ШЕНДЕ | 55500 | ПУНА | JAVA | 3 |
3002 | ANUJA | КЪДЕ | 50500 | ДЖАЙПУР | FMW | 2 |
3003 | DEEPAM | ДЖАУХАРИ | 58500 | МУМБАЙ | JAVA | 3 |
4001 | РАДЖЕШ | GOUD | 60500 | МУМБАЙ | ТЕСТВАНЕ | 4 |
Таблица 2:Мениджър.
Managerid | име_на_мениджър | мениджърски отдел |
1 | Снехдип Каур | ORACLE |
2 | Кирти Киртане | FMW |
3 | Абхишек Маниш | JAVA |
4 | Анупам Мишра | ТЕСТВАНЕ |
Примери за СЪЗДАВАНЕ НА ИЗГЛЕД от една таблица.
Пример 1:Напишете заявка за създаване на изглед с идентификатор на служител, име, фамилия, заплата от таблицата Emp.
CREATE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY FROM EMP;
В горната заявка създадохме име на изглед EMPLOYEE_VIEW с идентификатор на служител, обединяваме собствено и фамилно име като Име, Заплата от Emp Table.
Винаги, когато искаме да разгледаме записите в таблицата, използваме заявката SELECT * FROM; по същия начин, който ще направим за изглед, вместо името на таблицата, ще използваме име на изглед.
SELECT * FROM EMPLOYEE_VIEW;
Пример 2:Напишете заявка за създаване на изглед с идентификатор на мениджър, име на мениджър и отдел от таблицата на мениджъра.
CREATE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER;
В горната заявка създадохме име на изглед MANAGER_VIEW с идентификатор на мениджър, име на мениджър и отдел от таблицата на мениджъра.
Винаги, когато искаме да разгледаме записите в таблицата, използваме заявката SELECT * FROM. Ще използваме името на изгледа. По същия начин ще направим за преглед вместо името на таблицата.
SELECT * FROM MANAGER_VIEW;
Пример 3:Напишете заявка за създаване на изглед с идентификатор на служител, име, фамилия, заплата, град на тези служители, чиято заплата е по-голяма от 54 000 и град включва Пуна и Мумбай от таблицата 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’);
В горната заявка създадохме име на изглед EMPLOYEE_VIEW1 с идентификатор на служител, обединихме собствено и фамилно име като име, заплата, град на тези служители, чиято заплата е по-голяма от 54 000 и използвахме оператор И с град включва Пуна и Мумбай от Emp Table .
Винаги, когато искаме да разгледаме записите в таблицата, използваме заявката SELECT * FROM. Ще използваме името на изгледа. По същия начин ще направим за преглед вместо името на таблицата.
SELECT * FROM EMPLOYEE_VIEW1;
Пример 4:Напишете заявка за създаване на изглед с идентификатор на мениджър, име на мениджър и отдел на онези мениджъри, чийто отдел е „Oracle“ и „Java“ от таблицата на мениджъра.
CREATE VIEW MANAGER_VIEW1 AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER; WHERE MANAGER_DEPARTMENT IN (‘ORACLE’, ‘JAVA’);
В горната заявка създадохме име на изглед MANAGER_VIEW с идентификатор на мениджър, име на мениджър и отдел на онези мениджъри, чийто отдел е „Oracle“ и „Java“ от таблицата на мениджърите.
Винаги, когато искаме да разгледаме записите в таблицата, използваме заявката SELECT * FROM. Ще използваме името на изгледа. По същия начин ще направим за преглед вместо името на таблицата.
SELECT * FROM MANAGER_VIEW1;
Всички горни примери за CREATE VIEW са от единични таблици. Следващият пример за CREATE VIEW е от множество таблици.
Разгледайте следните таблици заедно с дадените записи.
Таблица 1:Изп.
ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ | FIRST_NAME | LAST_NAME | ЗАПЛАТА | ГРАД | ОТДЕЛ | MANAGERID |
1001 | VAIBHAVI | МИШРА | 65 000 | ПУНА | ORACLE | 1 |
1002 | VAIBHAV | ШАРМА | 60 000 | NOIDA | ORACLE | 1 |
1003 | НИХИЛ | VANI | 50 000 | ДЖАЙПУР | FMW | 2 |
2001 | PRACHI | ШАРМА | 55500 | ЧАНДИГАР | ORACLE | 1 |
2002 | BHAVESH | ДЖЕЙН | 65500 | ПУНА | FMW | 2 |
2003 | РУЧИКА | ДЖЕЙН | 50 000 | МУМБАЙ | ТЕСТВАНЕ | 4 |
3001 | PRANOTI | ШЕНДЕ | 55500 | ПУНА | JAVA | 3 |
3002 | ANUJA | КЪДЕ | 50500 | ДЖАЙПУР | FMW | 2 |
3003 | DEEPAM | ДЖАУХАРИ | 58500 | МУМБАЙ | JAVA | 3 |
4001 | РАДЖЕШ | GOUD | 60500 | МУМБАЙ | ТЕСТВАНЕ | 4 |
Таблица 2:Мениджър.
Managerid | име_на_мениджър | мениджърски отдел |
1 | Снехдип Каур | ORACLE |
2 | Кирти Киртане | FMW |
3 | Абхишек Маниш | JAVA |
4 | Анупам Мишра | ТЕСТВАНЕ |
Пример 1:Напишете заявка за създаване на изглед с идентификатор на служител, име, град, идентификатор на мениджър и име на мениджър от Emp Table и 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;
В горната заявка създадохме изглед с идентификатор на служител, име, град, идентификатор на мениджър и име на мениджър от Emp Table и Manager Table.
Винаги, когато искаме да разгледаме записите в таблицата, използваме заявката SELECT * FROM. Ще използваме името на изгледа. По същия начин ще направим за преглед вместо името на таблицата.
SELECT * FROM EMP_MAN_VIEW;
2 АКТУАЛИЗИРАНЕ НА SQL ИЗГЛЕД:-
Инструкцията за актуализиране променя съществуващата таблица и съществуващия изглед в SQL. Можем също да вмъкнем нови данни в съществуващия изглед в SQL. В SQL изгледът се променя само когато са изпълнени посочените по-долу условия. Ако едно от дадените условия не е изпълнено, няма да можем да променим изгледа.
- DISTINCT ключова дума не трябва да се използва в израза SELECT.
- Изгледът не трябва да има всички стойности NOT NULL.
- Не трябва да използва клауза ORDER BY и клауза GROUP BY, докато създава изглед в израза SELECT.
- Ако създаденият изглед съдържа колони от една таблица, тогава ни е разрешено да променяме изгледа. т.е. използването на множество таблици в изглед не е разрешено.
- Изгледът не трябва да се създава с помощта на подзаявка или да включва сложни заявки
- Изгледът съдържа всякакви SQL агрегатни функции; нямаме право да променяме съществуващия изглед.
Инструкцията CREATE OR REPLACE VIEW се използва за добавяне на нови полета или премахване на полета от изгледа.
Синтаксис:
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
Пример 1:Напишете заявка за актуализиране на Employee_View и добавете колоната Идентификатор на мениджър от таблицата Emp в изгледа.
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');
Горната заявка променя съществуващия Employee_view и променя записите въз основа на дадената заявка SELECT.
Винаги, когато искаме да разгледаме записите в таблицата, използваме заявката SELECT * FROM. Ще използваме името на изгледа. По същия начин ще направим за преглед вместо името на таблицата.
SELECT * FROM EMPLOYEE_VIEW;
Пример 2:Напишете заявка за актуализиране на Manager_View.
CREATE OR REPLACE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME FROM MANAGER WHERE MANAGER_NAME LIKE ‘A%’;
Горната заявка променя съществуващия Employee_view и променя записите въз основа на дадената заявка SELECT.
Винаги, когато искаме да разгледаме записите в таблицата, използваме заявката SELECT * FROM. Ще използваме името на изгледа. По същия начин ще направим за преглед вместо името на таблицата.
SELECT * FROM MANAGER_VIEW;
Вмъкване на нов запис в съществуващия изглед
Вмъкваме новите записи в таблицата. По същия начин можем да го вмъкнем и в изглед.
Синтаксис
INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);
Пример:напишете заявка за вмъкване на нов запис в Manager_view.
INSERT INTO MANAGER_VIEW VALUES (5, ‘Akash Kadam’);
Докато вмъкваме нови записи в Manager_View. За да проверим дали нови данни са вмъкнати или не, ще използваме заявката SELECT:
SELECT * FROM MANAGER_VIEW;
3 ИЗГЛЕЖДАНЕ:-
Пускаме масата. По същия начин можем да пуснем изглед.
Синтаксис:
DROP VIEW VIEW_NAME;
Пример:Напишете заявка за премахване на EMP_MAN_VIEW.
DROP VIEW EMP_MAN_VIEW;
Ако искаме да проверим дали даден изглед е изтрит или не, ще използваме заявката SHOW TABLES.
SHOW TABLES;
Името на изглед EMP_MAN_VIEW не е в базата данни, което означава, че успешно изпускаме изгледа.