tecnologia em análise e desenvolvimento de sistemas ... · tecnologia em análise e...

8
1 Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula – Aula 10 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna, ...] ) ] VALUES ( valor [, valor, ... ] ) Tabela: nome da tabela que receberá a inclusão. Coluna: Lista de colunas que terão seus valores atribuídos (opcional) Valor: conteúdo que será incluído em cada coluna. Ex.: INSERT INTO tmpAutor (CDAUTOR, NMAUTOR) VALUES (1, ‘Renato Araújo’) Obs.: colunas que não tiverem valores atribuídos terão conteúdo nulo. Caso queira explicitar a inclusão de um valor nulo numa determinada coluna use NULL no lugar correspondente ao valor desta coluna. 2) Incluindo várias linhas INSERT INTO tabela [ ( coluna [, coluna, ...] ) ] SELECT comando-select Tabela: nome da tabela que receberá a inclusão. Coluna: Lista de colunas que terão seus valores atribuídos (opcional) Comando-select: comando select que será visto na próxima aula. Exs.: INSERT INTO Estado SELECT * FROM Uf INSERT INTO tmpAutor (CDAUTOR, NMAUTOR) SELECT CDAUTOR, NMAUTOR from AUTOR

Upload: doandung

Post on 09-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

1

Tecnologia em Análise e Desenvolvimento de Sistemas

Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados

Memória de aula – Aula 10

1) Incluindo linhas nas tabelas

a. Para incluir linhas em tabelas utilize o comando INSERT INTO

INSERT INTO tabela [ ( coluna [, coluna, ...] ) ]

VALUES ( valor [, valor, ... ] )

Tabela: nome da tabela que receberá a inclusão.

Coluna: Lista de colunas que terão seus valores atribuídos (opcional)

Valor: conteúdo que será incluído em cada coluna.

Ex.: INSERT INTO tmpAutor (CDAUTOR, NMAUTOR)

VALUES (1, ‘Renato Araújo’)

Obs.: colunas que não tiverem valores atribuídos terão conteúdo nulo. Caso

queira explicitar a inclusão de um valor nulo numa determinada coluna use NULL

no lugar correspondente ao valor desta coluna.

2) Incluindo várias linhas

INSERT INTO tabela [ ( coluna [, coluna, ...] ) ]

SELECT comando-select

Tabela: nome da tabela que receberá a inclusão.

Coluna: Lista de colunas que terão seus valores atribuídos (opcional)

Comando-select: comando select que será visto na próxima aula.

Exs.: INSERT INTO Estado

SELECT * FROM Uf

INSERT INTO tmpAutor (CDAUTOR, NMAUTOR)

SELECT CDAUTOR, NMAUTOR from AUTOR

Page 2: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

2

3) Alteração de dados

UPDATE tabela

SET coluna = valor [, coluna = valor, ...]

[WHERE condição]

Tabela: nome da tabela que receberá a inclusão.

Coluna: Lista de colunas que terão seus valores atribuídos (opcional)

Valor: novo conteúdo para a coluna.

Condição: condição que indicará o limite de atualização das linhas.

Ex.: UPDATE CD

SET PRECO_VENDA = 15

WHERE CODIGO_CD = 1;

UPDATE CD

SET PRECO_VENDA = PRECO_VENDA * 1,05

WHERE CODIGO_GRAVADORA = 2;

4) Exclusão de dados

DELETE FROM tabela

[WHERE condição]

Tabela: nome da tabela que receberá a inclusão.

Condição: condição que indicará o limite de atualização das linhas.

Ex.: DELETE FROM AUTOR

WHERE CDAUTOR = 1

5) Cláusulas SELECT e FROM

a. Apesar de ser a primeira, ela é a última instrução a ser executada!!!

b. Antes de poder determinar o que incluir no conjunto-resultado final, é

necessário conhecer todas as colunas que podem ser incluídas nele.

c. Para isso, será necessário conhecer um pouco a cláusula FROM

d. A cláusula FROM indica a(s) tabelas(s) que participarão do conjunto-resultado

da consulta.

e. Por exemplo:

i. Mostre todas as colunas e todas as linhas da tabela cliente:

Page 3: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

3

SELECT * FROM cliente

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar *

(boa prática)

g. Muito relevante na manutenção de BD e de aplicações.

SELECT codcliente,nome,cpf,datacadastro,cidade,uf,pais

FROM cliente

h. Além de selecionar todas as colunas, você pode indicar quais colunas

(subconjunto):

