SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
VIEWS 
Wagner Bianchi 
Certified MySQL 5.0 Developer 
Certified MySQL 5.0 Database Administrator 
Certified MySQL 5.1 Cluster Database Administrator
Views 
! Uma View ou visualização é uma tabela derivada de outras tabelas 
existentes no banco de dados, chamadas de based tables ou tabelas 
base; 
! Também é composta de colunas e registros; 
! A diferença é que os dados de uma View é o resultado de um mapeamento 
de colunas e registros de outras tabelas; 
! Podem existir Views de Views; 
! Existem Views materializáveis e não-materializáveis; 
! Toda a definição de uma View é armazenado no dicionário de dados do 
MySQL, podendo ser recuperado com o seguinte SELECT: 
mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS;
Views 
! Segurança 
– As aplicações acessam Views e não as tabelas; 
– Facilita o controle de acesso aos dados; 
– Usuários não são capazes de ver determinadas informações; 
! Particionamento de Dados 
– Particionamento horizontal: Subconjunto de registros; 
– Particionamento vertical: Subconjunto de colunas; 
! Facilidade o Acesso aos Dados 
– Consultas complexas pode ser mapeadas em uma View; 
– O acesso aos dados pode ser feito a partir de uma View, evitando a 
criação a criação de uma consulta complexa;
Views 
! Independência Sobre a Definição de Dados 
– Alterações na estrutura física de dados não reflete na aplicação; 
– Cria camada entre a aplicação e o banco de dados; 
– Alteração no dicionário de dados podem ser mascaradas pela View; 
– Em alguns casos não será possível manter a mesma estrutura; 
Imagine passar um dia todo escrevendo uma 
consulta para gerar um relatório, com várias 
JOINS, SubConsultas, Agrupamentos A e B, 
UNION…toda complexidade que existe em 
uma consulta. Imagine ter que escrever isso 
todos os dias?
Views 
! Comando para criação de Views 
CREATE VIEW view_name(columns_name) 
AS SELECT… 
! O comando consiste em: 
– O nome para a View (view_name); 
– O comando SELECT que realizará o mapeamento de dados 
(SELECT…); 
– Opacionalmente, o nome das colunas da View
Views 
! Utilizando o banco de dados world, segue os exemplo: 
– Uma View mostrado uma tabela inteira: 
mysql> CREATE VIEW vw_country AS SELECT * FROM Country; 
Query OK, 0 rows affected (0.00 sec) 
– Uma View com um SELECT mais complexo: 
mysql> CREATE VIEW vw_country_language 
-> AS 
-> SELECT a.Name, GROUP_CONCAT(b.language) 
-> FROM Country AS a INNER JOIN CountryLanguage AS b 
-> ON a.Code = b.CountryCode 
-> GROUP BY a.Name; 
Query OK, 0 rows affected (0.02 sec)
Views 
! Podemos renomear os nomes das colunas através de aliases – apelidos; 
mysql> CREATE VIEW vw_country_names 
-> AS 
-> SELECT DISTINCT Name AS 'Países' FROM Country; 
Query OK, 0 rows affected (0.00 sec) 
! Podemos utilizar a lista de colunas para também renomear as colunas de 
uma View; 
mysql> CREATE VIEW vw_country_names (Paises) 
-> AS 
-> SELECT DISTINCT Name FROM Country; 
Query OK, 0 rows affected (0.00 sec)
Views 
! Para mostrar os dados de uma View, já que ela é tida como uma tabela 
virtual, basta selecionarmos a mesma através do comando SELECT: 
SELECT * FROM view_name ORDER BY 1 ASC; 
! Na selecão precedente, utilizamos o ORDER BY para ordenar os resultados 
pela primeira coluna. Esse ORDER BY elimina um ORDER BY interno à 
View;
Views 
! Uma View pode ser criada a partir de qualquer comando SELECT válido, 
inclusive SubConsultas; 
! Views podem ser atualizáveis ou não; 
! Para alterar um View já existente, utilize os comandos ALTER VIEW ou OR 
REPLACE; 
ALTER VIEW… 
…ou ainda: 
CREATE VIEW OR REPLACE view_name…
Exercício 
! Artigo: Trabalhando com Views no MySQL 
! Com base no assunto apresentando “Views”, responda a LISTA 9. 
! Fonte de referência: http://dev.mysql.com/doc/refman/5.0/en/views.html

Contenu connexe

Tendances

Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysql
Leo Frazão
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Breno Vitorino
 

