O conceito SQL VIEW ajuda a esconder a dificuldade dos registros e fornece limitações de acesso ao banco de dados.
A visualização SQL é semelhante às tabelas SQL. Nas Tabelas SQL, armazenamos dados inteiros em linhas e colunas. Da mesma forma, o SQL View também é usado para armazenar registros em linhas e colunas, mas apenas os dados que o usuário deseja, não dados desnecessários.
SQL VIEW é uma tabela virtual. O SQL View permite acessar apenas registros de colunas específicas em vez de todos os dados da tabela.
Podemos criar facilmente uma visualização selecionando uma ou mais tabelas usando a palavra-chave CREATE VIEW. Também podemos atualizar e excluir a visualização.
Neste artigo inteiro, vamos entender o conceito de view sobre como criar uma view, deletar uma view e atualizar uma view.
1 CRIAR VISUALIZAÇÃO SQL:-
Em SQL, podemos criar facilmente uma visualização usando a palavra-chave CREATE VIEW. Podemos criar uma View para a tabela única e a tabela múltipla.
A sintaxe para CREATE VIEW (Tabela Única)
CREATE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
A sintaxe acima é para criar uma visualização a partir de uma única tabela. Na sintaxe acima, VIEW_NAME é o nome da visualização para criar uma visualização em SQL. Table_name é o nome da tabela de onde selecionaremos registros específicos, a cláusula WHERE é opcional na consulta SQL.
A sintaxe para 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;
A sintaxe acima é para criar uma visualização de várias tabelas. Na sintaxe acima, VIEW_NAME é o nome da visualização para criar uma visualização em SQL. T1, T2 é o nome das tabelas de onde selecionaremos registros específicos, a cláusula WHERE é opcional na consulta SQL.
Considere as tabelas a seguir junto com os registros fornecidos.
Tabela 1:Emp
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | CIDADE | DEPARTAMENTO | GERENTE |
1001 | VAIBHAVI | MISHRA | 65.000 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | ORACLE | 1 |
1003 | NIQUIL | VANI | 50.000 | JAIPUR | FMW | 2 |
2001 | PRAQUI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | TESTE | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | ONDE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTE | 4 |
Tabela 2:Gerente.
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTE |
Exemplos para CREATE VIEW de uma única tabela.
Exemplo 1:Escreva uma consulta para criar uma visão com Employee Id, First name, Last name, Salary from Emp table.
CREATE VIEW EMPLOYEE_VIEW AS SELECT EMPLOYEEID, CONCAT (FIRST_NAME, CONCAT (“ ”, LAST_NAME)) AS NAME, SALARY FROM EMP;
Na consulta acima, criamos um nome de view EMPLOYEE_VIEW com Employee Id, concatenar nome e sobrenome como Name, Salary from Emp Table.
Sempre que queremos ver os registros da tabela, usamos a consulta SELECT * FROM; da mesma forma que faremos para a view, ao invés do nome da tabela, usaremos o nome da view.
SELECT * FROM EMPLOYEE_VIEW;
Exemplo 2:Escreva uma consulta para criar uma exibição com ID do gerente, Nome do gerente e Departamento da Tabela do gerente.
CREATE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER;
Na consulta acima, criamos um nome de visualização MANAGER_VIEW com Manager Id, Manager Name e Department from Manager Table.
Sempre que queremos ver os registros na tabela, usamos a consulta SELECT * FROM. Usaremos o nome da visualização. Da mesma forma, faremos para view em vez do nome da tabela.
SELECT * FROM MANAGER_VIEW;
Exemplo 3:Escreva uma consulta para criar uma visão com Employee Id, First name, Last name, Salary, City dos funcionários cujo salário é maior que 54000 e City incluem Pune e Mumbai da tabela 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’);
Na consulta acima, criamos um nome de exibição EMPLOYEE_VIEW1 com Employee Id, concatenamos nome e sobrenome como Name, Salary, City daqueles funcionários cujo salário é maior que 54000 e usamos o operador AND com City include Pune e Mumbai da Emp Table .
Sempre que queremos ver os registros na tabela, usamos a consulta SELECT * FROM. Usaremos o nome da visualização. Da mesma forma, faremos para view em vez do nome da tabela.
SELECT * FROM EMPLOYEE_VIEW1;
Exemplo 4:Escreva uma consulta para criar uma visualização com ID do gerente, Nome do gerente e Departamento dos gerentes cujo departamento é 'Oracle' e 'Java' da Tabela do gerente.
CREATE VIEW MANAGER_VIEW1 AS SELECT MANAGERID, MANAGER_NAME, MANAGER_DEPARTMENT FROM MANAGER; WHERE MANAGER_DEPARTMENT IN (‘ORACLE’, ‘JAVA’);
Na consulta acima, criamos um nome de visualização MANAGER_VIEW com Manager Id, Manager Name e Department dos gerentes cujo departamento é 'Oracle' e 'Java' da Manager Table.
Sempre que queremos ver os registros na tabela, usamos a consulta SELECT * FROM. Usaremos o nome da visualização. Da mesma forma, faremos para view em vez do nome da tabela.
SELECT * FROM MANAGER_VIEW1;
Todos os exemplos acima de CREATE VIEW são de tabelas únicas. O próximo exemplo de CREATE VIEW é de várias tabelas.
Considere as tabelas a seguir junto com os registros fornecidos.
Tabela 1:Emp
EMPLOYEEID | FIRST_NAME | LAST_NAME | SALÁRIO | CIDADE | DEPARTAMENTO | GERENTE |
1001 | VAIBHAVI | MISHRA | 65.000 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | ORACLE | 1 |
1003 | NIQUIL | VANI | 50.000 | JAIPUR | FMW | 2 |
2001 | PRAQUI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | TESTE | 4 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | ONDE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTE | 4 |
Tabela 2:Gerente.
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTE |
Exemplo 1:Escreva uma consulta para criar View com ID do funcionário, nome, cidade, ID do gerente e nome do gerente da tabela Emp e da tabela do gerente.
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;
Na consulta acima, criamos uma exibição com ID do funcionário, nome, cidade, ID do gerente e nome do gerente da tabela Emp e da tabela do gerente.
Sempre que queremos ver os registros na tabela, usamos a consulta SELECT * FROM. Usaremos o nome da visualização. Da mesma forma, faremos para view em vez do nome da tabela.
SELECT * FROM EMP_MAN_VIEW;
2 ATUALIZAR VISUALIZAÇÃO SQL:-
A instrução de atualização modifica a tabela existente e a visualização existente no SQL. Também podemos inserir novos dados na visão existente no SQL. No SQL, uma visualização é modificada somente quando as condições abaixo são atendidas. Se uma das condições fornecidas não for atendida, não poderemos modificar a visualização.
- A palavra-chave DISTINCT não deve ser usada na instrução SELECT.
- A visualização não deve ter todos os valores NOT NULL.
- Não deve usar a cláusula ORDER BY e a cláusula GROUP BY ao criar uma visualização na instrução SELECT.
- Se a visualização criada contiver colunas da tabela única, podemos modificar a visualização. ou seja, o uso de várias tabelas na visualização não é permitido.
- A visualização não deve ser criada usando uma subconsulta ou incluir consultas complexas
- A visualização contém quaisquer funções agregadas SQL; não temos permissão para modificar a visualização existente.
A instrução CREATE OR REPLACE VIEW é usada para adicionar novos campos ou remover campos da exibição.
Sintaxe:
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME WHERE CONDITION;
Exemplo 1:Escreva uma consulta para atualizar Employee_View e adicione a coluna Manager Id da tabela Emp na exibição.
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');
A consulta acima modifica o Employee_view existente e modifica os registros com base na consulta SELECT fornecida.
Sempre que queremos ver os registros na tabela, usamos a consulta SELECT * FROM. Usaremos o nome da visualização. Da mesma forma, faremos para view em vez do nome da tabela.
SELECT * FROM EMPLOYEE_VIEW;
Exemplo 2:Escreva uma consulta para atualizar o Manager_View.
CREATE OR REPLACE VIEW MANAGER_VIEW AS SELECT MANAGERID, MANAGER_NAME FROM MANAGER WHERE MANAGER_NAME LIKE ‘A%’;
A consulta acima modifica o Employee_view existente e modifica os registros com base na consulta SELECT fornecida.
Sempre que queremos ver os registros na tabela, usamos a consulta SELECT * FROM. Usaremos o nome da visualização. Da mesma forma, faremos para view em vez do nome da tabela.
SELECT * FROM MANAGER_VIEW;
Inserindo novo registro na visualização existente
Inserimos os novos registros na tabela. Da mesma forma, também podemos inseri-lo na visualização.
Sintaxe
INSERT INTO VIEW_NAME VALUES(VALUE1, VALUE2);
Exemplo:escreva uma consulta para inserir um novo registro no Manager_view.
INSERT INTO MANAGER_VIEW VALUES (5, ‘Akash Kadam’);
Conforme inserimos novos registros em Manager_View. Para verificar se novos dados foram inseridos ou não, usaremos a consulta SELECT:
SELECT * FROM MANAGER_VIEW;
3 VISUALIZAÇÃO DE QUEDA:-
Abaixamos a mesa. Da mesma forma, também podemos descartar a visualização.
Sintaxe:
DROP VIEW VIEW_NAME;
Exemplo:Escreva uma consulta para eliminar o EMP_MAN_VIEW.
DROP VIEW EMP_MAN_VIEW;
Se quisermos verificar se uma visão foi excluída ou não, usaremos a consulta SHOW TABLES.
SHOW TABLES;
O nome da visualização EMP_MAN_VIEW não está no banco de dados, o que significa que descartamos a visualização com sucesso.