Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Criar View, Substitua View e Drop View Statements com Exemplos


Uma visualização SQL é uma tabela virtual ou um conjunto de resultados gerado pela consulta SELECT. Ao contrário das tabelas físicas, as visualizações não armazenam dados em um banco de dados. Quando executamos a consulta SELECT para preencher os dados, ela executa uma consulta que cria a view (definição da View).

O que é visualização no MySQL


Suponha que você tenha uma consulta SQL complexa usando várias junções e lógica de negócios complexa. Você usa essa consulta no código do aplicativo com frequência. No entanto, devido ao requisito de negócios, você deve alterar essa lógica de consulta. As alterações feitas em uma consulta devem refletir em todo o aplicativo.

Nesses casos, é preferível criar uma visualização SQL e encapsular a lógica de negócios dentro dela. Além disso, quando queremos alterar a definição da consulta, podemos alterar a definição da visualização em vez de fazer alterações na aplicação.

As visualizações também se aplicam para ocultar o nome real e os detalhes da tabela. Se armazenarmos as informações confidenciais de qualquer cliente na tabela e quisermos mostrar apenas os detalhes principais, podemos criar uma visualização.

Este artigo explicará como Criar visualização , Substituir visualização e Visualização suspensa uso de instruções no servidor MySQL.

Amostra Banco de dados Configuração


Para a demonstração, instalei o MySQL Server e criei um banco de dados fictício chamado EltechDB . Nesse banco de dados, criei uma tabela chamada tblemployee .

A consulta a seguir cria o EltechDB base de dados:
Create database EltechDB;

A consulta a seguir cria um tblemployee tabela:
CREATE TABLE tblemployees (
    emp_no      INT             NOT NULL,
    birth_date  DATE            NOT NULL,
    first_name  VARCHAR(14)     NOT NULL,
    last_name   VARCHAR(16)     NOT NULL,
    gender      ENUM ('M','F')  NOT NULL,    
    hire_date   DATE            NOT NULL,
    PRIMARY KEY (emp_no)
);

