Introdução às visualizações SQL de banco de dados MySQL/MariaDB
- 2484
- 80
- Arnold Murray
Uma visualização de banco de dados não passa de uma tabela virtual, que não contém dados em si, mas referencia os dados contidos em outras tabelas. As visualizações são basicamente o resultado de consultas armazenadas que podem variar a complexidade e podem ser usadas, por exemplo, para ocultar dados dos usuários, permitindo o acesso apenas em colunas selecionadas de uma tabela ou simplesmente para fornecer um ponto de vista diferente sobre os dados existentes. Neste tutorial, veremos como criar, atualizar, alterar e soltar uma visualização em um banco de dados MySQL, Mariadb.
Neste tutorial, você aprenderá:
- O que é uma visão
- Como criar uma visão
- Como atualizar uma visualização
- Como alterar uma visão
- Como deixar cair uma vista
Requisitos de software e convenções usadas
Categoria | Requisitos, convenções ou versão de software usada |
---|---|
Sistema | Independente do OS |
Programas | Um banco de dados em execução MySQL/MariaDB |
Outro | Knwoledge básico de conceitos MySQL/Mariadb e bancos de dados relacionais |
Convenções | # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular |
Criando um banco de dados de teste
Para o bem deste tutorial, criaremos um banco de dados de teste chamado "filmes". Ele conterá duas tabelas: a primeira contém dados sobre os diretores, o segundo conterá informações sobre títulos e será vinculado ao primeiro através de um Chave estrangeira
. Para criar nosso banco de dados, podemos emitir os seguintes comandos do shell MySQL/Mariadb:
Mariadb [(nenhum)]> criar filmes de banco de dados; Mariadb [(nenhum)]> Use filmes; O banco de dados alterou o mariadb [filmes]> Criar diretor de tabela ( -> id smallInt não assinado NÃO NULL AUTO_INCREMENT, -> FIRST_NAME VARCHAR (20) NÃO NULL, -> last_name varchar (20) Não nulo,> Data de nascimento NÃO NULL, -> primário Chave (id) ->);
cópia de O próximo passo é inserir algumas entradas na tabela:
Mariadb [filmes]> inserir no diretor (primeiro_name, last_name, nascimento) valores-> ('stanley', 'kubrik', '1928-07-26'),-> ('jeffrey', 'adams', '1966- 06-27 '),-> (' Alfred ',' Hitchcock ',' 1899-08-13 ');
cópia de Agora podemos criar a tabela "título" e inserir algumas entradas nela:
Mariadb [filmes]> Criar título da tabela ( -> id smallint não assinado NÃO NULL AUTO_INCREMENT, -> nome varchar (30) não nulo, -> gênero varchar (30) não nulo, -> release_date Data não nula, -> diretor_id SmallInt Unsigned Não nulo, -> chave primária (id), -> Chave estrangeira (diretor_id) diretor de referências (id) ->); Mariadb [filmes]> inserir no título (nome, gênero, release_date, diretor_id) valores -> ('2001: um odisseia espacial', 'científica', '1968-04-02', 1), -> ('o Force Awakens ',' Fantasy ',' 2015-12-14 ', 2),-> (' Psyco ',' Horror ',' 1960-06-16 ', 3);
cópia de Agora que temos algumas mesas para trabalhar, podemos criar um visualizar
.
Criando uma visão
Uma visualização é simplesmente uma tabela virtual que vamos obter uma alternativa "prospectiva" sobre os dados contidos em tabelas reais. Podemos criar facilmente uma visualização selecionando as colunas que queremos incluir nele nas tabelas existentes. Diga por exemplo, queremos nosso visualizar
Para incluir as colunas "nome" e "gênero" da tabela "Title" que criamos em nosso banco de dados de teste. Aqui está como criamos:
Mariadb [filmes]> Crie Exemplo de Exibição como Nome Selecione, Gênero do Título;
cópia de Com o comando Criar visualização
, Criamos um visualizar
e chame de "exemplo". A visualização é criada usando a declaração AS seguida pela consulta necessária para obter os dados que queremos incluir. O conteúdo da visão será o resultado da consulta:
Mariadb [filmes]> selecione * do exemplo; +-------------------------+---------------+| nome | gênero | +-------------------------+---------------+| 2001: uma odisseia espacial | ficção científica | | The Force Awakens | fantasia | | Psyco | horror | +-----------------------+-----------------+
cópia de Podemos restringir os dados recuperados na visualização, como faríamos em uma tabela padrão, por exemplo:
Mariadb [filmes]> selecione * do exemplo onde gênero = "ficção científica"; +-------------------------+---------------+| nome | gênero | +-------------------------+---------------+| 2001: uma odisseia espacial | ficção científica | +-----------------------+-----------------+
cópia de Fornecendo nomes específicos para as colunas da visão
Por padrão, o nome das colunas do criado visualizar
corresponderá ao nome das colunas incluídas no Selecione
declaração usada para criá -lo. Caso queremos especificar nomes alternativos, devemos fornecê -los entre parênteses. O número de nomes deve corresponder ao número de colunas selecionadas. Aqui está um exemplo:
Mariadb [Movies]> Criar Exemplo de Exemplo (Movie_name, Movie_Genre) como nome selecione Nome, Gênero do Título; Mariadb [filmes]> selecione * do exemplo; +-------------------------+---------------+| filme_name | filme_genre | +-------------------------+---------------+| 2001: uma odisseia espacial | ficção científica | | The Force Awakens | fantasia | | Psyco | horror | +-----------------------+-----------------+
cópia de Uma visualização pode ser criada usando consultas complexas e pode incluir valores resultantes de funções. Aqui está um exemplo de visão criada ao ingressar nas tabelas "título" e "diretor" e usando o Concat
função:
Mariadb [Movies]> Criar Exemplo de Visualização (Movie_name, Movie_genre, Movie_director) como -> Selecionar -> Título.Nome ->, título.gênero ->, concat (diretor.primeiro_name, "", diretor.last_name) -> de -> título -> Participe do diretor no título.diretor_id = diretor.eu ia;
cópia de Aqui está o conteúdo completo da visão resultante:
Mariadb [filmes]> selecione * do exemplo; +-------------------------+---------------+------- -----------+ | filme_name | filme_genre | Movie_director | +-------------------------+---------------+------- -----------+ | 2001: uma odisseia espacial | ficção científica | Stanley Kubrik | | The Force Awakens | fantasia | Jeffrey Adams | | Psyco | horror | Alfred Hitchcock | +-----------------------+-----------------+------------------+
cópia de Atualizando uma visualização
Se algumas condições específicas forem atendidas, é possível atualizar uma visualização: as alterações serão refletidas nas tabelas subjacentes. Para poder atualizar uma visualização:
- A visualização deve ser criada consultando uma única tabela e deve mapear diretamente para ela;
- A visão não pode conter valores agregados resultantes de funções como Sum ();
- Uma operação na exibição deve corresponder a uma operação em uma única linha da tabela original;
Vamos ver um exemplo. Suponha que estamos trabalhando na visão que criamos antes:
+-----------------------+-----------------+ | filme_name | filme_genre | +-------------------------+---------------+| 2001: uma odisseia espacial | ficção científica | | The Force Awakens | fantasia | | Psyco | horror | +-----------------------+-----------------+
cópia de Como a opinião respeita o requisito que mencionamos acima, se agora atualizarmos o gênero do filme "Psyco", mudando -o de "Horror" para "Thriller", a mudança será refletida na tabela "Title". Vamos verificar:
Mariadb [filmes]> Exemplo de atualização definido filme_genre = "thriller" onde filme_name = "psyco";
cópia de Se agora consultarmos a tabela "título" subjacente, podemos verificar se a mudança foi aplicada:
Mariadb [filmes]> selecione * do título onde name = "psyco"; +----+-------+----------+--------------+-------------- ---+ | id | nome | gênero | release_date | diretor_id | +----+-------+----------+--------------+-------------- ---+ | 3 | Psyco | thriller | 1960-06-16 | 3 | +----+-------+----------+--------------+-------------+
cópia de Alterar uma visão
Para alterar a definição de uma visão, usamos o Alter View
comando. Cada vez que queremos mudar a estrutura de uma visão, temos que reescrever o Selecione
declaração usada para criá -lo. Apenas como exemplo, suponha que queremos adicionar a coluna "Release_date" da tabela "Title" à nossa opinião: não podemos usar um comando como Adicione coluna
, Devemos fornecer uma nova consulta que compreenda a coluna que queremos adicionar:
Mariadb [filmes]> altere Exemplo de exibição (filme_name, filme_genre, filme_release_date) como nome selecione, gênero, release_date do título; Selecione * no exemplo; +-------------------------+---------------+------- -------------+ | filme_name | filme_genre | Movie_release_date | +-------------------------+---------------+------- -------------+ | 2001: uma odisseia espacial | ficção científica | 1968-04-02 | | The Force Awakens | fantasia | 2015-12-14 | | Psyco | thriller | 1960-06-16 | +-----------------------+-----------------+--------------------+
cópia de Largando uma vista
Largar uma vista é uma operação muito fácil. O comando usado para realizar a tarefa é Vista de soltar
. Nesse caso, para remover nossa visão de "exemplo", executaríamos:
Exemplo de visualização de soltar;
cópia de Pensamentos finais
Neste artigo, vimos como podemos usar visualizações MySQL/Mariadb para reunir um ponto de vista diferente sobre os dados contidos em uma tabela de banco de dados. Vimos como criar uma visão, como alterar sua estrutura, como podemos atualizá -la se alguns requisitos forem atendidos e como soltá -la. Se você estiver interessado em outros tópicos do MySQL/Mariadb, pode dar uma olhada em nossos artigos sobre o assunto, por exemplo, aqueles sobre o sindicato ou participar de declarações.
Tutoriais do Linux relacionados:
- Introdução aos mecanismos de armazenamento MySQL
- Como alterar a senha do usuário do mariadb
- Coisas para instalar no Ubuntu 20.04
- Instale o MySQL no Ubuntu 20.04 LTS Linux
- Como instalar o MySQL no Almalinux
- Como criar uma pilha de lâmpadas à base de docker usando o docker em…
- Ubuntu 20.04 WordPress com instalação do Apache
- Como grep corretamente para texto em scripts de bash
- Instalação do Ampache Raspberry Pi
- Ubuntu 20.04: WordPress com instalação nginx
- « Como usar widgets gráficos em scripts de bash com zenidade
- WarZone2100 Instalação no Debian Wheezy »