Como escrever consultas simples

Publicados: 2022-03-21

Já ouviu falar em SQL? Você pode ter ouvido falar sobre isso no contexto da análise de dados, mas nunca pensou que isso se aplicaria a você como profissional de marketing. Ou, você pode ter pensado: “Isso é para os usuários de dados avançados. Eu nunca poderia fazer isso."

Bem, você não poderia estar mais errado! Os profissionais de marketing mais bem-sucedidos são orientados por dados, e uma das partes mais importantes de ser orientado por dados é coletar dados de bancos de dados rapidamente. SQL é a ferramenta mais popular para fazer exatamente isso.

Se sua empresa já armazena dados em um banco de dados, talvez seja necessário aprender SQL para acessar os dados. Mas não se preocupe - você está no lugar certo para começar. Vamos pular direto.

Baixe 10 modelos do Excel para profissionais de marketing [kit gratuito]

Por que usar SQL?

SQL (geralmente pronunciado como “sequel”) significa Structured Query Language e é usado quando as empresas têm uma tonelada de dados que desejam manipular. A beleza do SQL é que qualquer pessoa que trabalhe em uma empresa que armazena dados em um banco de dados relacional pode usá-lo. (E as chances são de que o seu sim.)

Por exemplo, se você trabalha para uma empresa de software e deseja obter dados de uso de seus clientes, pode fazer isso com o SQL. Se você estiver ajudando a desenvolver um site para uma empresa de comércio eletrônico que tenha dados sobre as compras dos clientes, poderá usar o SQL para descobrir quais clientes estão comprando quais produtos. Claro, essas são apenas algumas das muitas aplicações possíveis.

Pense desta forma: você já abriu um conjunto de dados muito grande no Excel, apenas para o seu computador travar ou até mesmo desligar? O SQL permite que você acesse apenas algumas partes de seus dados por vez, para que você não precise baixar todos os dados em um CSV, manipulá-los e possivelmente sobrecarregar o Excel. Em outras palavras, o SQL cuida da análise de dados que você pode estar acostumado a fazer no Excel.

Como escrever consultas SQL simples

Antes de começarmos, certifique-se de ter um aplicativo de gerenciamento de banco de dados que permita extrair dados de seu banco de dados. Algumas opções incluem MySQL ou Sequel Pro.

Comece baixando uma dessas opções e converse com o departamento de TI da sua empresa sobre como se conectar ao seu banco de dados. A opção escolhida dependerá do back-end do seu produto, portanto, verifique com sua equipe de produto para certificar-se de selecionar a correta.

Entenda a hierarquia do seu banco de dados

Em seguida, é importante se acostumar com seu banco de dados e sua hierarquia. Se você tiver vários bancos de dados de dados, precisará aprimorar a localização dos dados com os quais deseja trabalhar.

Por exemplo, vamos fingir que estamos trabalhando com vários bancos de dados sobre pessoas nos Estados Unidos. Insira a consulta “MOSTRAR BANCOS DE DADOS;”. Os resultados podem mostrar que você tem alguns bancos de dados para locais diferentes, incluindo um para a Nova Inglaterra.

Dentro de seu banco de dados, você terá diferentes tabelas contendo os dados com os quais deseja trabalhar. Usando o mesmo exemplo acima, digamos que queremos descobrir quais informações estão contidas em um dos bancos de dados. Se usarmos a consulta “SHOW TABLES in NewEngland;”, descobriremos que temos tabelas para cada estado da Nova Inglaterra: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland e people_vermont.

Finalmente, você precisa descobrir quais campos estão nas tabelas. Os campos são os dados específicos que você pode extrair do seu banco de dados. Por exemplo, se você deseja obter o endereço de alguém, o nome do campo pode não ser apenas “endereço” – ele pode ser separado em endereço_cidade, endereço_estado, endereço_zip. Para descobrir isso, use a consulta “Describe people_massachusetts;”. Isso fornece uma lista de todos os dados que você pode extrair usando SQL.

Vamos fazer uma rápida revisão da hierarquia usando nosso exemplo da Nova Inglaterra:

  • Nosso banco de dados é: NewEngland.
  • Nossas tabelas dentro desse banco de dados são: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland e people_vermont.
  • Nossos campos na tabela people_massachusetts incluem: address_city, address_state, address_zip, hair_color, age, first_name e last_name.

Agora, vamos escrever algumas consultas SQL simples para extrair dados do nosso banco de dados NewEngland.

Consultas SQL básicas

Para aprender a escrever uma consulta SQL, vamos usar o seguinte exemplo:

