Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

theteo

VIEW no phpmyadmin

Recommended Posts

Pessoal, estou fazendo a minha primeira view no phpmyadmin, nunca havia utilizado isso antes.

 

A pergunta é, tenho 4 tabelas da onde quero retornar dados.

 

tbl_turmas, tbl_unidades, tbl_graus, tbl_series

 

A relação está assim:

 

tbl_turmas ( id_turma, id_unidade, id_serie, turma )

tbl_unidades ( id_unidade, nome)
tbl_graus ( id_grau, grau )

tbl_series ( id_serie, id_grau, serie )

 

Bem, eu quero fazer uma view, via phpmyadmin, que depois no código eu possa recuperar esses valores sem ter que toda hora fazer algo do tipo:

 

SELECT t.turma,u.nome,g.grau,s.serie 
       
       FROM
       tbl_unidades u,
       tbl_graus g,
       tbl_series s
       
       WHERE
       t.id_unidade = u.id_unidade and
       g.id_serie = s.id_serie and
       t.id_serie = s.id_serie

 

É pra isso mesmo que servem as VIEWS certo ?

 

Eu tentei colocar esse codigo ai dentro da view no phpmyadmin e deu erro. acho que tem que usar JOIN , sei lá.

 

Eu não tenho muita experiencia com JOINS, mas se alguem puder me ajudar a CRIAR essa view eu agradeço.

 

Atenção , a viwe será feita diretamente no phpmyadmin.

 

Obrigado galera.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opá, tudo bem Motta.

 

Então, t é tbl_turmas. Desculpe o erro.

 

O código certo seria esse:

SELECT t.turma,u.nome,g.grau,s.serie 
       
       FROM
       tbl_turmas t,
       tbl_unidades u,
       tbl_graus g,
       tbl_series s
       
       WHERE
       t.id_unidade = u.id_unidade and
       g.id_grau = s.id_grau and
       t.id_serie = s.id_serie

 

Isso irá retorna algo do tipo:

 

 

M2014001 - Taguatinga - 1 - 6

 

Ou seja,

 

Turma M2014001 da unidade de taguatinga é da sexta serie do primeiro grau.

 

 

Voltando ao assunto VIEW, esse código acima seria o mais indicado ? o mais performático ?

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a síntaxe da view é

 

create or replace view <nome da view> as 
select ...

view é apenas um object que encapsula um select , tem a mesma performance do select.

 

vantagens : reutilização de objetos query , simplicidade de alguns selects,pode-se criar "tabelas"que agregação

 

desvantagens : "mascaram" o acesso , mal feitas podem carregear o BD

Compartilhar este post


Link para o post
Compartilhar em outros sites

então motta,

 

eu consegui construir a View, tranquilo.

 

minha dúvida é, nessa SITUAÇÃO DESCRITA ACIMA, se essa query é a melhor maneira, mais performática, pra carregar essa view ?

 

ou vc acha melhor fazer o select com JOIN ?

 

Se sim, como ficaria a query ?

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende de

 

Existem índices ?

Tamanho das tabelas ?

Estatísticas de BD atualizadas.

 

Fez o plano de execução das query ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tbl_turmas ( id_turma ( PK ) , id_unidade, id_serie, turma )

tbl_unidades ( id_unidade ( PK ) , nome)

tbl_graus ( id_grau ( PK ) , grau )

tbl_series ( id_serie ( PK ) , id_grau, serie )

 

é isso q tenho por enquanto.



SELECT t.turma,u.nome,g.grau,s.serie FROM tbl_turmas t, tbl_unidades u, tbl_graus g, tbl_series s WHERE t.id_unidade = u.id_unidade and g.id_grau = s.id_grau and t.id_serie = s.id_serie

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.