Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso SQLite Online: executando consultas SQL

SQLite Online: executando consultas SQL

Conhecendo os dados - Apresentação

Olá! Boas-vindas ao nosso curso SQLite Online: Executando Consultas SQL.

Meu nome é Beatriz Magalhães, e serei a instrutora que irá acompanhar você durante essa trajetória.

Audiodescrição: Beatriz é uma mulher de pele clara, com cabelos castanhos, longos e ondulados. Veste uma blusa azul escura e está em um fundo de uma parede branca iluminada por uma luz verde.

Público-alvo

Este curso é para você que, por algum motivo, precisa fazer consultas em bancos de dados relacionais, ou que já trabalha na área de dados, mas gostaria de conhecer a linguagem SQL e estudar um pouco mais sobre essa linguagem.

Pré-requisitos

Para acompanhar esse curso, é necessário ter uma base dos comandos iniciais de SQL e compreender como a linguagem funciona.

O conteúdo

Neste curso, vamos explorar de forma mais aprofundada as consultas: como estruturar uma consulta e quais tipos de informações podemos obter com as consultas. Para isso, vamos aprender:

O projeto

Tudo isso será feito usando uma base de dados de uma empresa de RH, a Fokus, para atender as demandas dela. Ela tem várias perguntas e informações que precisamos extrair do banco de dados dela, e nós utilizaremos a linguagem SQL para consultas mais estruturadas para conseguirmos obter essas informações.

Durante essa trajetória, é muito importante que você realize todas as atividades propostas durante o curso para fixar o conteúdo. Isso vai ajudar bastante para você entender realmente o que estamos abordando no curso.

Além disso, participe das comunidades. Temos o Fórum do curso, para que você colocar suas dúvidas e seus comentários. Entre também no Discord dos estudantes da Alura para trocar experiências com outras pessoas. Além disso, compartilhe nas suas redes sociais que está fazendo esse curso e o que está achando. Isso é muito interessante e vamos acompanhar tudo.

Esperamos você no próximo vídeo para começarmos nosso projeto.

Vamos lá?

Conhecendo os dados - Conhecendo o projeto e limitando as consultas

Vocês são pessoas contratadas pela empresa de RH Fokus para gerenciar o banco de dados da empresa. Ela precisa consultar algumas informações específicas que auxiliarão tanto as empresas contratantes de pessoas colaboradoras, quanto as pessoas cadastradas como pessoas colaboradoras que desejam conseguir uma oportunidade de trabalho e progredir em suas carreiras.

Então, como podemos trazer uma das primeiras informações solicitadas pela Fokus: identificar as cinco pessoas colaboradoras que possuem as maiores remunerações? A Fokus quer usar essas informações para promover um treinamento para todas as outras pessoas colaboradoras cadastradas. A ideia é convidar essas cinco pessoas com as maiores remunerações para compartilhar um pouco sobre suas trajetórias de carreira e incentivar as outras pessoas que também estão em busca de uma oportunidade.

Começaremos acessando a nossa plataforma sqliteonline.com. A primeira coisa que faremos é importar o banco de dados que a Fokus disponibilizou para nós. Clicaremos em "File", no canto esquerdo da barra superior, e, no menu suspenso, selecionaremos "Open DB". com isso, abrimos uma janela do nosso computador, onde selecionaremos o arquivo que já deixamos disponível para download nas atividade: o banco de dados Fokus. Após abrirmos o bando de dados, teremos todas as tabelas da empresa, na coluna lateral esquerda, para trabalharmos com nossas consultas.

Agora, como podemos trazer essa primeira informação utilizando a linguagem SQL? Trata-se de uma informação sobre as pessoas colaboradoras, então faremos um SELECT na tabela "Colaboradores" descobrirmos quais são as informações que tem nessa tabela.

SELECT * FROM Colaboradores;
IDNomeDataNascimentoCPFEnderecoTelefoneEmail
1Dr. Cauê da Conceição1992-08-0524657139061Recanto Isadora Nunes, Lagoa, 69660278 Jesus / MS(081) 8338 3341manuelada-luz@uol.com.br
2Alana Gomes1963-05-1504327185914Estrada Benjamin Duarte, Alto Barroca, 88769-290 da Cruz de Teixeira / RJ(051) 1565 8107lais58@azevedo.br
3Agatha Dias1996-10-1398753146255Feira da Cruz, 98, Vila Maria, 38435-029 Moura de Pereira / AL+55 84 7490 3659elima@das.org
4Kevin Lima1982-03-0881256734071Avenida de Campos, 87, Providencia, 67007931 Rocha / PR71 1126 4143obarbosa@bol.com.br
5Luiza da Paz1987-02-1497812045676Lago Stella Souza, 5, Santa Helena, 56937115 Jesus / AP31 1464-2424maria-alice63@hotmail.com

No retorno, temos as informações de ID, Nome, Data de nascimento, CPF, Endereço, Telefone e Email mas não tem as informações que a Fokus precisa, que é a remuneração de cada pessoa colaboradora. Precisamos descobrir qual é a tabela que tem essas informações.

