E bookSQL

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 50

APRENDA 45

FUNÇÕES SQL
PARA SE TORNAR
UM USUÁRIO AVANÇADO
DE BANCO DE DADOS

MARCIO VICTORINO
INTRODUÇÃO
PARA QUEM É ESTE E-BOOK?

Olá, seja-bem vindo ao EdukaTI, um site dedicado a ensinar assuntos


relacionados à Tecnologia da Informação (TI) para que estudantes e
profissionais de qualquer área de atuação possam desenvolver as habilidades
de um analista da informação, dentre elas, pode-se destacar a criação e
manipulação de dados em bancos de dados relacionais.

Se você já é um usuário de banco de dados relacional e consulta


constantemente os dados organizados em tabelas utilizando a linguagem
SQL, esse e-book vai lhe ajudar a ser mais produtivo no momento de montar
as suas consultas.

Por outro lado, caso você ainda não esteja familiarizado com a linguagem
SQL, mas tem interesse no assunto, sugiro, antes de ler este e-book, acessar
a área do nosso site www.edukati.com.br/video-sql que está repleta de
vídeos de curta duração sobre esse assunto. Assim, você terá um melhor
aproveitamento ao ler este conteúdo.

www.edukati.com.br
Marcio Victorino
INTRODUÇÃO
O QUE É SQL?

A SQL (Structured Query Language) ou Linguagem de Consulta Estruturada, é


a linguagem declarativa padrão para banco de dados relacional.

Ela foi criada na década de 70 e vem sendo atualizada constantemente, sua


última atualização foi realizada em 2016.

Apesar dessa linguagem conter a palavra “Consulta” em sua denominação,


ela possui comandos com outros objetivos, como por exemplo, criar
estruturas.

Os comandos da linguagem SQL podem ser organizados em vária categorias,


as duas mais importantes são:
Linguagem de Definição de Dados (DDL): usada para criar estruturas
em um banco de dados, como por exemplo, tabelas.
Linguagem de Manipulação de Dados (DML): usada para manipular os
dados organizados em tabelas em um banco de dados. As manipulações
típicas são a recuperação, inserção, remoção e modificação dos dados.

Neste e-book, abordaremos apenas funções utilizadas em comandos DML da


linguagem SQL.

www.edukati.com.br
Marcio Victorino
INTRODUÇÃO
COMO USAR ESTE E-BOOK?

Este e-book tem o objetivo de ir direto ao assunto, neste caso apresentaremos


consultas utilizando as funções mais importantes da linguagem SQL.

As funções foram organizadas em três categorias:


Funções de Caracteres: utilizadas para manipular dados literais (strings).
Funções Numéricas: utilizadas para manipular números.
Funções de Datas: utilizadas para manipular dados que representam
datas ou tempo.

Inicialmente apresentaremos uma tabela com dados, descreveremos em


poucas palavras o objetivo de cada função e, em seguida, executaremos uma
consulta SQL focando a tabela e apresentaremos o resultado para que o leitor
entenda facilmente o uso da função.

Todas as consultas apresentadas neste e-book foram executadas no SGBD


MySQL. Apesar da SQL ser uma linguagem padronizada por organismos
internacionais (American National Standards Institute - ANSI), algumas
funções podem apresentar diferenças em SGBDs específicos. Então, pode
acontecer de uma função apresentada não funcionar da mesma forma em
outro SGBD.

Esperamos que seu aprendizado seja útil e divertido.


Boa leitura!
www.edukati.com.br
Marcio Victorino
FUNÇÕES DE
CARACTERES
1 - LOWER
Tabela Departamento

Função LOWER(coluna): retorna todos os caracteres da resposta à consulta


em letras minúsculas.

Ex: SELECT LOWER(Nome)


FROM Departamento;

Resultado

www.edukati.com.br
Marcio Victorino
2 - UPPER
Tabela Departamento

Função UPPER(coluna): retorna todos os caracteres da resposta à consulta


em letras maiúsculas.

Ex: SELECT UPPER(Nome)


FROM Departamento;

Resultado

www.edukati.com.br
Marcio Victorino
3 - CONCAT
Tabela Empregado

Função CONCAT(coluna1, coluna2): retorna duas ou mais colunas