SELECT codcliente,nome,cpf

FROM cliente

6) Cláusula DISTINCT

a. Remove possíveis linhas duplicadas no resultado

i. Exemplo:

Select distinct nomecliente from cliente

7) Cláusula WHERE

a. Mecanismo de filtragem de linhas indesejáveis de seu conjunto-resultado.

Ex.:

Select e.cod_emp, e.nome, e.sobrenome, e.dt_contr,

e.cargo

From empregado as e

Where (e.cargo like ‘analista%’ or

e.cod_emp >= 41 ) and e.dt_contr > ’04-23-2010’

Obs.: lembre-se que atributos do tipo datetime guardam data e hora, inclusive com segundos,

como ’04-23-2010 01:05:00’. Quando não for especificado as horas, minutos e segundos, será

considerado 00:00:00. Logo a expressão e.dt_contr > ’04-23-2010’ permite

retornar todos registro desta data.

Page 4: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

4

Operadores de comparação:

like: valores aproximados para alfanuméricos, geralmente utilizado em conjunto com %, que

indica “qualquer coisa”. O coringa _ indica um caracter, [a-f] indica um caracter entre a e f

quaisquer, e [^a-f] indica um caracter que não esteja entre a e f quaisquer.

> , < , >=, <=, =, <> (diferente)

8) Cláusula ORDER BY

Em geral os resultados de consultas não estão em nenhuma ordem específica.

A cláusula order by é o mecanismo que ordena seus conjuntos-resultados usando

dados de coluna brutos ou expressões baseadas em dados de coluna.

Exemplos:

Select v.cod_vendedor, v.nomeproduto

From venda as v

Order by cod_vendedor

Select v.cod_vendedor, v.nomeproduto

From venda as v

Order by cod_vendedor, nomeproduto

Select v.cod_vendedor, v.nomeproduto

From venda as v

Order by cod_vendedor desc

Select v.cod_vendedor, v.nomeproduto

From venda as v

Order by cod_vendedor desc, nomeproduto asc

Select v.cod_vendedor, v.nomeproduto

From venda as v

Order by 2

Obs.: o “default” é ordenação ascendente, ou seja, caso não seja especificado asc ou desc , a

ordenação será ascendente.

Page 5: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

5

9) Junção

a. Ideia similar à Junção da Álgebra Relacional

b. Produto Cartesiano

select nomeloja, codproduto, valor from preco as

P, loja as L

ou

select nomeloja, codproduto, valor from preco as

P

cross join loja as L

i. Filtro ruim:

select nomeloja, codproduto, valor from preco as

P, loja as L

where P.codloja = L.codloja

ii. Filtro correto: JOIN

c. Junções internas

i. Ex.: (junção interna é o join padrão)

select nomeloja, codproduto, valor from preco as

P

join loja as L

on (P.codloja = L.codloja )

ii. Explicitando que a junção é interna

select nomeloja, codproduto, valor from preco as

P

inner join loja as L

on (P.codloja = L.codloja )

d. Junções externas (outer join)

i. Right outer join

ii. Left outer join

iii. Full outer join

select nomeloja, codproduto, valor

from preco as P

left outer join loja as L

on (P.codloja = L.codloja )

Page 6: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

6

select nomeloja, codproduto, valor

from preco as P

full outer join loja as L

on (P.codloja = L.codloja )

Bibliografia

ELMASRI, R., NAVATHE, S.B. Sistemas de Banco de Dados. 4ª Ed. São Paulo: Pearson

Makron Books, 2005.

EXERCÍCIO

PARTE I

1. Inclua ao menos duas linhas na tabela ESTADO.

2. Inclua ao menos quatro linhas na tabela CIDADE (duas por estado).

3. Inclua ao menos cinco linhas na tabela BAIRRO.

4. Inclua ao menos três linhas na tabela VENDEDOR.

5. Inclua ao menos três linhas na tabela IMOVEL.

6. Inclua ao menos três linhas na tabela COMPRADOR.

7. Inclua ao menos três linhas na tabela OFERTA.

8. Aumente o preço de venda dos imóveis em 10%.

9. Abaixe o preço de venda dos imóveis do vendedor 1 em 5%.

10. Aumente em 5% o valor das ofertas do comprador 2.

11. Altere o endereço do comprador 3 para “R. Ananás, 45” e o estado para “RJ”.

12. Altere a oferta do comprador 2 no imóvel 4 para 101.000.

13. Exclua a oferta do comprador 3 no imóvel 1.

