aula 300309
DESCRIPTION
Slides da aula sobre banco de dadosTRANSCRIPT
SGBD - MySQL
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.
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.
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;
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.
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
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.
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;
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;
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 =, <, <>, <=, =>.
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);
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)
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.
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;
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.
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.
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.
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';
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.
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;