Tendances (20)

Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Apresentação Oracle SGBD
Apresentação Oracle SGBDApresentação Oracle SGBD
Apresentação Oracle SGBD
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Exercícios de mysql
Exercícios de mysqlExercícios de mysql
Exercícios de mysql
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
 
Oracle 11g resumo
Oracle 11g resumoOracle 11g resumo
Oracle 11g resumo
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8
 
Inúmeras Razões para Migrar de Oracle 10g para 11g
Inúmeras Razões para Migrar de Oracle 10g para 11g Inúmeras Razões para Migrar de Oracle 10g para 11g
Inúmeras Razões para Migrar de Oracle 10g para 11g
 
Orm android
Orm androidOrm android
Orm android
 
04. manipulando dados
04. manipulando dados04. manipulando dados
04. manipulando dados
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Aprofundamento de DDL e DML
Aprofundamento de DDL e DMLAprofundamento de DDL e DML
Aprofundamento de DDL e DML
 
Fundamentos de SQL - Parte 2 de 8
Fundamentos de SQL - Parte 2 de 8Fundamentos de SQL - Parte 2 de 8
Fundamentos de SQL - Parte 2 de 8
 
Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8Banco de Dados II - Unimep/Pronatec - Aula 8
Banco de Dados II - Unimep/Pronatec - Aula 8
 
UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6UNIFAL - MySQL Triggers - 5.0/5.6
UNIFAL - MySQL Triggers - 5.0/5.6
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 

En vedette

MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016
Wagner Bianchi
 

En vedette (7)

UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6UNIFAL - MySQL Logs - 5.0/5.6
UNIFAL - MySQL Logs - 5.0/5.6
 
MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?
 
UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6UNIFAL - MySQL Transações - 5.0/5.6
UNIFAL - MySQL Transações - 5.0/5.6
 
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricksQuery Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
Query Optimization with MySQL 5.7 and MariaDB 10: Even newer tricks
 
MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016MySQL Multi-Source Replication for PL2016
MySQL Multi-Source Replication for PL2016
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
 
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6
 

Similaire à UNIFAL - MySQL Views - 5.0/5.6

MySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - NaveggMySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - Navegg
Felipe Guimarães
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
robinhoct
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
Erisvaldo Junior
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
José Henrique Sento Sé
 

Similaire à UNIFAL - MySQL Views - 5.0/5.6 (20)

Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Views Oracle Database
Views Oracle DatabaseViews Oracle Database
Views Oracle Database
 
Java13
Java13Java13
Java13
 
MySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - NaveggMySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - Navegg
 
MySQL - Workshop Buscapé
MySQL - Workshop BuscapéMySQL - Workshop Buscapé
MySQL - Workshop Buscapé
 
Aula 05 acessando o mysql
Aula 05   acessando o mysqlAula 05   acessando o mysql
Aula 05 acessando o mysql
 
UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggers
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
ZF Básico - 5. Modelo
ZF Básico - 5. ModeloZF Básico - 5. Modelo
ZF Básico - 5. Modelo
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Ado
AdoAdo
Ado
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Modulo-02-Aula-03-conteudo-para-cer.pptx
Modulo-02-Aula-03-conteudo-para-cer.pptxModulo-02-Aula-03-conteudo-para-cer.pptx
Modulo-02-Aula-03-conteudo-para-cer.pptx
 
Apostila sqlserver65v1a
Apostila sqlserver65v1aApostila sqlserver65v1a
Apostila sqlserver65v1a
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 

Plus de Wagner Bianchi

InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQL
Wagner Bianchi
 

Plus de Wagner Bianchi (14)

Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18Migrations from PLSQL and Transact-SQL - m18
Migrations from PLSQL and Transact-SQL - m18
 
Maxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoinMaxscale switchover, failover, and auto rejoin
Maxscale switchover, failover, and auto rejoin
 
Meetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de UsoMeetup São Paulo, Maxscale Implementação e Casos de Uso
Meetup São Paulo, Maxscale Implementação e Casos de Uso
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
 
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source ReplicationWebinar: MariaDB Provides the Solution to Ease Multi-Source Replication
Webinar: MariaDB Provides the Solution to Ease Multi-Source Replication
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source Replication
 
UNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoUNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - Replicação
 
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
 
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
Wagner Bianchi, GUOB 2014 MySQL Cluster 7.3
 
