BANCO DE DADOS - fabianotaguchi.files.wordpress.com · EXERCÍCIOS 03 –Construa comandos SQL...

Preview:

Citation preview

26/05/2016

1

BANCO DE DADOS

Prof. Fabiano Taguchihttp://fabianotaguchi.wordpress.com

fabianotaguchi@hotmail.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.