08 sql - parte 02

Post on 11-Aug-2015

101 views 4 download

Transcript of 08 sql - parte 02

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%'