Compreenda as Views no MYSQL, DATE_FORMAT e o IF
“View” é uma consulta armazenada que não contêm dados, mas é previamente analisada e otimizada. Considerando um cenário que você possui consultas com diversas tabelas ao mesmo tempo é interessante a utilização deste recurso para ganho de desenho e um encapsulamento do código. De forma mais grotesca a “view” é uma tabela virtual, desta maneira você pode criar índices, fazer relacionamentos com tabelas e utilizar funções nos seus campos.
As sintaxes para manipular a definição de uma view no MYSQL são:
-- Criar uma view CREATE VIEW NOME_VIEW AS COMANDO_SELECT; -- Alterar uma view ALTER VIEW NOME_VIEW AS COMANDO_SELECT; -- Deletar uma view DROP VIEW NOME_VIEW;
A utilização da VIEW de acordo com o manual do Mysql possui as seguintes restrições:
1) A instrução SELECT não pode conter uma “subquery” na cláusula FROM;
2) A instrução SELECT não pode se referir ao sistema ou variáveis do usuário;
3) Dentro de uma STORE PROCEDURE, a VIEW não pode se referir a parâmetros ou variáveis locais;
4) A instrução SQL não pode conter parâmetros;
5) A VIEW não pode se referir a uma tabela temporária, e você não pode criar uma VIEW temporária.
6) Todas as tabelas nomeadas na VIEW devem existir no momento da sua criação.
7) Você não pode associar uma TRIGGER a uma VIEW.
O ORDER BY é permitido, mas é ignorado quando na seleção da view é mencionado um ORDER BY.
Diante das informações chegou a hora de colocar a mão na massa para isto, baixe aqui o código para criação da base de dados:
Tutorial do DER da Vídeo Locadora (4,6 KiB)
Você não tem permissão de fazer download.
Veja a imagem do DER que iremos trabalhar.
DATE_FORMAT
Vamos utilizar como exemplo a tabela tecliente nela temos o campo DtUltimaAlteracao que vem no formato ano-mes-dia, vamos utilizar uma função do mysql date_format para converter para o formato dia/mês/ano. Tente o seguinte código no seu navegador do Mysql:
SELECT date_format( '2010-07-15', '%d/%m/%Y' ) AS `DtConteudo`
O resultado que terá será: “15/07/2010”
O date_format é uma função do mysql que permite converter a data para o formato que especificar utiliza a seguinte sintaxe:
DATE_FORMAT(data,’formato’)
Principais parâmetros:
%d => dia
%m => mês
%Y => ano
%H => Hora no padrão 24 horas (00..23)
%h => Hora limitada até as 12 (01..12)
%i=>Minutos (00..59)
%j=>Dia do Ano(001..366)
%m=> Mês no format numeric (00..12)
%M=>Mês no formato extenso (January..December)
%a=>Dia da semana abreviado (Sun..Sat)
%b=>Mês abreviado (Jan..Dec)
IF – Estrutura de Decisão
Outro ponto é nosso campo de deleção lógica definido sempre como 0 => Bloqueado ou 1=> Ativo para isto vamos utilizar o IF. Tente o seguinte comando no MySQL:
SELECT if(FgStatus,'Ativo','Bloqueado') AS Situacao FROM tecliente;
Sintaxe:
IF(ARGUMENTO,VALOR_ARGUMENTO_VERDADEIRO,VALOR_ARGUMENTO_FALSO) AS APELIDO_COLUNA
Você pode trabalhar com IF alinhados na sua consulta, mas não aconselho devido a legibilidade do seu código. Tente sempre manter o seu código limpo.
No vídeo veremos uma criação de view para o cliente e para empréstimo. Bom vídeo.
Baixe os scripts aqui:
Código de Exemplo da View (2,7 KiB)
| Imprimir artigo | Este artigo foi escrito por Eder Frances em 15 de julho de 2010 às 16:39, e está arquivado em Banco de Dados. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site. |