Se formos na lateral esquerda, no canto direito do nome de cada tabela temos uma seta apontando para esquerda. Se clicarmos nela, ela aponta para baixo e acessamos as colunas de cada tabela. Temos algumas tabelas como "Dependentes", "faturamentos" e "HistoricoEmprego". Na tabela "HistoricoEmprego", temos a coluna Salario, que é exatamente a que precisamos consultar. Então, na nossa área de código, SELECT da "HistoticoEmprego" para observar suas informações.

SELECT * FROM HistoricoEmprego;
IDID_ColaboradorCargoDataContratacaoDataTerminoSalarioSupervisor
1102Barman2017-09-102023-05-1715659.88Enzo Gabriel Cunha
2112Radialista programador2020-07-23null10744.84Joaquim Farias
3137Classificador contábil2016-06-24null13370.22Luna da Cunha
4116Estampador de tecidos2015-05-232021-09-199151.28Leandro Caldeira
555Guardador de veículos2015-07-232017-10-2311292.29Anthony Aragão

Se observarmos a tabela, temos o ID, o ID_Colaborador, que é uma chave estrangeira da tabela "Colaboradores", o Cargo de cada pessoa colaboradora, a DataContratacao de quando foram contratadas e a DataTermino, no caso de já têm encerrado o contrato de trabalho das pessoas cadastradas aqui. Também tem o Salario e Supervisor, que é a pessoa responsável por aquela pessoa.

O que precisamos fazer agora é buscar essas pessoas colaboradoras pela ordem do salário, organizando dos maiores salários para os menores. Para isso, manteremos o SELECT * FROM HistoricoEmprego e, na linha abaixo, codamos ORDER BY salario, para ordenar por pela a coluna salario.

SELECT * FROM HistoricoEmprego
ORDER BY salario;
IDID_ColaboradorCargoDataContatacaoDataTerminoSalarioSupervisor
8269Entalhador2022-07-20NULL3149.17Maria Fernanda Freitas
6484Quadrinista2018-04-10NULL3167.21Emanuella das Neves
9753Baixista2015-08-03NULL3288.55Lorena Cunha
150135Implantodontista2017-10-252021-04-093423.45Camila Santos
88122Cirurgião bucal2021-01-262022-09-123481.46Giovanna Ribeiro

Se rodarmos esse novo comando, temos o retorno da tabela ordenada salário, só que o sistema ordenou pelo menor salário até o maior, mas queremos totalmente o contrário. Para isso, acrescentamos a expressão DESC depois de salario, que é para organizar por ordem decrescente, e rodamos novamente.

SELECT * FROM HistoricoEmprego
ORDER BY salario DESC;
IDID_ColaboradorCargoDataContatacaoDataTerminoSalarioSupervisor
146117Ator2014-09-102020-09-1119951.22Juan Peixoto
2664Violonista2016-11-24NULL19873.68Noah Costa
3684Intérprete e tradutor...2015-11-10NULL19723.99Luiz Henrique Melo
14749Engenheiro de teleco...2021-08-012021-10-1619602.58Maria Clara da Conceição
6284Lutador de taekwondo2023-04-18NULL19504.64Lorena da Rocha

Agora sim, conseguimos ver os maiores salários em primeiro lugar, mas precisamos apenas dos 5 primeiros registros. Para limitarmos o número de linhas do nosso resultado, utilizamos a cláusula LIMIT. Portanto, na linha abaixo do ORDER BY salario DESC, escrevemos LIMIT seguido do número de registros ao qual queremos nos limitar, no caso, 5.

SELECT * FROM HistoricoEmprego
ORDER BY salario DESC
LIMIT 5;
IDID_ColaboradorCargoDataContatacaoDataTerminoSalarioSupervisor
146117Ator2014-09-102020-09-1119951.22Juan Peixoto
2664Violonista2016-11-24NULL19873.68Noah Costa
3684Intérprete e tradutor...2015-11-10NULL19723.99Luiz Henrique Melo
14749Engenheiro de teleco...2021-08-012021-10-1619602.58Maria Clara da Conceição
6284Lutador de taekwondo2023-04-18NULL19504.64Lorena da Rocha

Ao rodarmos essa nova consulta, aparecem apenas as 5 pessoas com salário mais alto. Com isso, já temos todas as informações das pessoas colaboradoras que estão na tabela "Colaboradores".

Porém, se analisarmos a coluna DataTermino, notamos que algumas dessas pessoas colaboradoras têm uma data presente. Isso significa que eles já encerraram os contratos na Fokus. Para nós, não é interessante trazer esses colaboradora que não estão empregados.

Como como o objetivo é fazer essa palestra de motivação para outras pessoas se incentivarem a melhorarem na carreira e a conseguirem posições melhores, seria interessante se a pessoa estivesse atuando no momento na profissão dela. Então, como podemos filtrar apenas as pessoas colaboradoras que estejam com a DataTermino como NULL?

