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.
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.
Para acompanhar esse curso, é necessário ter uma base dos comandos iniciais de SQL e compreender como a linguagem funciona.
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:
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á?
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;
ID | Nome | DataNascimento | CPF | Endereco | Telefone | |
---|---|---|---|---|---|---|
1 | Dr. Cauê da Conceição | 1992-08-05 | 24657139061 | Recanto Isadora Nunes, Lagoa, 69660278 Jesus / MS | (081) 8338 3341 | manuelada-luz@uol.com.br |
2 | Alana Gomes | 1963-05-15 | 04327185914 | Estrada Benjamin Duarte, Alto Barroca, 88769-290 da Cruz de Teixeira / RJ | (051) 1565 8107 | lais58@azevedo.br |
3 | Agatha Dias | 1996-10-13 | 98753146255 | Feira da Cruz, 98, Vila Maria, 38435-029 Moura de Pereira / AL | +55 84 7490 3659 | elima@das.org |
4 | Kevin Lima | 1982-03-08 | 81256734071 | Avenida de Campos, 87, Providencia, 67007931 Rocha / PR | 71 1126 4143 | obarbosa@bol.com.br |
5 | Luiza da Paz | 1987-02-14 | 97812045676 | Lago Stella Souza, 5, Santa Helena, 56937115 Jesus / AP | 31 1464-2424 | maria-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;
ID | ID_Colaborador | Cargo | DataContratacao | DataTermino | Salario | Supervisor |
---|---|---|---|---|---|---|
1 | 102 | Barman | 2017-09-10 | 2023-05-17 | 15659.88 | Enzo Gabriel Cunha |
2 | 112 | Radialista programador | 2020-07-23 | null | 10744.84 | Joaquim Farias |
3 | 137 | Classificador contábil | 2016-06-24 | null | 13370.22 | Luna da Cunha |
4 | 116 | Estampador de tecidos | 2015-05-23 | 2021-09-19 | 9151.28 | Leandro Caldeira |
5 | 55 | Guardador de veículos | 2015-07-23 | 2017-10-23 | 11292.29 | Anthony 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;
ID | ID_Colaborador | Cargo | DataContatacao | DataTermino | Salario | Supervisor |
---|---|---|---|---|---|---|
82 | 69 | Entalhador | 2022-07-20 | NULL | 3149.17 | Maria Fernanda Freitas |
64 | 84 | Quadrinista | 2018-04-10 | NULL | 3167.21 | Emanuella das Neves |
97 | 53 | Baixista | 2015-08-03 | NULL | 3288.55 | Lorena Cunha |
150 | 135 | Implantodontista | 2017-10-25 | 2021-04-09 | 3423.45 | Camila Santos |
88 | 122 | Cirurgião bucal | 2021-01-26 | 2022-09-12 | 3481.46 | Giovanna 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;
ID | ID_Colaborador | Cargo | DataContatacao | DataTermino | Salario | Supervisor |
---|---|---|---|---|---|---|
146 | 117 | Ator | 2014-09-10 | 2020-09-11 | 19951.22 | Juan Peixoto |
26 | 64 | Violonista | 2016-11-24 | NULL | 19873.68 | Noah Costa |
36 | 84 | Intérprete e tradutor... | 2015-11-10 | NULL | 19723.99 | Luiz Henrique Melo |
147 | 49 | Engenheiro de teleco... | 2021-08-01 | 2021-10-16 | 19602.58 | Maria Clara da Conceição |
62 | 84 | Lutador de taekwondo | 2023-04-18 | NULL | 19504.64 | Lorena 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;
ID | ID_Colaborador | Cargo | DataContatacao | DataTermino | Salario | Supervisor |
---|---|---|---|---|---|---|
146 | 117 | Ator | 2014-09-10 | 2020-09-11 | 19951.22 | Juan Peixoto |
26 | 64 | Violonista | 2016-11-24 | NULL | 19873.68 | Noah Costa |
36 | 84 | Intérprete e tradutor... | 2015-11-10 | NULL | 19723.99 | Luiz Henrique Melo |
147 | 49 | Engenheiro de teleco... | 2021-08-01 | 2021-10-16 | 19602.58 | Maria Clara da Conceição |
62 | 84 | Lutador de taekwondo | 2023-04-18 | NULL | 19504.64 | Lorena 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á!
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;
ID | ID_Colaborador | Cargo | DataContatacao | DataTermino | Salario | Supervisor |
---|---|---|---|---|---|---|
26 | 64 | Violonista | 2016-11-24 | NULL | 19873.68 | Noah Costa |
36 | 84 | Intérprete | 2015-11-10 | NULL | 19723.99 | Luiz Henrique Melo |
62 | 84 | Lutador de taekwondo | 2023-04-18 | NULL | 19504.64 | Lorena da Rocha |
40 | 7 | Moldureiro | 2018-05-12 | NULL | 19038.7 | Srta. Marcela Vieira |
123 | 30 | Oficial de justiça | 2022-01-11 | NULL | 18470.25 | Juan 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;
ID | ID_Colaborador | Cargo | DataContatacao | DataTermino | Salario | Supervisor |
---|---|---|---|---|---|---|
146 | 117 | Ator | 2014-09-10 | 2020-09-11 | 19951.22 | Juan Peixoto |
147 | 49 | Engenheiro de teleco... | 2021-08-01 | 2021-10-16 | 19602.58 | Maria Clara da Conceição |
105 | 140 | Traumatologista | 2018-01-22 | 2019-08-20 | 18826.8 | Cauê Gonçalves |
76 | 117 | Redator | 2022-08-19 | 2023-06-26 | 18803.06 | Nina Almeida |
50 | 89 | Mecânico | 2022-04-08 | 2023-09-09 | 18559.23 | Joã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á!
O curso SQLite Online: executando consultas SQL possui 118 minutos de vídeos, em um total de 50 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:
Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.
Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.
Emitimos certificados para atestar que você finalizou nossos cursos e formações.
Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.
Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.
Emitimos certificados para atestar que você finalizou nossos cursos e formações.
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.
Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.
Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.
Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.
Emitimos certificados para atestar que você finalizou nossos cursos e formações.
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.
Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.
Acesso completo
durante 1 ano
Estude 24h/dia
onde e quando quiser
Novos cursos
todas as semanas