Quem são as pessoas que têm cabelos ruivos em Massachusetts e nasceram em 2003 organizadas em ordem alfabética?

SELECIONAR

SELECT escolhe os campos que você deseja exibir em seu gráfico. Esta é a informação específica que você deseja extrair do seu banco de dados. No exemplo acima, queremos encontrar as pessoas que se encaixam no restante dos critérios.

Aqui está nossa consulta SQL:

SELECIONAR

primeiro nome,

sobrenome

;

A PARTIR DE

FROM identifica a tabela da qual você deseja extrair os dados. Na seção anterior, aprendemos que havia seis tabelas para cada um dos seis estados da Nova Inglaterra: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland e people_vermont. Como estamos procurando pessoas em Massachusetts especificamente, vamos extrair dados dessa tabela específica.

Aqui está nossa consulta SQL:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

;

ONDE

WHERE permite filtrar uma consulta para ser mais específico. Em nosso exemplo, queremos filtrar nossa consulta para incluir apenas pessoas ruivas nascidas em 2003. Vamos começar com o filtro ruivo.

Aqui está nossa consulta SQL:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color=”vermelho”

;

hair_color poderia ter sido parte de sua instrução SELECT inicial se você quisesse olhar para todas as pessoas em Massachusetts junto com a cor do cabelo. Mas se você quiser filtrar para ver apenas pessoas com cabelos ruivos, poderá fazê-lo com uma declaração WHERE.

ENTRE

Além de equals (=), BETWEEN é outro operador que você pode usar para consultas condicionais. Uma instrução BETWEEN é verdadeira para valores que estão entre os valores mínimo e máximo especificados.

No nosso caso, podemos usar BETWEEN para extrair registros de um ano específico, como 2003. Aqui está a consulta:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

;

E

E permite que você adicione critérios adicionais à sua instrução WHERE. Lembre-se, queremos filtrar por pessoas que tinham cabelos ruivos, além de pessoas que nasceram em 2003. Como nossa declaração WHERE é considerada pelos critérios de cabelos ruivos, como podemos filtrar por um ano específico de nascimento também?

É aí que entra a instrução AND. Nesse caso, a instrução AND é uma propriedade de data — mas não necessariamente precisa ser. (Observação: verifique o formato de suas datas com sua equipe de produto para garantir que estejam no formato correto.)

Aqui está nossa consulta SQL:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color=”vermelho”

E

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

;

OU

OR também pode ser usado com uma instrução WHERE. Com AND, ambas as condições devem ser verdadeiras para aparecer nos resultados (por exemplo, a cor do cabelo deve ser ruivo e deve ter nascido em 2003). Com OR, qualquer uma das condições deve ser verdadeira para aparecer nos resultados (por exemplo, a cor do cabelo deve ser ruivo ou deve ter nascido em 2003).

Veja como é uma instrução OR em ação:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color = 'vermelho'

OU

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

;

NÃO

NOT é usado em uma instrução WHERE para exibir valores nos quais a condição especificada é falsa. Se quisermos obter todos os residentes de Massachusetts sem cabelos ruivos, podemos usar a seguinte consulta:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE NÃO

hair_color = 'vermelho'

;

ORDENAR POR

Cálculos e organização também podem ser feitos dentro de uma consulta. É aí que entram as funções ORDER BY e GROUP BY. Primeiro, veremos nossas consultas SQL com as funções ORDER BY e depois GROUP BY. Então, vamos dar uma breve olhada na diferença entre os dois.

Uma cláusula ORDER BY permite classificar por qualquer um dos campos especificados na instrução SELECT. Neste caso, vamos ordenar pelo sobrenome.

Aqui está nossa consulta SQL:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color = 'vermelho'

E

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

ORDENAR POR

sobrenome

;

AGRUPAR POR

GROUP BY é semelhante a ORDER BY, mas agrega dados que possuem semelhanças. Por exemplo, se você tiver duplicatas em seus dados, poderá usar GROUP BY para contar o número de duplicatas em seus campos.

Aqui está sua consulta SQL:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color = 'vermelho'

E

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

AGRUPAR POR

sobrenome

;

ORDEM POR VS. AGRUPAR POR

Para mostrar a diferença entre uma instrução ORDER BY e uma instrução GROUP BY, vamos sair do nosso exemplo de Massachusetts brevemente para examinar um conjunto de dados muito simples. Abaixo está uma lista de números de identificação e nomes de quatro funcionários.

a table of four names and IDs as a result of sql queries

Se usássemos uma instrução ORDER BY nesta lista, os nomes dos funcionários seriam classificados em ordem alfabética. O resultado ficaria assim:

a table of four names and IDs as a result of sql queries with the name Peter appearing twice at the bottom

Se usássemos uma instrução GROUP BY, os funcionários seriam contados com base no número de vezes que apareceram na tabela inicial. Observe que Peter apareceu duas vezes na tabela inicial, então o resultado ficaria assim:

sql query examples: a table of three names and IDs

Comigo até agora? Ok, vamos voltar à consulta SQL que estamos criando sobre pessoas ruivas em Massachusetts que nasceram em 2003.

LIMITE

Dependendo da quantidade de dados que você tem em seu banco de dados, pode levar muito tempo para executar suas consultas. Isso pode ser frustrante, especialmente se você cometeu um erro em sua consulta e agora precisa esperar antes de continuar. Se você quiser testar uma consulta, a função LIMIT permite limitar o número de resultados obtidos.

Por exemplo, se suspeitarmos que há milhares de pessoas ruivas em Massachusetts, podemos testar nossa consulta usando LIMIT antes de executá-la por completo para garantir que estamos obtendo as informações que desejamos. Digamos, por exemplo, que queremos ver apenas as primeiras 100 pessoas em nosso resultado.

Aqui está nossa consulta SQL:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color = 'vermelho'

E

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

ORDENAR POR

sobrenome

LIMITE

100

;

INSIRA DENTRO DE

Além de recuperar informações de um banco de dados relacional, o SQL também pode ser usado para modificar o conteúdo de um banco de dados. Obviamente, você precisará de permissões para fazer alterações nos dados da sua empresa. Mas, caso você seja responsável por gerenciar o conteúdo de um banco de dados, compartilharemos algumas dúvidas que você deve saber.

A primeira é a instrução INSERT INTO, que serve para colocar novos valores em seu banco de dados. Se quisermos adicionar uma nova pessoa à tabela Massachusetts, podemos fazê-lo fornecendo primeiro o nome da tabela que queremos modificar e os campos dentro da tabela à qual queremos adicionar. Em seguida, escrevemos VALUE com cada valor respectivo que queremos adicionar.

Veja como essa consulta pode ser:

INSIRA DENTRO DE

people_massachusetts (address_city, address_state, address_zip, hair_color, age, first_name, last_name)

VALORES

(Cambridge, Massachusetts, 02139, loira, 32, Jane, Doe)

;

Como alternativa, se você estiver adicionando um valor a cada campo da tabela, não precisará especificar campos. Os valores serão adicionados às colunas na ordem em que estão listados na consulta.

INSIRA DENTRO DE

pessoas_massachusetts

VALORES

(Cambridge, Massachusetts, 02139, loira, 32, Jane, Doe)

;

Se você deseja adicionar apenas valores a campos específicos, deve especificar esses campos. Digamos que queremos apenas inserir um registro com first_name, last_name e address_state — podemos usar a seguinte consulta:

INSIRA DENTRO DE

pessoas_massachusetts (first_name, last_name, address_state)

VALORES

(Jane, Doe, Massachusetts)

;

ATUALIZAR

Se você deseja substituir valores existentes em seu banco de dados por valores diferentes, você pode usar UPDATE. E se, por exemplo, alguém for registrado no banco de dados como tendo cabelo ruivo quando na verdade tem cabelo castanho? Podemos atualizar este registro com instruções UPDATE e WHERE:

ATUALIZAR

pessoas_massachusetts

DEFINIR

hair_color = 'marrom'

ONDE

first_name = 'Jane'

E

last_name = 'Doe'

;

Ou digamos que há um problema em sua tabela em que alguns valores para “address_state” aparecem como “Massachusetts” e outros aparecem como “MA”. Para alterar todas as instâncias de “MA” para “Massachusetts”, podemos usar uma consulta simples e atualizar vários registros de uma só vez:

ATUALIZAR

pessoas_massachusetts

DEFINIR

address_state = 'Massachusetts'

ONDE

endereço_estado = MA

;

Tenha cuidado ao usar UPDATE. Se você não especificar quais registros devem ser alterados com uma instrução WHERE, todos os valores da tabela serão alterados.

EXCLUIR

DELETE remove registros de sua tabela. Assim como com UPDATE, certifique-se de incluir uma instrução WHERE, para não excluir acidentalmente toda a tabela.

Ou, se por acaso encontrarmos vários registros em nossa tabela people_massachusetts que realmente moravam no Maine, podemos excluir essas entradas rapidamente direcionando o campo address_state, assim:

APAGAR DE

pessoas_massachusetts

ONDE

address_state = 'maine'

;

Bônus: dicas avançadas de SQL

Agora que você aprendeu a criar uma consulta SQL simples, vamos discutir alguns outros truques que você pode usar para elevar o nível de suas consultas, começando com o asterisco.

* (asterisco)

Quando você adiciona um caractere asterisco à sua consulta SQL, ele informa à consulta que você deseja incluir todas as colunas de dados em seus resultados.

No exemplo de Massachusetts que estamos usando, tivemos apenas dois nomes de coluna: first_name e last_name. Mas digamos que tivéssemos 15 colunas de dados que queremos ver em nossos resultados — seria difícil digitar todos os 15 nomes de coluna na instrução SELECT. Em vez disso, se você substituir os nomes dessas colunas por um asterisco, a consulta saberá extrair todas as colunas dos resultados.

Veja como ficaria a consulta SQL:

SELECIONAR

*

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color=”vermelho”

E

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

ORDENAR POR

sobrenome

LIMITE

100

;

% (símbolo de porcentagem)

O símbolo de porcentagem é um caractere curinga, o que significa que pode representar um ou mais caracteres em um valor de banco de dados. Caracteres curinga são úteis para localizar registros que compartilham caracteres comuns. Eles são normalmente usados ​​com o operador LIKE para encontrar um padrão nos dados.

Por exemplo, se quisermos obter os nomes de todas as pessoas em nossa tabela cujo CEP começa com “02”, podemos escrever esta consulta:

SELECIONAR

primeiro nome,

sobrenome

ONDE

address_zip LIKE '02%'

;

Aqui, “%” representa qualquer grupo de dígitos que segue “02”, então esta consulta mostra qualquer registro com um valor para address_zip que comece com “02”.

ÚLTIMOS 30 DIAS

Depois que comecei a usar o SQL regularmente, descobri que uma das minhas consultas principais envolvia tentar descobrir quais pessoas realizaram uma ação ou atenderam a um determinado conjunto de critérios nos últimos 30 dias.

Vamos fingir que hoje é 1º de dezembro de 2021. Você pode criar esses parâmetros fazendo o intervalo birth_date entre 1º de novembro de 2021 e 30 de novembro de 2021. Essa consulta SQL ficaria assim:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color=”vermelho”

E

data_nascimento ENTRE '2021-11-01' E '2021-11-30'

ORDENAR POR

sobrenome

LIMITE

100

;

Mas isso exigiria pensar em quais datas abrangem os últimos 30 dias e você teria que atualizar essa consulta constantemente.

Em vez disso, para fazer com que as datas abranjam automaticamente os últimos 30 dias, independentemente do dia, você pode digitar isso em AND: birth_date >= (DATE_SUB(CURDATE(),INTERVAL 30))

(Observação: você deve verificar novamente essa sintaxe com sua equipe de produto, pois ela pode diferir com base no software que você usa para extrair suas consultas SQL.)

Sua consulta SQL completa, portanto, ficaria assim:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

ONDE

hair_color=”vermelho”

E

data_nascimento >= (DATE_SUB(CURDATE(),INTERVAL 30))

ORDENAR POR

sobrenome

LIMITE

100

;

CONTAR

Em alguns casos, convém contar o número de vezes que um critério de um campo aparece. Por exemplo, digamos que você queira contar o número de vezes que as diferentes cores de cabelo aparecem para as pessoas que você está contando de Massachusetts. Nesse caso, COUNT será útil para que você não precise somar manualmente o número de pessoas com cores de cabelo diferentes ou exportar essas informações para o Excel.

Veja como seria essa consulta SQL:

SELECIONAR

cor de cabelo,

COUNT(cabelo_cor)

A PARTIR DE

pessoas_massachusetts

E

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

AGRUPAR POR

cor de cabelo

;

AVG

O AVG calcula a média de um atributo nos resultados de sua consulta, excluindo valores NULL (vazios). Em nosso exemplo, poderíamos usar o AVG para calcular a idade média dos residentes de Massachusetts em nossa consulta.

Veja como nossa consulta SQL pode ficar:

SELECIONAR

AVG(idade)

A PARTIR DE

pessoas_massachusetts

;

SOMA

SUM é outro cálculo simples que você pode fazer em SQL. Ele calcula o valor total de todos os atributos de sua consulta. Então, se quisermos somar todas as idades dos residentes de Massachusetts, podemos usar esta consulta:

SELECIONAR

SOMA(idade)

A PARTIR DE

pessoas_massachusetts

;

MIN e MAX

MIN e MAX são duas funções SQL que fornecem os valores menores e maiores de um determinado campo. Podemos usá-lo para identificar os membros mais velhos e mais novos da nossa tabela de Massachusetts:

Esta consulta nos dará o registro do mais antigo:

SELECIONAR

MIN(idade)

A PARTIR DE

pessoas_massachusetts

;

E esta consulta nos dá o mais antigo:

SELECIONAR

MAX(idade)

A PARTIR DE

pessoas_massachusetts

;

JUNTE

Pode haver um momento em que você precise acessar informações de duas tabelas diferentes em uma consulta SQL. No SQL, você pode usar uma cláusula JOIN para fazer isso.

(Para aqueles familiarizados com fórmulas do Excel, isso é semelhante ao uso da fórmula PROCV quando você precisa combinar informações de duas planilhas diferentes no Excel.)

Digamos que temos uma tabela que contém dados de todos os IDs de usuário de residentes de Massachusetts e suas datas de nascimento. Além disso, temos uma tabela totalmente separada contendo todos os IDs de usuário dos residentes de Massachusetts e sua cor de cabelo.

Se quisermos descobrir a cor do cabelo dos residentes de Massachusetts nascidos no ano de 2003, precisaríamos acessar as informações de ambas as tabelas e combiná-las. Isso funciona porque ambas as tabelas compartilham uma coluna correspondente: IDs de usuário.

Como estamos chamando campos de duas tabelas diferentes, nossa instrução SELECT também mudará um pouco. Em vez de apenas listar os campos que queremos incluir em nossos resultados, precisaremos especificar de qual tabela eles vêm. (Observação: a função de asterisco pode ser útil aqui para que sua consulta inclua ambas as tabelas em seus resultados.)

Para especificar um campo de uma tabela específica, basta combinar o nome da tabela com o nome do campo. Por exemplo, nossa instrução SELECT diria “table.field” — com o ponto separando o nome da tabela e o nome do campo.

Também estamos assumindo algumas coisas neste caso:

  1. A tabela de data de nascimento de Massachusetts inclui os seguintes campos: first_name, last_name, user_id, birthdate
  2. A tabela de cores de cabelo de Massachusetts inclui os seguintes campos: user_id, hair_color

Sua consulta SQL, portanto, ficaria assim:

SELECIONAR

birthdate_massachusetts.first_name,

birthdate_massachusetts.last_name

A PARTIR DE

birthdate_massachusetts JOIN haircolor_massachusetts USING (user_id)

ONDE

hair_color=”vermelho”

E

data_nascimento ENTRE '2003-01-01' E '2003-12-31'

ORDENAR POR

sobrenome

;

Esta consulta juntaria as duas tabelas usando o campo “user_id” que aparece tanto na tabela birthdate_massachusetts quanto na tabela haircolor_massachusetts. Você pode ver uma tabela de pessoas nascidas em 2003 que têm cabelos ruivos.

CASO

Use uma instrução CASE quando desejar retornar resultados diferentes para sua consulta com base na condição atendida. As condições são avaliadas em ordem. Quando uma condição é atendida, o resultado correspondente é retornado e todas as condições a seguir são ignoradas.

Você pode incluir uma condição ELSE no final caso nenhuma condição seja atendida. Sem um ELSE, a consulta retornará NULL se nenhuma condição for atendida.

Aqui está um exemplo de uso de CASE para retornar uma string com base na consulta:

SELECIONAR

primeiro nome,

sobrenome

A PARTIR DE

pessoas_massachusetts

CASO

WHEN hair_color = 'marrom' THEN 'Esta pessoa tem cabelo castanho.'

WHEN hair_color = 'loiro' THEN 'Esta pessoa tem cabelo loiro.'

WHEN hair_color = 'red' THEN 'Esta pessoa tem cabelo ruivo.'

ELSE 'Cor do cabelo desconhecida.'

FIM

;

Consultas SQL básicas que os profissionais de marketing devem saber

Parabéns. você está pronto para executar suas próprias consultas SQL! Embora haja muito mais que você possa fazer com o SQL, espero que você tenha achado esta visão geral do básico útil para que você possa colocar a mão na massa. Com uma base sólida do básico, você poderá navegar melhor pelo SQL e trabalhar em alguns dos exemplos mais complexos.

Nota do editor: Este post foi publicado originalmente em 25 de março e foi atualizado para maior abrangência.

modelos de marketing excel