Introdução às visualizações SQL de banco de dados MySQL/MariaDB

Introdução às visualizações SQL de banco de dados MySQL/MariaDB

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

Requisitos de software e convenções de linha de comando Linux
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