Introdução ao MySQL 5.6
Introdução ao MySQL 5.6Introdução ao MySQL 5.6
Introdução ao MySQL 5.6
 
Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQL
 
MySQL Cluster Product Overview
MySQL Cluster Product OverviewMySQL Cluster Product Overview
MySQL Cluster Product Overview
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

UNIFAL - MySQL Views - 5.0/5.6

  • 1. VIEWS Wagner Bianchi Certified MySQL 5.0 Developer Certified MySQL 5.0 Database Administrator Certified MySQL 5.1 Cluster Database Administrator
  • 2. Views ! Uma View ou visualização é uma tabela derivada de outras tabelas existentes no banco de dados, chamadas de based tables ou tabelas base; ! Também é composta de colunas e registros; ! A diferença é que os dados de uma View é o resultado de um mapeamento de colunas e registros de outras tabelas; ! Podem existir Views de Views; ! Existem Views materializáveis e não-materializáveis; ! Toda a definição de uma View é armazenado no dicionário de dados do MySQL, podendo ser recuperado com o seguinte SELECT: mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS;
  • 3. Views ! Segurança – As aplicações acessam Views e não as tabelas; – Facilita o controle de acesso aos dados; – Usuários não são capazes de ver determinadas informações; ! Particionamento de Dados – Particionamento horizontal: Subconjunto de registros; – Particionamento vertical: Subconjunto de colunas; ! Facilidade o Acesso aos Dados – Consultas complexas pode ser mapeadas em uma View; – O acesso aos dados pode ser feito a partir de uma View, evitando a criação a criação de uma consulta complexa;
  • 4. Views ! Independência Sobre a Definição de Dados – Alterações na estrutura física de dados não reflete na aplicação; – Cria camada entre a aplicação e o banco de dados; – Alteração no dicionário de dados podem ser mascaradas pela View; – Em alguns casos não será possível manter a mesma estrutura; Imagine passar um dia todo escrevendo uma consulta para gerar um relatório, com várias JOINS, SubConsultas, Agrupamentos A e B, UNION…toda complexidade que existe em uma consulta. Imagine ter que escrever isso todos os dias?
  • 5. Views ! Comando para criação de Views CREATE VIEW view_name(columns_name) AS SELECT… ! O comando consiste em: – O nome para a View (view_name); – O comando SELECT que realizará o mapeamento de dados (SELECT…); – Opacionalmente, o nome das colunas da View
  • 6. Views ! Utilizando o banco de dados world, segue os exemplo: – Uma View mostrado uma tabela inteira: mysql> CREATE VIEW vw_country AS SELECT * FROM Country; Query OK, 0 rows affected (0.00 sec) – Uma View com um SELECT mais complexo: mysql> CREATE VIEW vw_country_language -> AS -> SELECT a.Name, GROUP_CONCAT(b.language) -> FROM Country AS a INNER JOIN CountryLanguage AS b -> ON a.Code = b.CountryCode -> GROUP BY a.Name; Query OK, 0 rows affected (0.02 sec)
  • 7. Views ! Podemos renomear os nomes das colunas através de aliases – apelidos; mysql> CREATE VIEW vw_country_names -> AS -> SELECT DISTINCT Name AS 'Países' FROM Country; Query OK, 0 rows affected (0.00 sec) ! Podemos utilizar a lista de colunas para também renomear as colunas de uma View; mysql> CREATE VIEW vw_country_names (Paises) -> AS -> SELECT DISTINCT Name FROM Country; Query OK, 0 rows affected (0.00 sec)
  • 8. Views ! Para mostrar os dados de uma View, já que ela é tida como uma tabela virtual, basta selecionarmos a mesma através do comando SELECT: SELECT * FROM view_name ORDER BY 1 ASC; ! Na selecão precedente, utilizamos o ORDER BY para ordenar os resultados pela primeira coluna. Esse ORDER BY elimina um ORDER BY interno à View;
  • 9. Views ! Uma View pode ser criada a partir de qualquer comando SELECT válido, inclusive SubConsultas; ! Views podem ser atualizáveis ou não; ! Para alterar um View já existente, utilize os comandos ALTER VIEW ou OR REPLACE; ALTER VIEW… …ou ainda: CREATE VIEW OR REPLACE view_name…
  • 10. Exercício ! Artigo: Trabalhando com Views no MySQL ! Com base no assunto apresentando “Views”, responda a LISTA 9. ! Fonte de referência: http://dev.mysql.com/doc/refman/5.0/en/views.html