Академический Документы
Профессиональный Документы
Культура Документы
renatafviegas@gmail.com
Renata Viegas
2008.2
Manipulando expresses
Funes matemticas, etc
Condies de Pesquisa Funes de Agregao e Agrupamento Juno de tabelas Subconsultas e tabelas temporrias
2008.2
Linguagem no procedural que requer do usurio qual dado necessrio sem especificar como obt-lo Poupa tempo de programao, mas exige treino para se dominar Suporte cliente-servidor Controle de Acesso
2008.2
Integridade dos Dados Independncia de fabricante: est incorporada em quase todos os SGBDs em seu padro ANSI, com extenses proprietrias de cada fabricante
2008.2
Sintaxe Bsica
2008.2
Clusulas Adicionais
INTO: especifica uma nova tabela que conter o resultado da consulta ORDER BY: classifica o resultado da consulta GROUP BY: agrupa as linhas das consultas com base nos valores de uma ou mais colunas HAVING: especifica as condies usadas para filtrar agrupamento de dados no resultado da consulta. S deve ser usado com o GROUP BY
2008.2
Consultas Simples
Exemplo 1: exibir todos os dados de todos os clientes SELECT * FROM cliente Exemplo 2: exibir cdigo, nome e telefone de todos os clientes SELECT codigo, nome, fone FROM cliente
2008.2
Consultas Simples
Exemplo 3: exibir cdigo, nome e telefone dos 20 primeiros clientes cadastrados na empresa
SELECT TOP 20 codigo,nome,fone FROM cliente
2008.2
Consultas Simples
Exemplo 4: exibir cdigo, nome e preo de venda dos 10% primeiros produtos cadastrados SELECT TOP 10 PERCENT codigo, nome,preco FROM produto
2008.2
Consultas Simples
Exemplo 5: exibir cdigo, nome, telefone e uma coluna contendo classificado para todos os clientes
SELECT codigo,nome,fone, classificado FROM cliente
2008.2
Consultas Simples
Exemplo 6: exibir cdigo, nome e uma coluna contendo classificado com o cabealho Classificao para todos os clientes
2008.2
Consultas Simples
Exemplo 7: exibir nmero, descrio e preo de um produto, renomeando a coluna nmero para cdigo
2008.2
Manipulando Expresses Um comando SELECT tambm pode retornar como coluna de resultado um valor calculado. Exemplo 8: Exibir cdigo, quantidade em estoque, preo da venda e valor total (quantidade * preo da venda) para cada produto
SELECT codigo, quantEst AS Quantidade, preco, quantEst*preco Valor Total FROM produto
2008.2
Funes Matemticas
Alm de operadores aritmticos, podemos usar funes matemticas (consulte a referncia do SGBD)
ROUND (valor, n): arredonda o valor para n casas decimais POWER (valor, p): retorna o valor elevado potncia p
2008.2
Funes Matemticas
Exemplo 9: exiba cdigo, preo e valor arredondado do preo de cada produto para 1 casa decimal
SELECT codigo,preco, ROUND (preco,1) FROM produto
2008.2
Funes Matemticas
2008.2
Funes de Caracteres
2008.2
Funes de Caracteres
Exemplo 11: exiba os 10 primeiros caracteres do ttulo de um livro em minsculo e seu preo da tabela livros
SELECT LOWER(SUBSTRING(titulo,1, 10)) Titulo, preco FROM livros
2008.2
Funes de Data e Hora Aplicao: em colunas do tipo datetime, que armazenam data e hora
DatePart(parte,data): retorna a parte especificada da data
Argumento Parte
yy
qq mm dd
O ano
o trimestre o ms dia do ms
hh
mi ss ms
horas
minutos segundos milisegundos
2008.2
2008.2
2008.2
2008.2
Funes de Converso
Com valores datetime, convert pode ter um parmetro a mais que especifica o formato da data a ser usado
Padro brasileiro: 3 (dd/mm/aa) e 103 (dd/mm/aaaa) Padro americano: 1 (mm/dd/aa) e 101 (mm/dd/aaaa)
2008.2
Funes de Converso
2008.2
EXERCCIOS Quer enriquecer suas expresses SQL? Pesquise as seguintes funes no SQL Server
Funes de Caracteres
Upper(), Ltrim(), Rtrim(), Space(), Str()
SELECT
2008.2
Exemplo 16: Exibir cdigo de todos os clientes que j fizeram pedido na empresa
2008.2
Ordenando Resultados
Sintaxe: SELECT <colunas> FROM <tabelas> ORDER BY <coluna> [ASC] [DESC] Exemplo 17: Exibir cdigo, nome e telefone de todos os clientes, ordenado pelo nome do cliente de forma ascendente
2008.2
Ordenando Resultados
Exemplo 18: Exibir nome, cidade e sexo de todos os clientes ordenado por cidade em ordem ascendente e sexo em ordem descendente
SELECT nome, cidade, sexo FROM clientes ORDER BY cidade, sexo DESC
2008.2
Filtrando os Dados
Sintaxe: SELECT <colunas> FROM <tabelas> WHERE <coluna operador expresso> Exemplo 19: Exibir todos os dados dos funcionrios que nasceram a partir de 1950
SELECT *, Convert(varchar, dtNas, 103) FROM funcionarios WHERE dtNasc > 31/12/1949
Qual outra maneira de fazer esta consulta usando funes de data na clusula Where ??
2008.2
Exemplo 20: Exibir todos os dados de produtos cujo estoque esteja entre 10 e 30 unidades, ordenados pelo nome do produto
2008.2
Filtrando Dados Usando Intervalo Exemplo 21: Exibir todos os dados de funcionrios que nasceram na dcada de 60, ordenados pela data de nascimento em ordem descendente, e pelo nome do funcionrio em ordem ascendente.
SELECT * FROM funcionarios WHERE dataNasc BETWEEN 01/01/1960 AND 31/12/1969 ORDER BY dataNasc DESC,nome
2008.2
Filtrando Dados Usando Listas Sintaxe: SELECT <colunas> FROM <tabelas> WHERE <coluna IN lista> Exemplo 22: Exibir todos os dados dos funcionrios que residam em Manara ou Bessa, ordenados pelo nome
2008.2
Exemplo 23: Exibir todos os produtos que no sejam do tipo 2 ou 4, ordenados pelo tipo em ordem descendente SELECT * FROM produtos WHERE tipo NOT IN (2,4) ORDER BY tipo DESC
2008.2
Sintaxe: SELECT <colunas> FROM <tabelas> WHERE <coluna> IS [NOT] NULL Significado
Valores no formatados ou desconhecidos
2008.2
2008.2
Voc acha que as linhas com valores NULL sero retornadas de acordo com o SELECT abaixo ??
2008.2
Sintaxe: SELECT <colunas> FROM <tabelas> WHERE <coluna> LIKE <string> Significado:
Casamento de Padro: uma string contendo caracteres que podem ser combinados com parte de outra string % (porcentagem): seqncia de caracteres _ (sublinhado): Combina com um nico caractere
2008.2
2008.2
Funes Agregadas COUNT(): conta o nmero de valores de uma coluna SUM(): soma os valores de uma coluna de dados numricos AVG(): calcula a mdia de uma coluna de dados numricos MAX(): determina o maior valor de uma coluna MIN() : determina o menor valor de uma coluna
2008.2
Funes Agregadas
Obs.: A clusula DISTINCT pode ser usada como parte do argumento para eliminar linhas repetidas antes da aplicao da funo Exemplo 26: Exibir a quantidade de produtos vendidos com preo maior que R$ 10,00
2008.2
Para Pesquisar!! Clusula COMPUTE Sintaxe: SELECT <colunas> FROM <tabelas> ORDER BY <coluna> COMPUTE <lista de funes de agregao> BY <lista de colunas> Para que serve?
Gerar totalizadores que aparecem como colunas adicionais resumo no final do conjunto resultado