Isso é o que vamos entender melhor no próximo vídeo, esperamos vocês lá!

Conhecendo os dados - Operadores IS NULL e NOT NULL

No vídeo anterior, conseguimos filtrar e consultar as 5 pessoas colaboradoras com as maiores remunerações. Entretanto, nesse filtro, pessoas que atualmente não estão empregadas também foram incluídas. Isso significa que na coluna DataTermino, essas pessoas possuem uma data preenchida.

A Fokus solicitou que filtrássemos apenas as pessoas que têm NULL (NULO) na DataTermino, ou seja, pessoas que atualmente ocupam o cargo listado na nossa tabela. Como podemos fazer filtrar apenas as pessoas cujos campos estejam NULL na DataTermino?

Atualmente nossa consulta está assim:

SELECT * FROM HistoricoEmprego
ORDER BY salario DESC
LIMIT 5;

Nessa consulta, podemos acrescentar uma cláusula utilizando o comando WHERE (ONDE). Após o HistoricoEmprego na primeira linha, pressionaremos "Enter" e, na linha abaixo, escreveremos a cláusula WHERE, especificando que queremos apenas as linhas onde a DataTermino esteja vazia. Para isso, precisamos entender como declarar o NULL, então vamos tentar escrever como WHERE datatermino = 'null'.

SELECT * FROM HistoricoEmprego
WHERE datatermino = 'null'
ORDER BY salario DESC
LIMIT 5;

Ele não conseguiu trazer registro algum, porque não existe nenhum registro esse tipo de string. Para trazer as colunas vazias, ou NULL, em SQL, utilizamos o comando ISNULL: uma expressão específica do SQL para trazer justamente esses campos NULL de cada coluna.

SELECT * FROM HistoricoEmprego
WHERE datatermino ISNULL
ORDER BY salario DESC
LIMIT 5;
IDID_ColaboradorCargoDataContatacaoDataTerminoSalarioSupervisor
2664Violonista2016-11-24NULL19873.68Noah Costa
3684Intérprete2015-11-10NULL19723.99Luiz Henrique Melo
6284Lutador de taekwondo2023-04-18NULL19504.64Lorena da Rocha
407Moldureiro2018-05-12NULL19038.7Srta. Marcela Vieira
12330Oficial de justiça2022-01-11NULL18470.25Juan Costa

Ao executarmos essa consulta, veremos que todas as pessoas colaboradoras filtradas estão com a coluna DataTermino como NULL e são as pessoas com as maiores remunerações. Então, deu certo a nossa consulta. São exatamente estas pessoas que a Fokus quer ter acesso ao ID para obterem suas informações e convidá-las para um treinamento.

Vamos analisar a sintaxe da nossa consulta para revisarmos tudo o que fizemos. Começamos com um SELECT para filtrar os dados da tabela "HistoricoEmprego", com o código SELECT * FROM HistoricoEmprego. Abaixo dessa linha, acrescentamos uma condição WHERE onde a coluna DataTermino seja nula, com ISNULL.

Além disso, solicitamos que ordenasse por salário, com ORDER BY salário, de maneira decrescente, portanto acrescentamos a expressão DESC. Por último, adicionamos o LIMIT 5, para limitar aos 5 maiores salários, retornando apenas os primeiros 5 registros. Com isso, trouxemos exatamente as pessoas colaboradoras que a Fokus deseja acesso.

Se quiséssemos, por exemplo, trazer apenas as pessoas colaboradoras que não estão empregadas no momento, ou seja, que têm uma data em DataTermino, neste caso, trocaríamos o comando ISNULL por NOTNULL.

SELECT * FROM HistoricoEmprego
WHERE datatermino NOTNULL
ORDER BY salario DESC
LIMIT 5;
IDID_ColaboradorCargoDataContatacaoDataTerminoSalarioSupervisor
146117Ator2014-09-102020-09-1119951.22Juan Peixoto
14749Engenheiro de teleco...2021-08-012021-10-1619602.58Maria Clara da Conceição
105140Traumatologista2018-01-222019-08-2018826.8Cauê Gonçalves
76117Redator2022-08-192023-06-2618803.06Nina Almeida
5089Mecânico2022-04-082023-09-0918559.23João Felipe Barros

Ao executarmos essa consulta, retornamos apenas os 5 colaboradores com a maior remuneração que têm alguma data na DataTermino, ou seja, que não estão empregados no momento. Portanto, conseguimos trabalhar bem com as expressões ISNULL e NOTNULL se compreendemos como funciona o campo NULL nas tabelas. Esse não é um campo que tem alguma string presente, então precisamos entender como filtrá-lo da maneira correta.

Também é possível, através da linguagem SQL, filtrar alguns campos de string sem saber a string completa, ou seja, com apenas alguns trechos. Mas isso vamos entender no próximo vídeo.

Até lá!

Sobre o curso SQLite Online: executando consultas SQL

O curso SQLite Online: executando consultas SQL possui 118 minutos de vídeos, em um total de 51 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas