BANCO DE DADOS - fabianotaguchi.files.wordpress.com · EXERCÍCIOS 03 –Construa comandos SQL...
Transcript of BANCO DE DADOS - fabianotaguchi.files.wordpress.com · EXERCÍCIOS 03 –Construa comandos SQL...
26/05/2016
1
BANCO DE DADOS
Prof. Fabiano Taguchihttp://fabianotaguchi.wordpress.com
OPERAÇÕES LÓGICAS
AND (E) – Avalia as condições e devolve um valorverdadeiro caso ambas condições forem corretas;
OR (OU) – Avalia as condições e devolve um valorverdadeiro se algum for correto
NOT (NEGAÇÃO) – Devolve o valor contrário da expressão.
26/05/2016
2
EXEMPLOS
AND (E) - codigo = 1 and codigo = 2
OR (OU) – codigo = 1 or codigo = 2
NOT (NEGAÇÃO) – codigo not in (1,2,3)
CONSULTAS SQL
26/05/2016
3
CONSULTAS SQL
Uma consulta SQL envolve atributos, tabelas e umparâmetro de pesquisa. A estrutura básica de umaconsulta é apresentado abaixo:
select atributos
from tabela
where pesquisa;
CONSULTAS SQL
No exemplo abaixo é pesquisado os nomes e os saláriosque estão registrados na tabela funcionário. Não éutilizado nenhum parâmetro de pesquisa, então é exibidotodos os registros.
select nome, salario
from funcionario;
26/05/2016
4
CONSULTAS SQL
OUTROS EXEMPLOS:
select idPedido, dataPedido
from Pedidos
where id = Pedido
CLÁUSULA DISTINCT
O SQL permite que resultados duplicados sejam exibidosem consultas, para isso é utilizado a cláusula distinct, naconsulta abaixo é mostrado o nome dos funcionários semrepetição:
select distinct nome
from funcionario;
26/05/2016
5
CLÁUSULA *
O asterisco (*) faz a seleção de todos os atributos deuma determinada tabela, como na consulta abaixo:
select *
from funcionario;
CLÁUSULA WHERE
A cláusula where especifica as condições que oresultado precisa satisfazer. Na consulta abaixo émostrado o nome e o salário dos funcionários que recebemmais de 2000.
select nome, salario
from funcionario
where salario<2000;
26/05/2016
6
CLÁUSULA WHERE
É possível utilizar também operadores lógicos (and, ore not) nas cláusulas where. No exemplo temos umaconsulta onde os salários sejam maiores que 200 e a idademenor que 30.
select nome, salario
from funcionario
where salario<2000 AND idade<30;
OPERAÇÕES COM STRINGS
26/05/2016
7
OPERADOR LIKE
O operador like permite que strings sejam utilizadospor combinação na hora de consultas. No exemplo abaixoé realizado uma consulta com nomes de funcionários queiniciam por Pedro.
select nome
from funcionario
where nome like‘Pedro%’
OPERADOR LIKE
Para que seja pesquisado o nome de todos osfuncionários que contém Pedro no nome, fazemos:
select nome
from funcionario
where nome like‘%Pedro%’
26/05/2016
8
OPERADOR LIKE
No exemplo é retornado todos os endereços da tabelaciente que possuem o termo asi.
select nome
from cliente
where endereco like‘%asi%’
OPERADORES LIKE
LIKE ‘A%’ -> Palavras que iniciam com A;
LIKE ‘%A’ -> Palavras que terminam com A;
LIKE ‘%A%’ -> Palavras que tenham a letra em umaposição qualquer;
LIKE ‘A_’ -> String de dois caracteres que tenham aprimeira letra como sendo A;
LIKE ‘_A’ -> String de dois caracteres que tenham aúltima letra sendo A;
26/05/2016
9
OPERADORES LIKE
LIKE ‘_A_’ -> Strings com três letras, que tenham asegunda letra como sendo A;
LIKE ‘%A_’ -> Todas palavras que tenham o caractere Acomo sendo a segunda letra, independente do primeiroe do ultimo caractere;
LIKE ‘_A%’ -> Palavras que tenham a letra A na segundaposição e o primeiro caractere podendo serrepresentando por qualquer outro.
OPERADOR BETWEEN
O operador between é usado para indicar umdeterminado intervalo de valores a ser utilizado em umaconsulta. No exemplo é consultado valores cujo código é 8e 9.
select *
from funcionarios
where codigo between 8 and 9;
26/05/2016
10
OPERADOR AS
O operador as é utilizado para renomear tabelas eatributos. No exemplo abaixo é listado o nome e o códigodos pedidos de cada cliente, renomeando a colunapedCodgo para codPedido.
select nome, pedCodigo as codPedido
from Cliente, Pedido
where codigo = pedCodigo;
ORDENANDO CONSULTAS
26/05/2016
11
ORDER BY
É possível ordenar os resultados em ordem alfabética com ocomando order by, no exemplo é listado em ordem alfabéticao nome dos funcionários do setor financeiro.
select distinct funcionario.nome
from funcionario, departamento
where funcionario.codDepto = departamento.codDeptoAND departamento.nome = ‘financeiro’
order by funcionario.nome;
ORDER BY - PARÂMETROS
A cláusula order by aceita os parâmetros asc ou desc, querepresentam respectivamente ascendente e descendente.
select distinct a.nome_cliente, a.end_cliente
from clientes
order by a.nome_clientes asc;
26/05/2016
12
GROUP BY
É usado para separar os registros selecionados em gruposespecíficos. No exemplo abaixo os registros são agrupadospelos campo CPF.
select cpf, avg(salario)
from funcionarios
group by cpf;
HAVING
O comando having é usado para expressar a condição quedeve satisfazer cada grupo em uma consulta.
select cidade, sum(salario)
from funcionarios
group by cpf
having sum(salario) > 1500;
26/05/2016
13
FUNÇÕES DE AGREGAÇÃO
FUNÇÕES DE AGREGAÇÃO
As funções de agregação operam sobre uma coluna databela e retornam um valor a partir de:
AVG (média)
MIN (mínimo)
MAX (máximo)
SUM (soma)
COUNT (contagem)
26/05/2016
14
FUNÇÕES DE AGREGAÇÃO
EXEMPLO:
Encontrar o número de registros da tabela Cliente
select count(*)
from cliente
FUNÇÕES DE AGREGAÇÃO
EXEMPLO:
Extrai a média aritmética de um grupo
select avg(salario)
from cliente
26/05/2016
15
FUNÇÕES DE AGREGAÇÃO
EXEMPLO:
Encontrar a soma dos salários dos funcionários:
select sum(salario)
from funcionari
EXERCÍCIOS
26/05/2016
16
EXERCÍCIO
EXERCÍCIO
01 - A partir da estrutura de tabelas já criadas anteriormente,faça inserções de:
05 clientes na tabela Cliente;
07 produtos na tabela Produtos;
03 categorias na tabela Categorias;
02 transportadoras;
03 pedidos com pelos menos dois itens cada;
02 vendedores.
26/05/2016
17
EXERCÍCIO
02 - A partir das inserções, quais os comandos SQL para:
Listar todos os produtos cadastrados;
Listar o id, nome, e endereços dos clientes;
Listar todos os produtos cadastrados;
Quais os clientes cadastrados que tem o nomecomeçados por A;
Quais os clientes que possuem no nome a palavra ‘erto’
EXERCÍCIOS
03 – Construa comandos SQL para:
Selecionar todos os funcionários em uma tabela comsalário maiores que R$ 1.000,00 que estejam nodepartamento de vendas;
Selecionar todos os funcionários que pertence aosdepartamentos 1 e 3;
Retornar a soma dos salários dos funcionários cujodepartamento são de 1 a 4 agrupando pelodepartamento com a soma dos salários maiores que R$1.300,00.