Aula 300309

20

Click here to load reader

description

Slides da aula sobre banco de dados

Transcript of Aula 300309

Page 1: Aula 300309

SGBD - MySQL

Page 2: Aula 300309

Relacionando Tabelas● É possível recuperar dados de duas tabelas

que possuem relacionamento, ao mesmo tempo usando o comando SELECT.

● A tabela tbproduto (codigo, descricao, unidade, catprod, valor) e tbcatprod (codigo, descricao) pode servir de exemplo:

● Vamos criar estas duas tabelas no mysql.

Page 3: Aula 300309

Relacionando Tabelas

shell> create table tbproduto(codigo int, descricao varchar(40), unidade varchar(2), catprod int, valor double(12,2), primary key(codigo)); shell> create table tbcatprod(codigo int, descricao varchar(40), primary key(codigo), foreign key (codigo) references tbproduto(catprod));● Povoe as duas tabelas.

Page 4: Aula 300309

Relacionando Tabelas● Agora vamos usar o comando SELECT para

selecionar as duas tabelas ao mesmo tempo.shell> select tbproduto.descricao, tbcatprod.descricao from tbproduto, tbcatprod where tbproduto.catprod=tbcatprod.codigo; ● A sintaxe é: SELECT tabela1.campo1,

tabela2.campo2 from tabela1, tabela2 where tabela1.chave_primaria=tabela2.chave_estrangeira;

Page 5: Aula 300309

Ordenando registros● A clausula Order by permite ordenar o

resultado do SELECT por qualquer campo das tabelas envolvidas.

shell> select tbproduto.descricao, tbcatprod.descricao from tbproduto, tbcatprod where tbproduto.catprod=tbcatprod.codigo order by tbproduto.descricao; ● Neste caso o resultado deste SELECT será

ordenado pelo campo descricao da tabela tbproduto.

Page 6: Aula 300309

Ordenando registros● É possível ainda determinar a forma da

ordenação. ASC ou DESCshell> select tbproduto.descricao, tbcatprod.descricao from tbproduto, tbcatprod where tbproduto.catprod=tbcatprod.codigo order by tbproduto.descricao; ● Neste caso o resultado deste SELECT será

ordenado pelo campo descricao da tabela tbproduto em ordem ASCENDENTE. Este é o padrão não sendo necessário informar ASC

Page 7: Aula 300309

Ordenando registros

shell> select tbproduto.descricao, tbcatprod.descricao from tbproduto, tbcatprod where tbproduto.catprod=tbcatprod.codigo order by tbproduto.descricao DESC; ● Neste caso o resultado deste SELECT será

ordenado pelo campo descricao da tabela tbproduto em ordem DESCENDENTE.

Page 8: Aula 300309

Agrupar resultados em consultas● A clausula Group by pode ser usada para

dividir as linhas de uma tabela em grupos menores.

shell> select * from tbproduto group by catprod;

Page 9: Aula 300309

Agrupar resultados em consultas● A clausula Having pode ser usada para

restringir quais grupos devem ser exibidos.shell> select * from tbproduto group by catprod having > 3;

Page 10: Aula 300309

Junções● A operação Join serve para vincular tabelas. A

sintaxe para uso do Join é: SELECT campos FROM tabela1 INNER JOIN tabela2 ON tabela1.campo1 comp tabela.camp2.

● A item comp é qualquer operador de comparação relacional =, <, <>, <=, =>.

Page 11: Aula 300309

Uniões● Para unir duas linhas de consultas utiliza-se a

palavras UNION.● (SELECT * FROM tabela WHERE campo=1)

UNION (SELECT * FROM tabela2 WHERE cod=2);

Page 12: Aula 300309

Sub Consultas● Uma “SUBQUERY” é uma instrução SELECT

dentro de outra instrução (podendo ser um select, insert, delete ou update).

● SELECT * from tabela1 where codigo=ANY(SELECT codigo FROM tabela2);

● ANY ou SOME – Servem para recuperar registros na consulta principal que satisfaçam a comparação com quaisquer registros recuperados na subconsulta)

Page 13: Aula 300309

Sub Consultas● ALL – Serve para recuperar apenas os

registros na consulta principal que satisfaçam a comparação com todos os registros recuperados na subconsulta.

Page 14: Aula 300309

Utilizando funções em consultas● Função SUM – Calcula o total de todos os

valores de uma coluna, ela funciona da seguinte maneira: SUM (campo + (campo * 0.1)).

● Exemplo: SELECT SUM(valor) FROM tbproduto;

Page 15: Aula 300309

Utilizando funções em consultas● Função COUNT – Usado em conjunto com o

comando SELECT para contar todas as linhas de uma tabela ou as colunas que casem com uma condição especificada.

● Exemplo: SELECT COUNT(*) FROM tbprodutos;

● O exemplo acima irá contar todos os registros da tabela e os retornará em um campo o total de registros da tabela.

Page 16: Aula 300309

Utilizando funções em consultas● Função MIN – Retorna o menor valor não vazio

de uma certa coluna. ● Exemplo: SELECT MIN(quantidade) FROM

tbprodutos;● O exemplo acima retornará o menor valor do

campo quantidade da tabela tbprodutos.

Page 17: Aula 300309

Utilizando funções em consultas● Função MAX – Retorna o maior valor não vazio

de uma certa coluna. ● Exemplo: SELECT MAX(quantidade) FROM

tbprodutos;● O exemplo acima retornará o maior valor do

campo quantidade da tabela tbprodutos.

Page 18: Aula 300309

Atualizar dados na Tabela● O comando UPDATE serve para atualizar

dados especificos na tabela.● A sintaxe do comando UPDATE é: UPDATE

tabela set campo=novo_valor WHERE campo=critério;

● Exemplo: UPDATE cliente SET cidade='Goiania' WHERE cidade='Anápolis';

Page 19: Aula 300309

Apagar dados na tabela● O comando DELETE serve para apagar dados

especificos na tabela.● A sintaxe do comando DELETE é: DELETE

from tabela;● Exemplo: DELETE from cliente;● O exemplo acima irá apagar todos os dados da

tabela cliente.● Para apagar registros especificos utiliza-se a

clausula WHERE.

Page 20: Aula 300309

Usando ROLLBACK e COMMIT● COMMIT é utilizado para armazenar as

alterações em disco.● ROLLBACK é utilizado para ignorar as

alterações efetuadas desde o ínicio da sua transação.

● Sintaxe : START TRANSACTION; comandos quaisquer COMMIT;