concatenadas.

Ex: SELECT CONCAT(Primeiro_Nome, Familia_Nome)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
3 - CONCAT
Tabela Empregado

Melhoraremos a consulta anterior, colocando um espaço entre os literais e


mudaremos o nome da coluna resultante usando um alias por meio do uso do
termo “as”.

Ex: SELECT CONCAT(Primeiro_Nome, ‘ ‘, Familia_Nome) AS Nome_Completo


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
4 - SUBSTR
Tabela Empregado

Função SUBSTR(coluna, numero1, numero2): retorna um subconjunto de


caracteres de uma coluna. O primeiro parâmetro numérico (numero1) indica a
posição inicial do subconjunto de caracteres a ser recuperado e o segundo
parâmetro numérico (numero2) indica a quantidade de caracteres. Cabe
ressaltar que o primeiro caractere de um literal representa a posição 1.

Ex: SELECT SUBSTR(Familia_Nome, 2, 4)


FROM Empregado;
Resultado

Obs: Na consulta acima, o número 2 representa a posição inicial do subconjunto de


caracteres a ser recuperado e o número 4 indica a quantidade de caracteres.

www.edukati.com.br
Marcio Victorino
5 - LENGTH
Tabela Empregado

Função LENGTH(coluna): retorna o número de caracteres de uma coluna de


uma tabela.

Ex: SELECT LENGTH(Familia_Nome)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
6 - REPLACE
Tabela Empregado

Função REPLACE(coluna, cadeia1, cadeia2): substitui um conjunto de


caracteres de uma coluna quando parte do conteúdo dessa coluna coincidir
com a cadeia1. Nesse caso, os caracteres da cadeia1 serão substituídos
pelos caracteres da cadeia2.

Ex: SELECT REPLACE(Primeiro_Nome, 'Dey', 'Day')


FROM Empregado;

Resultado

Obs: Na consulta acima, o foco da substituição realizada pela função REPLACE foi a
coluna Primeiro_Nome da tabela Empregado. Então, a função percorreu todos as
ocorrências do campo Primeiro_Nome e quando encontrou a cadeia de caracteres 'Dey',
substituiu por 'Day'.

www.edukati.com.br
Marcio Victorino
7 - COALESCE
Tabela Empregado

Função COALESCE(coluna, valor): substitui um valor nulo (NULL) de uma


coluna por um valor determinado.

Ex: SELECT COALESCE(Sexo, ‘I’)


FROM Empregado;
Resultado

Obs: Na consulta acima, o foco da substituição realizada pela função COALESCE foi a
coluna Sexo da tabela Empregado. Então, a função percorreu todos as ocorrências do
campo Sexo e quando encontrou ‘NULL’, substituiu por 'I'. Cabe ressaltar que o valor a
ser usado para substituir o ‘NULL’ é determinado pelo programador da consulta. A função
COALESCE também pode ser utilizada para dados numéricos.

www.edukati.com.br
Marcio Victorino
8 - LPAD
Tabela Empregado

Função LPAD(coluna, comprimento, ‘char’): adiciona o caractere ‘char’ à


esquerda (left) da coluna de uma tabela até que tenha a quantidade de
caracteres igual a comprimento.

Ex: SELECT Primeiro_Nome, LPAD(Primeiro_Nome, 10, '-' )


FROM Empregado;

Resultado

Obs: Na consulta acima, todas as ocorrências resultantes da função LPAD ocupam 10


caracteres. A função recuperou o Primeiro_Nome e completou as 10 posições colocando
o caractere ‘-‘ à esquerda. Cabe ressaltar que qualquer outro caractere poderia ter sido
utilizado.

www.edukati.com.br
Marcio Victorino
9 - RPAD
Tabela Empregado

Função RPAD(coluna, comprimento, ‘char’): adiciona o caractere ‘char’ à


direita (rigth) da coluna de uma tabela até que tenha a quantidade de
caracteres igual a comprimento.

Ex: SELECT Primeiro_Nome, RPAD(Primeiro_Nome, 10, '-' )


FROM Empregado;

Resultado

Obs: Na consulta acima, todas as ocorrências resultantes da função RPAD ocupam 10