14. Exclua a cidade 3 do Estado SP.

15. Inclua linhas na tabela FAIXA_IMOVEL:

CDFAIXA NMFAIXA VLMINIMO VLMAXIMO

1 BAIXO 0 105000

2 MÉDIO 105001 180000

3 ALTO 180001 999999

Page 7: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

7

PARTE II

Baseando-se no Modelo de Dados implementado em laboratório, efetue as consultas abaixo.

1) Liste todos os campos e linhas da tabela BAIRRO.

2) Liste todas as linhas e os campos CDCOMPRADOR, NMCOMPRADOR e EMAIL da tabela

COMPRADOR.

3) Liste todas as linhas e os campos CDVENDEDOR, NMVENDEDOR e EMAIL da tabela

VENDEDOR em ordem alfabética.

4) Repita o comando anterior em ordem alfabética descrescente.

5) Liste todos os bairros do Estado de SP

6) Liste as colunas CDIMOVEL, CDVENDEDOR e VLPRECO de todos os imóveis do

vendedor 2.

7) Liste as colunas CDIMOVEL, CDVENDEDOR, VLPRECO e SGESTADO dos imóveis cujo

preço de venda seja inferior a 150mil e sejam do Estado do RJ.

8) Liste as colunas CDIMOVEL, CDVENDEDOR, VLPRECO e SGESTADO dos imóveis cujo

preço de venda seja inferior a 150 mil ou seja do vendedor 1.

9) Liste as colunas CDIMOVEL, CDVENDEDOR, VLPRECO e SGESTADO dos imóveis cujo

preço de venda seja inferior a 150 mil e o vendedor não seja 2.

10) Liste as colunas CDCOMPRADOR, NMCOMPRADOR, NMENDERECO e SGESTADO da

tabela COMPRADOR em que o Estado seja nulo.

11) Liste as colunas CDVENDEDOR, NMVENDEDOR, NMENDERECO e SGESTADO da tabela

VENDEDOR em que o Estado não seja nulo.

12) Liste todas as ofertas cujo valor esteja entre 100 mil e 150 mil.

13) Liste todas as ofertas cuja data da oferta esteja entre ‘01/02/2002’ e ‘01/03/2002’.

14) Liste todos os vendedores que comecem com a letra M.

15) Liste todos os vendedores que tenham a letra A na segunda posição do nome.

16) Liste todos os compradores que tenham a letra U em qualquer posição do endereço.

17) Liste todas as ofertas cujo imóvel seja 1 ou 2.

18) Liste todos os imóveis cujo código seja 2 ou 3 em ordem alfabética de endereço.

19) Liste todas as ofertas cujo imóvel seja 2 ou 3 e o valor da oferta seja maior que 140 mil,

em ordem decrescente de data.

20) Liste todos os imóveis cujo preço de venda esteja entre 110 mil e 200 mil ou seja do

vendedor 1 em ordem de área útil.

Page 8: Tecnologia em Análise e Desenvolvimento de Sistemas ... · Tecnologia em Análise e Desenvolvimento de ... Sistemas Gerenciadores de Banco de Dados Memória de aula ... Para incluir

8

21) Faça uma busca que mostre CDIMOVEL, CDVENDEDOR, NMVENDEDOR e SGESTADO.

22) Faça uma busca que mostre CDCOMPRADOR, NMCOMPRADOR, CDIMOVEL e

VLOFERTA.

23) Faça uma busca que mostre CDIMOVEL, VLPREÇO e NMBAIRRO, cujo código do

vendedor seja 3.

24) Faça uma busca que mostre todos os imóveis que tenham ofertas cadastradas.

25) Faça uma busca que mostre todos os imóveis e ofertas mesmo que não haja ofertas

cadastradas para o imóvel.

26) Faça uma busca que mostre os compradores e as respectivas ofertas realizadas por

eles.

27) Faça a mesma busca, porém acrescentando os compradores que ainda não fizeram

ofertas para os imóveis.

28) Faça uma busca que mostre todos os endereços de imóveis e os endereços dos imóveis

indicados.

29) Acrescente à busca anterior o nome dos vendedores tanto do imóvel quanto do imóvel

indicado.

30) Faça uma busca que mostre o endereço do imóvel, o bairro, cidade, estado e o preço

do imóvel.

31) Faça uma busca de todos os bairros que possuem imóveis à venda, sem repetição.

32) Faça uma busca de todos os vendedores que tiveram imóveis indicados, apresentando

somente uma vez o valor de cada imóvel.