Eu inseri alguns registros fictícios no tblemployee tabela usando a seguinte consulta:
INSERT INTO `EltechDB`.`tblemployees` 
VALUES 
(10001,'1953-09-02','Georgi','Facello','M','1986-06-26'),
(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'),
(10003,'1959-12-03','Parto','Bamford','M','1986-08-28'),
(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01'),
(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12'),
(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02'),
(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10'),
(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15'),
(10009,'1952-04-19','Sumant','Peac','F','1985-02-18'),
(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24');

Agora, vamos esclarecer as instruções para gerenciar as visualizações do MySQL.

Como criar uma visualização no MySQL


A instrução Create View cria uma nova exibição em um banco de dados. A sintaxe é a seguinte:
Create View view_name
As
Select * from base_table

Aqui:
  • view_name é o nome desejado da visualização.
  • A selecionar * de é a consulta que gera a visualização usando base_table . A consulta é especificada após o AS palavra-chave.

Exemplo de sintaxe de criação de exibição do MySQL


Suponha que queremos criar uma visão que preencha a lista de funcionários. A definição da View é a seguinte:
Create view vwEmployees
as
select * from tblemployees;

Para acessar os dados da View, podemos utilizar a consulta SELECT. Para visualizar os dados de vwEmployees , execute a seguinte consulta:
mysql> select * from vwEmployees;

Saída:

Filtrar os dados da visualização usando a cláusula WHERE


Podemos filtrar a saída da View usando a cláusula WHERE. No nosso caso, queremos recuperar a lista de feminino funcionários dos vwEmployees . A consulta é a seguinte:
mysql> select * from vwEmployees where gender='F';

A saída da consulta é:

Tomemos outro exemplo. Queremos recuperar a lista dos funcionários cujo número de funcionário é menor que 10005 . A consulta é a seguinte:
mysql> select * from vwemployees where emp_no<10005;

Saída da consulta:

Use a função agregada na visualização


Podemos usar as funções agregadas na View.

Aqui, queremos preencher a contagem de funcionários masculinos e femininos de vwEmployees Visualizar. Primeiro, usamos a função COUNT para obter a contagem de funcionários. Em seguida, usamos a cláusula GROUP BY para agrupar a saída com base na coluna de gênero. A consulta é a seguinte:
mysql> select gender, count(emp_no)as 'Total Employees' from vwEmployees group by gender;

Saída da consulta:

Use a função de data e hora na exibição


Podemos usar a função de data e hora na saída View. Vamos recuperar a lista dos funcionários cujo ano de ingresso é maior ou igual a 1990. A consulta é a seguinte:
mysql> select * from vwemployees where Year(hire_date)>=1990;

Saída da consulta:

Use a função de fluxo de controle na visualização


Podemos usar a função CASE ou IF na saída da View.

Imprimimos o valor do gênero em algum formato significativo. A saída da coluna de gênero retornada pela Visualização é M ou F. Em vez de imprimir M, a consulta deve retornar Masculino . Da mesma forma, em vez de imprimir F, a consulta deve retornar Female . A consulta é a seguinte:
mysql> Select first_name, last_name, case when gender='M' then 'Male' when gender ='F' then 'Female' end as 'Gender', hire_date from vwEmployees;

Saída da consulta:

Leia mais como criar uma visualização em SQL.

Substituir a declaração de visualização


O REPLACE VIEW é usado para alterar a definição de uma visualização. As palavras-chave CREATE VIEW e REPLACE VIEW são usadas juntas. A sintaxe é a seguinte:
Create or replace View view_name
As
Select * from base_table

Aqui:
  • Criar ou substituir visualização: Essas palavras-chave servem para criar ou substituir a View existente. Quando executamos a instrução create ou replace view, o MySQL verifica se ela existe no banco de dados. Se a View existir, ela altera a definição da View usando a consulta especificada após a palavra-chave AS. Se a visualização não existir, ela cria uma nova visualização usando a consulta especificada após a palavra-chave AS.
  • view_name é o nome desejado da visualização.
  • A selecionar * de é a consulta usada para gerar a visualização usando base_table . A consulta é especificada após o AS palavra-chave.

Observação: Criar ou substituir palavras-chave de visualização cria uma nova visualização ou altera a definição de visualização existente.

Escreva o nome da visualização em 'database_name'.'view_name' formato . Se você não especificar o banco de dados, poderá acabar criando a Visualização em um banco de dados diferente.

Exemplo de instruções MySQL CREATE View ou MySQL REPLACE View


Queremos mostrar apenas o nome, sobrenome e sexo dos funcionários. Além disso, queremos fornecer nomes apropriados para as colunas. Por exemplo, o first_name e last_name os valores da coluna devem ser combinados e o nome da coluna deve ser o nome do funcionário. A consulta SQL deve ser a seguinte:
mysql> create or replace view vwEmployees(EmployeeName,gender) as select concat(first_name, " ",last_name),gender from tblEmployees; 

Execute a seguinte consulta SELECT para visualizar os dados de vwEmployees :
mysql> select * from vwEmployees

Saída da consulta:

Como você pode ver, o first_name e last_name os valores são combinados no EmployeeName coluna indicando que a definição de exibição foi atualizada.

A instrução DROP View do MySQL


A palavra-chave DROP View serve para remover a View do banco de dados. A sintaxe é a seguinte:
Drop View ‘database_name’.’view_name’

Na sintaxe, view_name é o nome da Visualização que você deseja eliminar.

Deixemos de lado os vwEmployees Visualize usando a instrução DROP View. Execute a seguinte consulta:
mysql> DROP VIEW `eltechdb`.`vwemployees`;

Para verificar se a exibição foi descartada, execute a seguinte consulta:
mysql> SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.tables WHERE TABLE_TYPE LIKE 'VIEW' and table_schema='EltechDB';

Saída:

A consulta retornou zero linhas, indicando que a View foi excluída.

Resumo


Este artigo explicou e demonstrou as visualizações do MySQL e as formas de criar e gerenciar essas visualizações. Também esclareceu o uso das instruções CREATE VIEW, REPLACE View e DROP View. CREATE View é usado para criar uma view, REPLACE View altera a definição da View e DROP View exclui a View.