Bom, se você chegou aqui, significa que deve imaginar as vantagens de se criar uma view, ou então quer aprender um pouco sobre views.
Vou citar as 2 principais vantagens em se criar uma view:
1) Agilidade evitando retrabalho ao montar queryes;
2) Performance. Imagine que você tem uma boa query que levou horas para ser desenvolvida. Esta query traz todos os dados necessários e você considerou a melhor performance. Assim, é extremamente útil criar uma view com esta query. Desta maneira, evita-se que outro usuário possa estar criando a mesma query com uma performance mais baixa.
Bom, vamos ao exemplo prático!
Sintaxe:
CREATE
[OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
a) CREATE OR REPLACE
A declaração CREATE VIEW cria uma nova view ou substitui uma view existente se for seguida da cláusula OR REPLACE. Se a view não existe a declaração CREATE OR REPLACE VIEW é a mesma coisa que CREATE VIEW. Também vale lembrar que, se a view não existe, CREATE OR REPLACE VIEW é a mesma coisa que ALTER VIEW.
b) Cláusula select_statement
Esta cláusula fornece a definição da exibição. Você pode criar a view a partir de tabelas base ou outras views;
ATENÇÃO:
A definição da view é "congelada" na criação da view. Desta forma é muito importante entender que as tabelas que surgem depois não afetam a definição da view. Imagine que você definiu a view com SELECT * em uma tabela. As colunas adicionadas à tabela depois da criação da view, não se tornam parte da view. Podemos dizer neste caso que a view deverá ser alterada se os novos campos forem interessantes para você.
c) Cláusula ALGORITHM
A cláusula ALGORITHM afeta o modo como o MySQL processa a view. As cláusulas DEFINER e SQL SECURITY especifica o texto de segurança a ser usado durante a verificação dos privilégios de acesso em tempo de invocação da view. A cláusula WITH CHECK OPTION pode ser utilizada para restringir inserções ou alterações de linhas em tabelas referenciadas pela view.
d) Privilégios
O comando CREATE VIEW requer privilégios para a view e alguns privilégios para cada coluna selecionada pelo comando SELECT. Colunas utilizadas em outras partes no SELECT, deve ter permissão para execuar SELECT. Se for utilizado OR REPLACE, você deve ter o privilégio DROP para a view.
e) Especificando a base de dados
Uma view pertence a um banco de dados. Por padrão, um novo modo de exibição é criado no banco de dados padrão. Para criar a exibição explícita de um determinado banco de dados, especifique o nome como db_name.view_name ao criá-lo.
Exemplo simples:
CREATE VIEW teste.viewTeste AS SELECT * FROM tabela1;
Neste exemplo simples, criamos uma view com o nome viewTeste, na base de dados teste, onde o conteúdo da view é SELECT * da tabela base tabela1.
Tabelas base e views compartilham o mesmo namespace na base de dados, então a base de dados não pode contar a mesma tabela base e uma view que tenha o mesmo nome.
Uma view pode ser criada a partir de diversos tipos de SELECT. Pode referir-se às tabelas de base ou outras views. Pode user JOINS, UNION e subqueries.
Neste próximo exemplo, estamos criando a tabela t, com 2 campos do tipo INT. Inserimos algum valor na tabela, criamos a view v e realizamos um SELECT na view. Segue o exemplo:
1. mysql> CREATE TABLE t (qty INT, price INT);
2. mysql> INSERT INTO t VALUES(3, 50);
3. mysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
4. mysql> SELECT * FROM v;
+------+-------+-------+
| qty | price | value |
+------+---s----+-------+
| 3 | 50 | 150 |
+------+-------+-------+
Neste exemplo, na linha 3, criamos a view onde temos 3 campos e o terceiro campo é a multiplicação dos campos qty e price e recebe o label "value".
É isso pessoal, no próximo post tratarei de restrições de uma view e trazendo outros exemplos!
Abraço e boa semana!
Fonte:
Create View
Tradução e comentários:
Dilberto Rosa
O Cleitinho não é fácil!
Há um mês
Nenhum comentário:
Postar um comentário