1 of 31

SQL: Views

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E

TECNOLOGIA DE SANTA CATARINA

CÂMPUS TUBARÃO

CURSO TÉCNICO EM DESENVOLVIMENTO DE SISTEMAS

Prof Isabela Nardi da Silva, Ma

Disciplina: Banco de Dados

2 of 31

Olá, desenvolvedor do futuro!

Bancos de dados podem ser uma grande bagunça...

  • A quantidade de tabelas
  • A diversidade de nomes de colunas
  • Joins complicados

Isto pode confundir qualquer desenvolvedor.

2

3 of 31

A solução para isto?

  • VIEWS!
  • Estas tabelas virtuais facilitam a busca no banco de dados e evitam consultas super longas.

3

4 of 31

Suponha que tenhamos uma tabela chamada "MARTE CONFIDENCIAL"

4

MARTE_CONFIDENCIAL

ID_MARCIANO

PRIMEIRO_NOME

ULTIMO_NOME

ID_REGIAO

SUPER_ID

SALARIO

DNA

Esta tabela possui informações sobre todos os moradores do planeta!

5 of 31

5

Duas destas colunas contém informações sigilosas:

Salário e DNA

6 of 31

Como podemos dar acesso a alguns destes dados, mas não estas duas colunas?

7 of 31

Criando uma view!

8 of 31

9 of 31

10 of 31

11 of 31

12 of 31

Agora, temos uma nova missão!

Criar uma view que contenha todas as pessoas em Marte, considerando as tabelas:

12

MARTE_CONFIDENCIAL

ID_MARCIANO

PRIMEIRO_NOME

ULTIMO_NOME

ID_REGIAO

SUPER_ID

SALARIO

DNA

VISITANTES

ID_VISITANTE

ID_HOSPEDEIRO

PRIMEIRO_NOME

ULTIMO_NOME

Colunas requisitadas:

Primeiro nome

Último nome

ID único

Marciano ou visitante?

13 of 31

14 of 31

Agora, vamos criar uma view com estas informações!

15 of 31

16 of 31

Exemplo com 3 tabelas

Para nosso próximo exemplo, usaremos estas três tabelas:

16

REGIAO

ID_REGIAO

NOME_REGIAO

ANO_FUNDACAO

INVENTÁRIO

ID_REGIAO

ID_ESTOQUE

QUANTIDADE

ESTOQUE

ID_ESTOQUE

NOME

DESCRICAO

QUANTIDADE

17 of 31

DADOS DA TABELA REGIÃO

17

ID_REGIAO

NOME_REGIAO

ANO_FUNDACAO

1

Nova Nova York

2050

2

Asyrium

2043

3

Nalua Spa & Cassino

2055

4

Vermelholândia

2040

5

Vila Cratera

2042

18 of 31

DADOS DA TABELA INVENTÁRIO

18

ID_REGIAO

ID_ESTOQUE

QUANTIDADE

1

1

34

1

2

23

1

4

12

2

6

34

4

5

54

3

3

23

2

2

68

3

5

65

19 of 31

DADOS DA TABELA ESTOQUE

19

ID_ESTOQUE

NOME

DESCRICAO

QUANTIDADE

1

Jaqueta impermeável

Uma jaqueta quentinha e não necessariamente bonita, mas funcional

34

2

Filtro de água

Tira a sujeira da sua água para torná-la potável

23

3

Silver tape

Um rolo de 10 metros para todos os seus reparos

12

4

Cabo USB 6.0

Um cabo para seus dados correrem soltos

34

5

Pizza congelada

Pizza congelada para os dias que você não está a fim de cozinhar (ou seja, todos os dias)

54

6

Ração Humana

Ração feita PARA humanos (não DE humanos, claro...)

23

7

Mochila a jato

O melhor meio de transporte para aqueles que ainda não tem licença para espaçonave

68

20 of 31

Nossa nova missão:

Criar uma view chamada inventario-regiao para mostrar a quantidade de itens em estoque em cada região marciana

20

21 of 31

21

22 of 31

22

23 of 31

Nossa nova missão:

Para completar nossa missão, precisaremos usar outro conceito de SQL: sub-consultas!

23

24 of 31

24

25 of 31

25

Como podemos ver, alguns valores estão nulos, pois algumas regiões não possuem certos produtos em estoque

Porém, apenas o valor em branco pode nos deixar confusos...

26 of 31

26

27 of 31

27

28 of 31

Nossa nova missão:

Agora, nosso passo final:

28

29 of 31

29

30 of 31

30

31 of 31

Benefício de Views

Segurança

  • Dar permissão a uma view em vez de tabelas com dados particulares

Simplicidade

  • Esconde a complexidade. Em vez de pedir para pessoas consultar duas tabelas ou saber usar UNION, elas podem simplesmente usar um SELECT usando a VIEW

31