08 sql - parte 02
Post on 11-Aug-2015
104 Views
Preview:
TRANSCRIPT
SQL
Renata Viegas
renata@dce.ufpb.br
Manipulando Dados
CONSULTA SELECT
INCLUSÃO INSERT
ALTERAÇÃO UPDATE
EXCLUSÃO DELETE
Consultas SQL
• Realização de consultas em tabelas
SELECT atributo1, atributo2, ...
FROM tabela 1, tabela 2, ...
WHERE condição
Consultas SQL
Select Especifica as colunas e expressões exibidas no resultado da consulta.
From Especifica as tabelas que contêm os dados exibidos nos resultado da consulta.
Where Especifica as condições usadas para filtrar registros no resultado da consulta.
Order by
Classifica os resultados da consulta com base nos dados de uma ou mais colunas.
Group By
Agrupa as linhas da consulta com base nos valores de uma das colunas.
Having Especifica as condições usadas para filtrar agrupamentos de dados no resultado da consulta. Só deve ser usado com GROUP BY.
Consultas SQL
• Exibir todos os dados de todos os Hóspedes.
SELECT * FROM hospedes
• Exibir todos os dados de todos os Quartos.
SELECT * FROM quartos
• Exibir todos os dados de todos os serviços.
SELECT * FROM servicos
Selecionando Colunas
• Exibir cpf, nome e sexo de todos os hospedes.
SELECT cpf, nome, sexo FROM hospedes
• Exibir descrição e preço de todos os serviços.
SELECT descricao, preco
FROM servicos
Eliminando Duplicação na Seleção
• Sintaxe: SELECT DISTINCT <lista de colunas> FROM <tabela>
• Exibir o cpf de todos os hospedes que já solicitaram serviços. SELECT DISTINCT hospede FROM solicitacoes
• Exibir todos os quartos que já tiveram estadias. SELECT DISTINCT quarto FROM estadias
Exibir colunas calculadas
• Sintaxe: SELECT <lista de colunas,expressão> FROM
<tabela>
• Exibir código, descrição, preço e o preço com 32% de aumento para todos os serviços.
SELECT codServico , descricao, preco, preco*1.32 ‘Novo Preco’
FROM servicos
Exibir colunas calculadas
• SUM – função que soma valores de um atributo
SELECT SUM(preco) FROM servicos
• AVG – função que calcula a média dos valores de um atributo
SELECT AVG(preco) FROM servicos
• MAX – função que exibe o maior valor de um atributo
SELECT MAX(preco) FROM servicos
Exibir colunas calculadas
• MIN – função que exibe o menor valor de um atributo
SELECT MIN(preco) FROM servicos
• AS – usado para dar nome a uma coluna resultante do
uso de uma função agregada (COUNT, SUM, AVG, MAX,
MIN, etc)
SELECT AVG(preco) AS media_preco
FROM servicos
Contando os Registros
• Exibir quantos hospedes têm cadastro.
SELECT COUNT(*) FROM hospedes
• Exibir quantos hospedes informaram a data de nascimento
SELECT COUNT(dataNascimento)
FROM hospedes
• Exibir quantos serviços já foram solicitados.
SELECT COUNT(DISTINCT servico)
FROM solicitacoes
Cláusula From
• Selecionar dados de uma única tabela
SELECT nome FROM hospedes
• Para cruzar dados que estão em tabelas diferentes, é preciso listar as tabelas na cláusula FROM e usar o mesmo princípio da operação produto cartesiano da álgebra relacional para selecionar apenas as linhas com códigos correspondentes
SELECT nome,
FROM hospedes, estadias
WHERE hospedes.cpf = estadias.hospede
Cláusula From
• É possível definir apelidos para as tabelas e usá-los em vez dos nomes das tabelas
SELECT h.nome,
FROM hospedes h, estadias e
WHERE h.cpf = e.hospede
Cláusula Where
• Os operadores <, <=, >, >=, =, <> podem ser usados para testar valores de atributos SELECT * FROM servicos WHERE preco > 100
SELECT * FROM quartos WHERE tipo= 'Standard’
• Os operadores lógicos AND, NOT, OR podem ser usados para combinar condições
SELECT * FROM hospedes
WHERE dataNascimento > ‘1975-01-01’ AND sexo = ‘F’
Cláusula Where
• BETWEEN – usado para verificar se o valor de um atributo está em um intervalo de valores
dados dos quartos com valor de diária entre 300 e 500
SELECT * FROM quartos
WHERE valorDiaria BETWEEN 300 AND 500
• IN – usado para verificar se o valor de um atributo está em um conjunto de valores
dados dos quartos com valor de diária igual a 300 OU 500
SELECT * FROM quartos
WHERE valorDiaria IN (500,1500)
Operando strings
• Exibir cpf e nome de todos os hospedes que tenham o nome começando por “M”
SELECT cpf, nome FROM hospedes WHERE nome LIKE ‘M%’
• Exibir cpf e nome de todos os hospedes que tenham o nome terminando por “Santos”
SELECT cpf, nome FROM hospedes WHERE nome LIKE ‘%Santos’
Cláusula Where
• Exibir cpf e nome de todos os hospedes que tenham “Santos” em qualquer parte do nome.
SELECT cpf, nome FROM hospedes WHERE nome LIKE ‘%Santos%’
• Exibir cpf e nome de todos os hospedes que tenham o nome começando por “Mar” seguido de um caractere qualquer e terminando por “a”
SELECT cpf, nome FROM hospedes
WHERE nome LIKE 'Mar_a%'
top related