Koncept SQL VIEW pomáhá skrýt obtížnost záznamů a poskytuje omezení pro přístup k databázi.
SQL pohled je podobný SQL tabulkám. V tabulkách SQL ukládáme celá data do řádků a sloupců. Stejným způsobem se SQL View používá také k ukládání záznamů v řádcích a sloupcích, ale pouze těch dat, která uživatel chce, nikoli zbytečných dat.
SQL VIEW je virtuální tabulka. SQL View umožňuje přístup pouze k záznamům konkrétních sloupců, nikoli k datům celé tabulky.
Pohled můžeme snadno vytvořit výběrem jedné nebo více tabulek pomocí klíčového slova CREATE VIEW. Můžeme také aktualizovat a smazat pohled.
V celém tomto článku porozumíme konceptu zobrazení, jak vytvořit zobrazení, odstranit zobrazení a aktualizovat zobrazení.
1 VYTVOŘENÍ ZOBRAZENÍ SQL:-
V SQL můžeme snadno vytvořit pohled pomocí klíčového slova CREATE VIEW. Můžeme vytvořit pohled pro jednu tabulku a tabulku násobků.
Syntaxe pro CREATE VIEW (Jedna tabulka)
CREATE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
Výše uvedená syntaxe je pro vytvoření pohledu z jedné tabulky. Ve výše uvedené syntaxi je VIEW_NAME název pohledu pro vytvoření pohledu v SQL. Table_name je název tabulky, ze které budeme vybírat konkrétní záznamy, klauzule WHERE je v dotazu SQL volitelná.
Syntaxe pro 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;
Výše uvedená syntaxe je pro vytvoření pohledu z více tabulek. Ve výše uvedené syntaxi je VIEW_NAME název pohledu pro vytvoření pohledu v SQL. T1, T2 je název tabulek, ze kterých budeme vybírat konkrétní záznamy, klauzule WHERE je v dotazu SQL volitelná.
Zvažte následující tabulky spolu s danými záznamy.
Tabulka 1:Emp
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | MĚSTO | ODDĚLENÍ | ID SPRÁVCE |
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 | TESTOVÁNÍ | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | KDE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTOVÁNÍ | 4 |
Tabulka 2:Správce.
Managerid | název_manažera | manažer_oddělení |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTOVÁNÍ |
Příklady VYTVOŘENÍ ZOBRAZENÍ z jedné tabulky.
Příklad 1:Napište dotaz k vytvoření pohledu s tabulkou ID zaměstnance, křestní jméno, příjmení, plat z Emp.
CREATE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY FROM EMP;
Ve výše uvedeném dotazu jsme vytvořili název zobrazení EMPLOYEE_VIEW s ID zaměstnance, zřetězením křestního jména a příjmení jako Jméno, Plat z tabulky Emp.
Kdykoli se chceme podívat na záznamy v tabulce, použijeme dotaz SELECT * FROM; stejným způsobem, jaký uděláme pro zobrazení, místo názvu tabulky použijeme název zobrazení.
SELECT * FROM EMPLOYEE_VIEW;
Příklad 2:Napište dotaz pro vytvoření pohledu s ID manažera, jménem manažera a oddělením z tabulky manažerů.
CREATE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER;
Ve výše uvedeném dotazu jsme vytvořili název zobrazení MANAGER_VIEW s ID manažera, jménem manažera a oddělením z tabulky manažerů.
Kdykoli se chceme podívat na záznamy v tabulce, použijeme dotaz SELECT * FROM. Použijeme název pohledu. Podobně to uděláme pro zobrazení místo názvu tabulky.
SELECT * FROM MANAGER_VIEW;
Příklad 3:Napište dotaz pro vytvoření pohledu s ID zaměstnance, křestním jménem, příjmením, platem, městem těch zaměstnanců, jejichž plat je vyšší než 54 000 a město zahrnuje Pune a Mumbai z tabulky 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’);
Ve výše uvedeném dotazu jsme vytvořili název zobrazení EMPLOYEE_VIEW1 s ID zaměstnance, zřetězení křestního jména a příjmení jako Jméno, Plat, Město těch zaměstnanců, jejichž plat je vyšší než 54 000, a použili jsme operátor AND s City include Pune a Mumbai z Emp Table. .
Kdykoli se chceme podívat na záznamy v tabulce, použijeme dotaz SELECT * FROM. Použijeme název pohledu. Podobně to uděláme pro zobrazení místo názvu tabulky.
SELECT * FROM EMPLOYEE_VIEW1;
Příklad 4:Napište dotaz pro vytvoření pohledu s ID manažera, jménem manažera a oddělením těch manažerů, jejichž oddělení je 'Oracle' a 'Java' z tabulky manažerů.
CREATE VIEW MANAGER_VIEW1 AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER; WHERE MANAGER_DEPARTMENT IN (‘ORACLE’, ‘JAVA’);
Ve výše uvedeném dotazu jsme vytvořili název zobrazení MANAGER_VIEW s ID manažera, jménem manažera a oddělením těch manažerů, jejichž oddělení je „Oracle“ a „Java“ z tabulky manažerů.
Kdykoli se chceme podívat na záznamy v tabulce, použijeme dotaz SELECT * FROM. Použijeme název pohledu. Podobně to uděláme pro zobrazení místo názvu tabulky.
SELECT * FROM MANAGER_VIEW1;
Všechny výše uvedené příklady CREATE VIEW jsou z jednotlivých tabulek. Další příklad CREATE VIEW je z více tabulek.
Zvažte následující tabulky spolu s danými záznamy.
Tabulka 1:Emp
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | MĚSTO | ODDĚLENÍ | ID SPRÁVCE |
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 | TESTOVÁNÍ | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | KDE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTOVÁNÍ | 4 |
Tabulka 2:Správce.
Managerid | název_manažera | manažer_oddělení |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTOVÁNÍ |
Příklad 1:Napište dotaz pro vytvoření pohledu s ID zaměstnance, jménem, městem, ID manažera a jménem manažera z tabulky Emp a tabulky manaž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;
Ve výše uvedeném dotazu jsme vytvořili pohled s ID zaměstnance, jménem, městem, ID manažera a jménem manažera z tabulky Emp a tabulky manažera.
Kdykoli se chceme podívat na záznamy v tabulce, použijeme dotaz SELECT * FROM. Použijeme název pohledu. Podobně to uděláme pro zobrazení místo názvu tabulky.
SELECT * FROM EMP_MAN_VIEW;
2 AKTUALIZACE ZOBRAZENÍ SQL:-
Příkaz update upravuje existující tabulku a existující pohled v SQL. Můžeme také vložit nová data do stávajícího pohledu v SQL. V SQL je pohled upraven pouze při splnění níže uvedených podmínek. Pokud nebude splněna jedna z daných podmínek, nebudeme moci pohled upravit.
- Klíčové slovo DISTINCT by nemělo být použito v příkazu SELECT.
- Výběr by neměl mít všechny hodnoty NOT NULL.
- Při vytváření pohledu v příkazu SELECT byste neměli používat klauzule ORDER BY a GROUP BY.
- Pokud vytvořený pohled obsahuje sloupce z jedné tabulky, můžeme pohled upravit. tj. použití více tabulek v zobrazení není povoleno.
- Zobrazení by nemělo být vytvořeno pomocí dílčího dotazu nebo by nemělo obsahovat složité dotazy
- Pohled obsahuje všechny agregační funkce SQL; nemáme povoleno měnit stávající zobrazení.
Příkaz CREATE OR REPLACE VIEW se používá k přidání nových polí nebo odstranění polí ze zobrazení.
Syntaxe:
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
Příklad 1:Napište dotaz pro aktualizaci Employee_View a přidejte sloupec Manager Id z Emp tabulky do pohledu.
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');
Výše uvedený dotaz upravuje existující Employee_view a upravuje záznamy na základě daného SELECT dotazu.
Kdykoli se chceme podívat na záznamy v tabulce, použijeme dotaz SELECT * FROM. Použijeme název pohledu. Podobně to uděláme pro zobrazení místo názvu tabulky.
SELECT * FROM EMPLOYEE_VIEW;
Příklad 2:Napište dotaz pro aktualizaci Manager_View.
CREATE OR REPLACE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME FROM MANAGER WHERE MANAGER_NAME LIKE ‘A%’;
Výše uvedený dotaz upravuje existující Employee_view a upravuje záznamy na základě daného SELECT dotazu.
Kdykoli se chceme podívat na záznamy v tabulce, použijeme dotaz SELECT * FROM. Použijeme název pohledu. Podobně to uděláme pro zobrazení místo názvu tabulky.
SELECT * FROM MANAGER_VIEW;
Vložení nového záznamu do stávajícího zobrazení
Nové záznamy vložíme do tabulky. Stejným způsobem jej můžeme také vložit do zobrazení.
Syntaxe
INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);
Příklad:napište dotaz pro vložení nového záznamu do Manager_view.
INSERT INTO MANAGER_VIEW VALUES (5, ‘Akash Kadam’);
Když vkládáme nové záznamy do Manager_View. Pro kontrolu, zda jsou či nejsou vložena nová data, použijeme dotaz SELECT:
SELECT * FROM MANAGER_VIEW;
3 ZOBRAZENÍ PÁDEM:-
Odkládáme stůl. Stejným způsobem můžeme také přerušit zobrazení.
Syntaxe:
DROP VIEW VIEW_NAME;
Příklad:Napište dotaz pro zrušení EMP_MAN_VIEW.
DROP VIEW EMP_MAN_VIEW;
Pokud chceme zkontrolovat, zda je pohled smazán či nikoli, použijeme dotaz SHOW TABLES.
SHOW TABLES;
Název pohledu EMP_MAN_VIEW není v databázi, což znamená, že jsme pohled úspěšně zrušili.