19
2008.1 SQL - Consultas

SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

SQL - Consultas

Page 2: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Manipulando Dados

CONSULTA SELECT

INCLUSÃO INSERT

ALTERAÇÃO UPDATE

EXCLUSÃO DELETE

Page 3: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Consultas SQL

• Realização de consultas em tabelas

SELECT atributo1, atributo2, ...

FROM tabela 1, tabela 2, ...

WHERE condição

Page 4: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Consultas SQL

Select Especifica as colunas e expressões exibidas noresultado da consulta.

From Especifica as tabelas que contêm os dados exibidos nosresultado da consulta.

Where Especifica as condições usadas para filtrar registros noresultado da consulta.

Order by

Classifica os resultados da consulta com base nosdados de uma ou mais colunas.

Page 5: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Consultas SQL

• Exibir todos os dados de todos os clientes.

SELECT * FROM cliente

• Exibir todos os dados de todos os funcionários.

SELECT * FROM funcionário

• Exibir todos os dados de todos os produtos.

SELECT * FROM produto

• O * simboliza “mostrar todos os campos databela”

Page 6: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Selecionando Colunas• Exibir código, nome e telefone de todos os clientes.

SELECT código, nome, fone FROM cliente

• Exibir código, nome, estado civil e data de nascimento detodos os funcionários.

SELECT código, nome, estcivil, datanasc

FROM funcionário

• Exibir código, nome, preço de custo e preço de venda detodos os produtos.

SELECT código, nome, custo, venda

FROM produto

Page 7: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Cláusula Where

• Os operadores <, <=, >, >=, =, <> (ou !=)podem ser usados para testar valores de atributos

SELECT * FROM clientes WHERE salario > 100

SELECT * FROM fitas WHERE titulo = ‘Matrix’

• Os operadores lógicos AND, NOT, OR podem serusados para combinar condições

SELECT * FROM clientes

WHERE salario > 100 AND sexo = ‘F’

Page 8: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Cláusula Where• BETWEEN – usado para verificar se o valor de um

atributo está em um intervalo de valores

dados dos clientes com salário entre 500 e 1500

SELECT * FROM clientes

WHERE salario BETWEEN 500 AND 1500

• IN – usado para verificar se o valor de um atributo estáem um conjunto de valores

dados dos clientes com salário igual a 500 OU1500

SELECT * FROM clientes

WHERE salario IN (500,1500)

Page 9: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Exibir colunas calculadas• Sintaxe:

SELECT <lista de colunas,expressão> FROM<tabela>

• Exibir código, quantidade em estoque, preço de venda evalor total (quantidade X preço de venda) para cadaproduto.

SELECT código, quantest, venda,quantest*venda as valortotalFROM produto

• Exibir código, nome, salário e o salário com 32% deaumento para todos os funcionários.

SELECT código, nome, salário,salário*1.32 as novosalario

FROM funcionário

Page 10: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Exibir colunas calculadas

• SUM – função que soma valores de umatributo

SELECT SUM(salario) FROM clientes

• AVG – função que calcula a média dosvalores de um atributo

SELECT AVG(salario) FROM clientes

• MAX – função que exibe o maior valor de umatributo

SELECT MAX(salario) FROM clientes

Page 11: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Exibir colunas calculadas

• MIN – função que exibe o menor valor de um atributo

SELECT MIN(salario) FROM clientes

• AS – usado para dar nome a uma coluna resultante do

uso de uma função agregada (COUNT, SUM, AVG, MAX,

MIN, etc)

SELECT AVG(salario) AS media_salarial

FROM clientes

Page 12: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Exibir colunas calculadas

• Exibir a soma de todos os salários da empresa.

SELECT SUM(salário)

FROM funcionário

• Exibir a média dos salários da empresa.

SELECT AVG(salário)

FROM funcionário

• Exibir o preço médio de venda dos produtos do tipo1

SELECT AVG(venda)

FROM produto WHERE tipo=1

Page 13: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Exibir colunas calculadas• Exibir o preço do produto mais caro vendido na empresa.

SELECT MAX(venda) Preço FROM produto

• Exibir a data de nascimento do homem mais novo daempresa.

SELECT MIN(datanasc) FROM funcionárioWHERE sexo=‘M’

• Exibir o maior salário pago a uma funcionária.

SELECT MAX(salário) FROM funcionárioWHERE sexo=‘F’

• Exibir o menor preço de custo dos produtos do tipo 1.

SELECT MIN(custo) FROM produto WHERE tipo =1

Page 14: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Contando os Registros

• Exibir quantos clientes têm cadastro na empresa.

SELECT COUNT(*) FROM cliente

• Exibir quantos funcionário têm e_mail.

SELECT COUNT(e_mail) FROM funcionário

• Exibir a quantas cidades a empresa atende.

SELECT COUNT(DISTINCT cidade)

FROM cliente

• Exibir quantos vendedores já atenderam pedido.

SELECT COUNT(DISTINCT vendedor)

FROM pedido

Page 15: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Operando strings

• Exibir código e nome de todos os funcionários quetenham o nome começando por “M”

SELECT código, nome FROM funcionárioWHERE nome LIKE ‘M%’

• Exibir código e nome de todos os funcionários quetenham o nome terminando por “Silva”

SELECT código, nome FROM funcionárioWHERE nome LIKE ‘%Silva’

Page 16: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Operando strings

• Exibir código e nome de todos os funcionários quetenham “Costa” em qualquer parte do nome.

SELECT código, nome FROM funcionárioWHERE nome LIKE ‘%Costa%’

• Exibir código e nome de todos os funcionários quetenham o nome começando por “Mar” seguido deum caractere qualquer e terminando por “a”

SELECT código, nome FROM funcionário

WHERE nome LIKE 'Mar_a%'

Page 17: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Operando strings

• Algumas Combinações de Like:

• Like ‘a%’ = Tudo que inicie com a

• Like ‘%a’=Tudo que termine com a

• Like ‘%a%’=Tudo que possua a

• Like ‘a_’=String com dois caracteres, o 1º com a

• Like ‘_a’=String com dois caracteres com a no final

• Like ‘_a_’=String com 3 caract, com a no meio

• Like ‘%a_’=Todos com a na penúltima posição

• Like ‘_a%’=Todos com a na segunda posição**Select * from livros where nome like ‘%\_%’ ESCAPE ‘\’

Mostra todos os livros com nome contendo um _ , sendo que \ passa ser um escape parasubstituir o sublinha usado para indicar qualquer caractere avisando o banco com ESCAPE’\’

Page 18: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Ordenando os resultados• Sintaxe:

SELECT <lista de colunas> FROM <tabela>ORDER BY <coluna> [ASC] [DESC]

• Exibir código, nome e telefone de todos os clientes,ordenados pelo nome do cliente em ordem ascendente.

SELECT código, nome, fone FROM clienteORDER BY nome

• Exibir código, nome, estado civil e data de nascimento detodos os funcionários, ordenados pela data de nascimentoem ordem descendente.

SELECT código, nome, estcivil, datanascFROM funcionárioORDER BY datanasc DESC

Page 19: SQL - Consultas - MCD - SQL...2008.1 Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos

2008.1

Ordenando os resultados

• Exibir código, nome e tipo de todos osprodutos existentes na empresa, ordenadospelo tipo em ordem ascendente e pelonome do produto em ordem descendente.

SELECT código, nome, tipo

FROM produto

ORDER BY nome DESC