caracteres. A função recuperou o Primeiro_Nome e completou as 10 posições colocando
o caractere ‘-‘ à direita. Cabe ressaltar que qualquer outro caractere poderia ter sido
utilizado.

www.edukati.com.br
Marcio Victorino
10 - LTRIM
Tabela Empregado

Função LTRIM(coluna): remove caracteres em branco que estejam no início


(à esquerda - left) do conteúdo da coluna de uma tabela.

Ex: SELECT LTRIM(Primeiro_Nome)


FROM Empregado;

Resultado

Obs: Na consulta acima, todas as ocorrências do caractere “em branco” (ou “espaço”)
que estavam à esquerda dos dados da coluna Primeiro_Nome foram removidas. Esses
caracteres estavam antes dos nomes “Denise”, “Ana” e “Clara”. Cabe ressaltar que
também existe a função RTRIM que remove as ocorrências do caractere “em branco” à
direita do conteúdo da coluna de uma tabela.
www.edukati.com.br
Marcio Victorino
FUNÇÕES
NUMÉRICAS
11 - AVG
Tabela Empregado

Função AVG(coluna): retorna a média do conteúdo das colunas de uma


tabela.

Ex: SELECT AVG(Salario)


FROM Empregado;

Resultado

Obs: Na consulta acima, foi calculada a média dos salários dos empregados.

www.edukati.com.br
Marcio Victorino
12 - COUNT
Tabela Empregado

Função COUNT(coluna): retorna a quantidade de ocorrências diferentes de


NULL nas colunas de uma tabela.

Ex: SELECT COUNT(Salario)


FROM Empregado;

Resultado

Obs: Na consulta acima, foi contada a quantidade de salários existentes. Caso algum
salário estivesse sem valor, ou seja, fosse NULL, ele não seria contado.

www.edukati.com.br
Marcio Victorino
13 - SUM
Tabela Empregado

Função SUM(coluna): retorna a soma do conteúdo das colunas de uma


tabela.

Ex: SELECT SUM(Salario)


FROM Empregado;

Resultado

Obs: Na consulta acima, foi calculada a soma total de todos os salários dos empregados.

www.edukati.com.br
Marcio Victorino
14 - MAX
Tabela Empregado

Função MAX(coluna): retorna o valor máximo do conteúdo das colunas de


uma tabela.

Ex: SELECT MAX(Salario)


FROM Empregado;

Resultado

Obs:A consulta acima retornou o maior de todos os salários dos empregados.

www.edukati.com.br
Marcio Victorino
15 - MIN
Tabela Empregado

Função MIN(coluna): retorna o valor mínimo do conteúdo das colunas de


uma tabela.

Ex: SELECT MIN(Salario)


FROM Empregado;

Resultado

Obs:A consulta acima retornou o menor de todos os salários dos empregados.

www.edukati.com.br
Marcio Victorino
16 - ABS
Tabela Valores

Função ABS(coluna): retorna o valor absoluto (positivo) da coluna de uma


tabela, ou seja, altera valores negativos para valores positivos.

Ex: SELECT ABS(Valor2)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
17 - CEIL
Tabela Valores

Função CEIL(coluna): retorna o valor inteiro imediatamente superior ou igual


ao valor da coluna de uma tabela.

Ex: SELECT CEIL(Valor3)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
18 - FLOOR
Tabela Valores

Função FLOOR(coluna): retorna o valor inteiro imediatamente inferior ou


igual ao valor da coluna de uma tabela.

Ex: SELECT FLOOR(Valor3)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
19 - MOD
Tabela Valores

Função MOD(coluna, n): retorna o resto resultante da divisão do valor da


coluna de uma tabela por "n".

Ex: SELECT MOD(Valor1, 2)


FROM Valores;

Resultado

Obs: A consulta acima retornou o resto da divisão da coluna Valor1 pelo número 2. Essa
consulta é utilizada para encontrar os valores da coluna Valor1 que são paras, pois se o
resto da divisão por 2 for 0, o número é par.

www.edukati.com.br
Marcio Victorino
20 - POWER
Tabela Valores

Função POWER(coluna, expoente): retorna o valor da coluna de uma tabela


elevado ao número “expoente”.

