sql >> Databáze >  >> RDS >> Database

SQL VIEW

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.


  1. Nelze odstranit nebo aktualizovat nadřazený řádek:selhalo omezení cizího klíče

  2. Jak spočítat všechny řádky při použití SELECT s LIMIT v dotazu MySQL?

  3. Uložená procedura T-SQL, která přijímá více hodnot ID

  4. Oracle SQL – Identifikujte sekvenční rozsahy hodnot