Buscar

8-funcoes-em-SQL-II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Funções em SQL II
 
SST
Costa, Lidiane Farias 
Funções em SQL II / Lidiane Farias Costa 
Ano: 2021
nº de p. : 18
Copyright © 2019. Delinea Tecnologia Educacional. Todos os direitos reservados.
Funções em SQL II
3
Apresentação
Vamos estudar, hoje, sobre as Funções em SQL. Uma função pode ser compreendida 
como um conjunto de comandos com um único nome. Os SGBDs possuem algumas 
funções nativas, chamadas de funções internas, mas também podem ter funções em 
SQL, o que possibilita ao usuário criar as próprias funções de acordo com as suas 
necessidades.
4
1. Funções de strings 
As funções internas são recursos criados para facilitar a vida do programador com o 
agrupamento de diversas ações em um único comando.
Podem ser classificadas de acordo com os objetivos. Vejamos o quadro a seguir.
Tipos de funções internas
FUNÇÃO INTERNA DESCRIÇÃO
Funções de agregação Agrupam diversos valores, retornando apenas um valor de acordo com as condições preestabelecidas.
Funções escalares Recebem um conjunto de valores e, após execução, retornam somente um valor.
Fonte: Elaborado pelo autor (2021).
#PraCegoVer: Quadro que representa dados da função interna de agregação e 
escalares e a descrição dessas funções.
2.Funções de agregação, ou de 
conjunto
A linguagem SQL implementa diversas funções de agregação, ou de conjunto. Estas 
são utilizadas para agregar conjuntos de valores ou resumir informações em único 
resultado, facilitando a compreensão da informação processada.
No quadro a seguir, podemos conhecer as funções de agregação disponíveis na 
linguagem SQL.
Tipos de funções de agregação, ou de conjunto
FUNÇÃO DE AGREGAÇÃO, 
OU DE CONJUNTO DESCRIÇÃO
SUM Agrega os valores numéricos em um único valor, de acordo com as colunas especificadas.
MIN Verifica os valores da coluna informada e retorna o menor valor encontrado.
MAX Verifica os valores da coluna informada e retorna o maior valor encontrado.
5
COUNT Conta o número de registros retornados de acordo com as condições definidas.
AVG
Agrega os valores numéricos em um único valor, calculando 
a média de todos os valores encontrados, de acordo com as 
colunas especificadas.
Fonte: Elaborado pelo autor (2018).
#PraCegoVer: Quadro com funções de agregação bem como a descrição de 
cada função.
Agora que conhecemos as funções de agregação disponíveis, podemos avaliar 
e aprender quando e como utilizá-las. Veremos que cada uma possui sintaxe e 
condições adequadas para ser adotada.
SUM
A função SUM() realiza e retorna o somatório de valores de uma determinada coluna. 
Deve ser utilizada somente com atributos numéricos, como float, int, number etc.
Por exemplo, se quisermos somar o total de vendas de uma loja, podemos usar: 
SELECT SUM(VALORTOTAL) FROM VENDAS
Atenção
O valor obtido ainda pode ser adotado na própria query para realização de outras 
operações. Como exemplo, o gestor da loja pode saber que apenas 40% do valor 
total das compras representam o lucro; o restante é referente às despesas de 
manutenção. Portanto, é possível criar uma consulta que retorne o lucro final da loja 
da seguinte maneira:
SELECT SUM(VALORTOTAL) * 0.4 FROM VENDAS
Atenção
6
MIN
A função MIN() seleciona o menor valor de uma coluna. Deve ser utilizada em 
colunas que apresentam apenas valores numéricos ou data.
Por exemplo, se quisermos selecionar a data da última compra realizada no sistema, 
podemos usar a seguinte query:
SELECT MIN(DATA) FROM VENDAS
Atenção
MAX
O comando MAX() retorna o valor máximo da coluna em que foi utilizado. Pode ser 
usado em colunas que contenham valores numéricos ou data.
Como exemplo, podemos selecionar o maior valor total de venda realizada pela loja:
SELECT MAX(VALORTOTAL) FROM LOJA
Atenção
7
Funções de agregação de valores numéricos
Fonte: Plataforma Deduca (2021).
#PraCegoVer: Imagem que representa as mãos de uma pessoa sinalizando 
sobre gráficos em um tablet em preto e branco.
COUNT
Diferentemente das demais funções citadas, o comando COUNT() não realiza o 
agrupamento dos valores da coluna em que foi utilizado. Esse comando apenas 
conta o número de registros retornados pela sentença que está sendo executada.
Para contar todos os registros, ou seja, o número de linhas retornado, basta utilizar 
o comando COUNT(*), com o asterisco dentro dos parênteses. Caso o objetivo seja 
contar todas as ocorrências de uma determinada coluna, só é preciso informar a 
coluna desejada entre parênteses.
Por exemplo, se precisarmos contar o número de vendas realizadas pela loja, 
devemos utilizar o seguinte comando:
SELECT COUNT(*) FROM VENDAS
Atenção
Podemos verificar a quantidade das vendas que foram realizadas para entrega 
domiciliar com base na contagem de vendas em que foram informados endereços 
para entrega. Nesse caso, a sentença teria a seguinte forma:
8
SELECT COUNT(ENDERECOENTREGA) FROM VENDAS
Atenção
Também podemos obter os mesmos resultados escrevendo a sentença de outra 
maneira:
SELECT COUNT(*) FROM VENDAS WHERE ENDERECO ENTREGA 
IS NOT NULL
Atenção
O comando DISTINCT pode ser adotado juntamente com a função COUNT(), 
para que sejam somadas apenas as ocorrências de itens diferentes na seleção 
especificada.
Ainda segundo o nosso exemplo da loja, para contar a quantidade de endereços 
diferentes para os quais foram realizadas vendas para entregas em domicílio, 
usamos a sentença:
SELECT COUNT(DISTINCT ENDERECOENTREGA) FROM VENDAS
Atenção
AVG
A função AVG() só pode ser aplicada a colunas de valores numéricos, pois a sua 
funcionalidade consiste em calcular o valor da média aritmética de todos os 
registros encontrados para a coluna informada.
Como exemplo, é possível calcular o valor médio do valor total das vendas realizadas 
pela loja com a query:
9
SELECT AVG(VALORTOTAL) FROM VENDAS
Atenção
GROUP BY
Juntamente com as funções de agregação, é comum que seja utilizado o comando 
GROUP BY para agrupar os valores encontrados por determinada condição ou 
coluna.
No nosso exemplo da loja, para selecionar o valor médio total de compras realizados 
para cada endereço de entrega informado, basta usarmos:
SELECT AVG(VALORTOTAL) FROM VENDAS GROUP BY ENDERE- 
COENTREGA
Atenção
As funções de agregação são fundamentais para realizar junções e cálculos 
diretamente na SQL. Isso evita que o programador precise inserir funções no código 
fonte para obter as informações efetuadas pelas funções e o resultado retornado.
3. Funções escalares
São compreendidas como funções escalares aquelas que recebem um ou mais 
valores de entrada, mas seu retorno é sempre um valor.
As funções escalares podem ser classificadas de acordo com as categorias 
informadas no quadro a seguir.
10
Tipos de funções escalares
FUNÇÃO ESCALAR DESCRIÇÃO
Funções de calendário Executam operações sobre as colunas que guardam datas.
Funções matemáticas Fazem o cálculo de expressões utilizando valores numéricos.
Funções de strings Manipulam valores do tipo string, ou seja, cadeias de caracteres.
Funções de conversão Convertem valores dos diferentes tipos de dados.
Funções de segurança Manipulam controles e parâmetros de segurança da instalação.
Funções de ambiente Manipulam controles e parâmetros do sistema operacional e do SGBD.
Funções de metadados Exploram o projeto do banco de dados desde a estrutura dos esque-mas às configurações dos atributos definidos nas tabelas.
Fonte: Elaborado pelo autor (2018).
#PraCegoVer: Quadro com funções de agregação bem como a descrição de 
cada função.
Agora que estudamos a classificação das funções escalares, podemos identificar os 
comandos que fazem parte das principais categorias citadas.
Funções de calendário
A linguagem SQL tem algumas funções para facilitar o processo de manipulação de 
valores de datas. Cada SGBD implementa, em sua linguagem própria, outras funções 
adotadas para aprimorar aquelas já oferecidas pela SQL.
Primeiramente, precisamos conhecer os tipos de dados relativos a valores de datas 
que são reconhecidos pela linguagem SQL. Vejamoso quadro a seguir.
Dados relativos à data reconhecidos pela SQL
TIPO DE DADO DESCRIÇÃO
DATE Trabalha apenas com data.
TIME Trabalha somente com hora.
TIMESTAMP Comporta data e hora.
INTERVAL Trabalha com intervalo entre TIME e TIMESTAMP.
Fonte: Elaborado pelo autor (2021).
11
CURRENT
Para facilitar a manipulação das datas e a definição do valor de data e hora atual do 
sistema, para uso na criação de query, a linguagem SQL implementa os seguintes 
comandos:
CURRENT_DATE(): retorna a data atual do sistema. 
SELECT CURRENT_DATE()
CURRENT_TIME: retorna o horário atual do sistema.
SELECT CURRENT_TIME()
CURRENT_TIMESTAMP: retorna o valor de data e hora atuais do 
sistema.
SELECT CURRENT_TEMISTAMP
Atenção
Manipulação de data
Fonte: Plataforma Deduca (2021).
#PraCegoVer: Imagem que representa um calendário.
Se quisermos, por exemplo, filtrar as vendas realizadas na data de hoje, podemos 
fazê-lo por meio da comparação entre a data atual do sistema e a data da venda:
12
SELECT * FROM VENDAS WHERE DATAVENDA = CURRENT_DATE
Atenção
É possível realizar operações aritméticas com as datas dentro das próprias sentenças.
Basta fazer uma soma de dias à data de venda retornada pela consulta:
SELECT DATAVENDA + 10 WHERE DATAVENDA = CURRENT_DATE
Atenção
Se for necessário calcular os dias restantes para pagamento do valor de uma 
compra feita pela cliente chamada Maria, por exemplo, podemos usar:
SELECT DATAPRAZO - CURRENT_DATA FROM VENDAS WHERE 
COMPRADOR = ‘MARIA’
Atenção
BETWEEN
A função BETWEEN define uma condição de intervalo entre datas. Com ela, é 
possível selecionar registros em um determinado espaço de tempo.
Como exemplo, podemos filtrar as vendas realizadas desde o dia primeiro de janeiro 
até a data de hoje:
13
SELECT *FROM VENDAS WHERE DATAVENDA BETWEEN ‘01-01- 
2018’ AND CURRENT_DATE
Atenção
EXTRACT
A função EXTRACT é aplicada a um dado relacionado ao tipo DATA, para extração de 
informações nele contidas.
Por exemplo, podemos extrair o ano com:
SELECT EXTRACT(ANO FROM DATAVENDA) FROM VENDAS
Atenção
O mês pode ser extraído da seguinte maneira:
SELECT EXTRACT(MONTH FROM DATAVENDA) FROM VENDAS
Atenção
E o dia:
SELECT EXTRACT(DAY FROM DATAVENDA) FROM VENDAS
Atenção
14
Ainda podemos obter as informações de hora, minuto e segundo apenas usando os 
identificadores HOUR, MINUTE e SECOND.
GETDATE
A função GETDATE() retorna o valor de data e hora referentes ao sistema operacional 
em que o SGBD se encontra.
Para essa função, não são passados parâmetros. Vejamos como utilizá-la:
SELECT GETDADE()
Atenção
Funções matemáticas
As funções matemáticas realizam operações matemáticas sobre as colunas que 
estão indicadas. Algumas delas já foram citadas e explicadas em tópicos anteriores, 
como as funções agregadas: SUM, COUNT, AVG, MIN e MAX.
Então, agora vamos ver outras funções matemáticas ainda não citadas.
FIRST
A função FIRST() retorna o primeiro valor encontrado de acordo com a sentença 
definida. Não é suportada por alguns SGBDs.
Por exemplo, para selecionar o primeiro nome de cliente encontrado na tabela de 
vendas, basta utilizar a sentença:
SELECT FIRST(NOME_CLIENTE) FROM VENDAS
Atenção
15
LAST
O comando LAST é a função contrária à FIRST(). Localiza o último registro que 
atenda às condições definidas pela query. Assim como a função FIRST(), não está 
disponível na maioria dos SGBDs.
Ainda segundo o nosso exemplo da loja, a sentença para selecionar o último nome 
de cliente encontrado na tabela de vendas é:
SELECT LAST(NOME_CLIENTE) FROM VENDAS
Atenção
SQRT
A função SQRT() calcula a raiz quadrada do valor que foi passado para a função. É 
necessário que seja indicado somente um valor, cuja raiz quadrada será calculada. O 
exemplo a seguir retorna o valor 3.
SELECT SQRT(9)
Atenção
SQUARE
A função SQUARE() faz o cálculo do valor que é passado para a função. Também só 
recebe um único valor, cujo quadrado será calculado e retornado. O exemplo a seguir 
retorna o valor 9.
16
SELECT SQRT(3)
Atenção
POWER
A função POWER() calcula a potência segundo dois parâmetros. O primeiro 
parâmetro é o valor de base; o segundo, a potência a que o primeiro será elevado. 
Vejamos:
SELECT POWER(2, 3)
Atenção
17
Fechamento
Hoje, vimos, sobre as funções internas. Além disso, vimos que existem dois tipos de 
funções: as funções de agregação, ou de conjunto, e as funções escalares. Assim, o 
programador pode escolher entre essas duas funções internas distintas para facilitar 
suas ações.
18
Referências
ELMASRI, R. N. Sistema de banco de dados. 6. ed. São Paulo: Pearson, 2010.
HEUSER, C. A. Projeto de banco de dados. Porto Alegre: Bookman, 2011.
MACHADO, F. R. Banco de dados: projeto e implementação. São Paulo: Érica, 2014.

Continue navegando