Ex: SELECT POWER(Valor1, 2)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
21 - SQRT
Tabela Valores

Função SQRT(coluna): retorna a raiz quadrada do valor da coluna de uma


tabela.

Ex: SELECT SQRT(Valor1)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
22 - SIGN
Tabela Valores

Função SIGN(coluna): retorna -1 se o valor da coluna de uma tabela for


negativo, 1 se o valor for positivo e 0 se o valor for zero.

Ex: SELECT SIGN(Valor2)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
23 - ROUND
Tabela Valores

Função ROUND(coluna, n): retorna o valor de uma coluna arredondado para


“n” casasdecimais. Isso significa que se o algarismo na posição n+1 for igual
ou superior a 5, o algarismo na posição n é acrescido de 1.

Ex: SELECT ROUND(Valor3, 2)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
24 - TRUNCATE
Tabela Valores

Função TRUNCATE(coluna, n): retorna o valor de uma coluna truncado para


“n” casas decimais. Diferentemente da função ROUND, a função TRUNCATE
não faz arredondamento, ela simplesmente elimina algarismos.

Ex: SELECT TRUNCATE(Valor3, 2)


FROM Valores;

Resultado

www.edukati.com.br
Marcio Victorino
25 - LOG
Tabela Valores

Função LOG(coluna, n): retorna o logaritmo do valor de uma coluna


considerando como base o número “n”.

Ex: SELECT LOG(Valor1, 2)


FROM Valores;

Resultado

Obs: Repare que quando o Valor1 da tabela Valores é 1 (primeiro registro), a consulta
retorna “NULL”. Isto acontece porque LOG(1, 2) não existe. Por outro lado, o LOG(2, 2)
retornou 1, pois 2 elevado a 1 resulta em 2.

www.edukati.com.br
Marcio Victorino
FUNÇÕES DE
DATAS
26 - DATE_FORMAT
Tabela Empregado

Função DATE_FORMAT(coluna, '%d/%m/%Y'): formata uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT DATE_FORMAT(Data_Admissao, '%d/%m/%Y')


FROM Empregado;

Resultado

Obs: A consulta acima transforma a data do formato americano para o europeu.

www.edukati.com.br
Marcio Victorino
27 - EXTRACT
Tabela Empregado

Função EXTRACT(YEAR FROM coluna): retorna o ano, mês ou dia de uma


data armazenada na coluna de uma tabela. Essa função também pode ser
usada considerando diretamente uma data, sem necessariamente consultar
tabelas.

Ex: SELECT EXTRACT(YEAR FROM Data_Admissao)


FROM Empregado;
Resultado

Obs: Pode-se utilizar a sintaxe “MONTH FROM” ou “DAY FROM” para retornar o mês e o
dia, respectivamente.

www.edukati.com.br
Marcio Victorino
28 - DAY
Tabela Empregado

Função DAY(coluna): retorna o dia de uma data armazenada na coluna de


uma tabela. Essa função também pode ser usada considerando diretamente
uma data, sem necessariamente consultar tabelas.

Ex: SELECT DAY(Data_Admissao)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
29 - DAYNAME
Tabela Empregado

Função DAYNAME(coluna): retorna o nome do dia de uma data armazenada


na coluna de uma tabela. Essa função também pode ser usada considerando
diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT DAYNAME(Data_Admissao)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
30 - MONTH
Tabela Empregado

Função MONTH(coluna): retorna o mês de uma data armazenada na coluna


de uma tabela. Essa função também pode ser usada considerando
diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT MONTH(Data_Admissao)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
31 - MONTHNAME
Tabela Empregado

Função MONTHNAME(coluna): retorna o nome do mês de uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT MONTHNAME(Data_Admissao)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
32 - YEAR
Tabela Empregado

Função YEAR(coluna): retorna o ano de uma data armazenada na coluna de


uma tabela. Essa função também pode ser usada considerando diretamente
uma data, sem necessariamente consultar tabelas.

Ex: SELECT YEAR(Data_Admissao)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
33 - DAYOFYEAR
Tabela Empregado

Função DAYOFYEAR(coluna): retorna o dia do ano de uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT DAYOFYEAR(Data_Admissao)


FROM Empregado;
Resultado

Obs: A consulta acima retornou o dia do ano das datas de admissão. Por exemplo, a
primeira linha informa que a data consultada equivale ao primeiro dia do ano.

www.edukati.com.br
Marcio Victorino
34 - DAYOFMONTH
Tabela Empregado

Função DAYOFMONTH(coluna): retorna o dia do mês de uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT DAYOFMONTH(Data_Admissao)


FROM Empregado;
Resultado

Obs: A consulta acima retornou o dia do mês das datas de admissão. Por exemplo, a
primeira linha informa que a data consultada equivale ao primeiro dia do mês.

www.edukati.com.br
Marcio Victorino
35 - DAYOFWEEK
Tabela Empregado

Função DAYOFWEEK(coluna): retorna o dia da semana de uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT DAYOFWEEK(Data_Admissao)


FROM Empregado;
Resultado

Obs: A consulta acima retornou o dia da semana das datas de admissão. Por exemplo, a
primeira linha informa que a data consultada equivale ao terceiro dia da semana.

www.edukati.com.br
Marcio Victorino
36 - DATEDIFF
Tabela Empregado

Função DATEDIFF(col1, col2): retorna o intervalo entre duas datas


armazenadas nas colunas de uma tabela. Essa função também pode ser
usada considerando diretamente duas datas, sem necessariamente consultar
tabelas.

Ex: SELECT DATEDIFF(Data_Demissao, Data_Admissao)


FROM Empregado;

Resultado

Obs: Na consulta acima, foi calculado o número de dias que cada empregado trabalhou
na empresa.

www.edukati.com.br
Marcio Victorino
37 - DATE_ADD
Tabela Empregado

Função DATE_ADD(coluna, numero_dias): adiciona dias a uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT DATE_ADD(Data_Demissao, interval 30 day)


FROM Empregado;

Resultado

Obs: Na consulta acima, foram acrescentados 30 dias à data de demissão dos


empregados da empresa. Essa função também pode utilizar intervalos de meses (month)
ou anos (year).
www.edukati.com.br
Marcio Victorino
38 - DATE_SUB
Tabela Empregado

Função DATE_SUB(coluna, numero_dias): subtrai dias de uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT DATE_SUB(Data_Demissao, interval 15 day)


FROM Empregado;

Resultado

Obs: Na consulta acima, foram subtraídos 15 dias da data de demissão dos empregados
da empresa. Essa função também pode utilizar intervalos de meses (month) ou anos
(year).
www.edukati.com.br
Marcio Victorino
39 - LAST_DAY
Tabela Empregado

Função LAST_DAY(coluna): retorna o último dia do mês de uma data


armazenada na coluna de uma tabela. Essa função também pode ser usada
considerando diretamente uma data, sem necessariamente consultar tabelas.

Ex: SELECT LAST_DAY(Data_Admissao)


FROM Empregado;

Resultado

www.edukati.com.br
Marcio Victorino
40 - CURDATE
Função CURDATE(): retorna data atual. Repare que essa função não usa
colunas de tabelas, ela simplesmente apresenta a data do sistema.

Ex: SELECT CURDATE();

Resultado

41 - NOW
Função NOW(): retorna data/hora atual. Repare que essa função não usa
colunas de tabelas, ela simplesmente apresenta a data/hora do sistema.

Ex: SELECT NOW();

Resultado

www.edukati.com.br
Marcio Victorino
42 - SYSDATE
Função SYSDATE(): retorna data/hora atual. Repare que essa função não
usa colunas de tabelas, ela simplesmente apresenta a data/hora do sistema.

Ex: SELECT SYSDATE();

Resultado

43 - CURTIME
Função CURTIME(): retorna o horário atual. Repare que essa função não usa
colunas de tabelas, ela simplesmente apresenta o horário atual do sistema.

Ex: SELECT CURTIME();

Resultado

www.edukati.com.br
Marcio Victorino
44 - TO_DATE
Função TO_DATE(): é uma função para conversão de tipos que converte do
formato cadeia de caracteres para data.

45 - TO_CHAR
Função TO_CHAR(): é uma função para conversão de tipos que converte do
formato data para cadeia de caracteres.

www.edukati.com.br
Marcio Victorino

Você também pode gostar