08 sql - parte 02

17
SQL Renata Viegas [email protected]

Upload: sharllesguedes

Post on 11-Aug-2015

101 views

Category:

Education


4 download

TRANSCRIPT

Page 1: 08   sql - parte 02

SQL

Renata Viegas

[email protected]

Page 2: 08   sql - parte 02

Manipulando Dados

CONSULTA SELECT

INCLUSÃO INSERT

ALTERAÇÃO UPDATE

EXCLUSÃO DELETE

Page 3: 08   sql - parte 02

Consultas SQL

• Realização de consultas em tabelas

SELECT atributo1, atributo2, ...

FROM tabela 1, tabela 2, ...

WHERE condição

Page 4: 08   sql - parte 02

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.

Page 5: 08   sql - parte 02

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

Page 6: 08   sql - parte 02

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

Page 7: 08   sql - parte 02

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

Page 8: 08   sql - parte 02

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

Page 9: 08   sql - parte 02

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

Page 10: 08   sql - parte 02

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

Page 11: 08   sql - parte 02

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

Page 12: 08   sql - parte 02

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

Page 13: 08   sql - parte 02

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

Page 14: 08   sql - parte 02

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’

Page 15: 08   sql - parte 02

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)

Page 16: 08   sql - parte 02

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’

Page 17: 08   sql - parte 02

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