Análise de Dados com SQL: Guia Inicial Parte I

Kaique Faustino Dias
comunidadeds
Published in
19 min readNov 14, 2023

Introdução ao uso do SQL para análise de dados, entenda o que são bancos de dados, o que é o SQL e para o que ele serve. Ao final deste artigo você estará apto a efetuar suas primeiras consultas em SQL.

Caros leitores, este artigo tem o intuito de apresentar os conceitos básicos do SQL (Structured Query Language) e de Bancos de Dados Relacionais, as principais funções para que você consiga efetuar suas primeiras queries e tenha o conhecimento mínimo necessário para manusear essa ferramenta tão importante para a Análise de Dados.

Seguem abaixo os tópicos que serão abordados no artigo:

1. O que são e para que servem os Bancos de Dados;

2. O que é o SQL e porquê utilizamos esta ferramenta;

3. A linguagem SQL na prática:

3.1 A estrutura básica de consulta;

3.2 Funções de agrupamento;

3.3 Operadores de Comparação;

3.4 Operadores de Lógica Booleana;

3.5 Funções de união.

4. Conclusão e próximos passos.

1. O que são os Bancos de Dados

Um assunto muito importante para os profissionais da área de Dados, portanto, é interessante que você domine os conceitos básicos sobre eles, para que consiga efetuar suas Análises de Dados da melhor maneira possível.

Imagine uma biblioteca onde existem corredores, estantes e prateleiras, cada corredor determina um assunto, cada estante é utilizada para organizar os tópicos de cada assunto e nas prateleiras estão dispostos os livros com seus determinados tópicos e conteúdos, ou seja, um depósito de informações estruturadas, que permite uma fácil gestão e acesso daqueles conteúdos pelos usuários.

Este exemplo dado anteriormente serve para ilustrar o que é um banco de dados, que nada mais é do que algum lugar onde você armazena informações de maneira organizada, portanto, a sua planilha de controle financeiro do excel pode ser chamada de banco de dados, o livro caixa da padaria também é um banco de dados, até mesmo um álbum de fotografia pode ser considerado como sendo um banco de dados. Esses exemplos possuem uma coisa em comum, todos foram idealizados com o intuito de guardar informações, e é esse o objetivo do banco de dados.

Agora, voltando para o mundo da tecnologia, os bancos de dados são softwares instalados em máquinas físicas, que possuem processador, memória ram e hd, onde esses softwares fazem a gestão das informações que estão sendo armazenadas nos hd’s dos computadores. Podemos ter um banco de dados formado por apenas uma máquina, como, também existem bancos de dados que são formados por centenas de máquinas trabalhando em conjunto, que é o caso dos bancos de dados do Google e da Amazon.

Os bancos de dados podem ser locais ou remotos, a chamada nuvem, algumas empresas, durante anos possuíam bancos de dados locais, dentro de suas plantas em alguma sala refrigerada, e existia a necessidade de terem pessoas dedicadas a manutenção desses bancos de dados, equipes de dezenas, às vezes centenas de pessoas, pois, assim que os mesmos atingiam sua capacidade, era necessário fazer o upgrade do hardware, adicionando mais hd’s, memória ram e aumentando a capacidade de processamento, ou, se algum problema acontecesse, era necessário resolver o quanto antes, a falta de conexão aos bancos de dados poderia causar prejuízos incalculáveis ao negócio.

Com o advento da computação em nuvem, muitas empresas decidiram extinguir este modelo de banco de dados, que era extremamente custoso, e começaram a contratar serviços de empresas como a Amazon (AWS) e o Google (GCP), e levaram seus bancos de dados para a Nuvem, ou seja, não é mais necessário ter preocupação com manutenção de hardware, além da facilidade de upgrades, que ao invés de ter toda a mão de obra para cotar peças, negociar, comprar e depois instalar/configurar, agora pode ser resolvido com apenas um simples clique.

Existem alguns tipos de bancos de dados, porém, os mais utilizados são os Bancos de Dados Relacionais e os Bancos de Dados Não Relacionais, neste artigo abordaremos apenas os bancos de dados Relacionais, pois, as consultas em SQL acontecem nesse primeiro tipo.

Bancos de Dados Relacionais

São os bancos de dados mais utilizados por todo o mundo, pois armazenam informações no formato de tabelas que se relacionam entre si, e diversos modelos de negócio fazem uso desse tipo de estrutura para armazenar as informações dos seus clientes, produtos ou serviços.

Observem abaixo dois exemplos da estrutura de dois bancos de dados diferentes, que são conhecidos como DER (Diagrama Entidade Relacionamento):

Neste caso, temos um banco de dados simples de um hospital, onde temos as tabelas: Patients, Doctors, Admissions e Province Names. Cada uma dessas tabelas tem suas próprias colunas que explicam alguma informação, por exemplo, na tabela patients existe a coluna first_name, que é a coluna onde os nomes dos pacientes é armazenada. Perceba que existe um link entre as tabelas, uma espécie de “seta” que liga a coluna da tabela A a uma coluna da tabela B, essa é a conexão que existe entre as tabelas dos bancos de dados relacionais, e é através dessa conexão que as tabelas se conversam, ou melhor, se unem, caso você tenha um conhecimento básico de Excel ou Google Sheets, a união acontece de forma parecida ao VLOOKUP ou PROCV em português, onde são relacionados valores comuns às duas tabelas.

Agora você deve está se perguntando, mas, se no final das contas necessitamos das informações de todas as tabelas, por que não montar apenas uma única tabela? Para responder a esta pergunta, vamos analisar a imagem de um DER um pouco mais complexo, segue abaixo:

Perceba que a quantidade de tabelas deste DER é muito maior, enquanto no DER anterior nós possuímos 4 tabelas e 21 colunas, neste DER nós possuímos 11 Tabelas e mais de 70 colunas, agora imagine analisar uma única tabela com 70 colunas, ou, alimentar uma mesma tabela com informações de diversos departamentos distintos de uma empresa, seria uma grande confusão, algo muito difícil de administrar. Portanto, na década de 70 o Sr. Edgar F. Codd, Cientista da computação que trabalhou na IBM, propôs a ideia de organizar os dados em tabelas com relações definidas, relações por chave, onde temos as chamadas Primary Key e as Foreign Key.

Para explicar o funcionamento das chaves, eu gostaria que vocês observassem duas tabelas do DER acima, as tabelas “products” e “order_details”, percebam que elas se relacionam através da coluna “product_id”, vejam que a mesma coluna habita as duas tabelas, e é através desta coluna que a união acontece, mas, qual delas é considerada a Primary Key e qual é a Foreign Key? e a resposta é muito simples, as Primary Key por Default, são a primeira coluna de cada tabela, elas servem para identificar de forma única cada registro da mesma, e é uma boa prática da construção dos bancos de dados ela levar o nome da tabela para qual pertence, pegando o exemplo da tabela “products” a Primary Key desta tabela é a coluna “product_id”. Por outro lado, as Foreign Keys são as colunas das tabelas que recebem os valores da Primary Key de outra tabela, ou seja, elas estão lá justamente para que seja possível efetuar a união entre essas duas tabelas, então uma tabela sempre vai possuir apenas uma Primary Key e N Foreign Key, onde N é a quantidade de tabelas com a qual aquela tabela se relaciona, podendo ser duas, três ou até mesmo quatro, não existindo um limite definido de tabelas.

Os bancos de dados relacionais mais utilizados pelas empresas são: MySQL, PostgreSQL, Oracle, Maria DB e Microsoft SQL Server.

2. O que é o SQL e por que utilizamos esta ferramenta:

O SQL é uma das ferramentas mais utilizadas pelos Analistas e Cientistas de Dados, pois, é através dela que a conexão e as consultas com os bancos de dados relacionais acontecem.

O SQL, ou, Structured Query Language (Linguagem de Consulta Estruturada) é uma linguagem que foi desenvolvida com o intuito de ser utilizada para gerenciar bancos de dados relacionais, ou seja, através dos comandos dessa linguagem conseguimos acessar os bancos de dados e efetuar consultas nas tabelas dos mesmos. Ela é utilizada através de softwares que são dedicados para fazer a administração de banco de dados, alguns dos softwares mais utilizados são: DBVisualizer, DataGrip e Dbeaver. Além disso, também é possível fazermos consultas SQL através do terminal.

Abaixo deixo um print da tela inicial do Dbeaver, que é o software que venho utilizando:

A maioria desses softwares tem esta aparência, portanto, escolha um que te agrade e comece seus estudos, pois, o importante será saber utilizar as cláusulas (palavras reservadas) certas para conseguir as respostas para as suas perguntas de negócio, sabendo trabalhar com um desses softwares a adaptação a outro é muito rápida.

3. A linguagem SQL na prática

Após os conceitos explicados anteriormente, agora você será capaz de compreender na prática a linguagem SQL, e será capaz de efetuar suas primeiras consultas, dando um passo importante neste mundo da Análise de Dados.

A linguagem SQL é uma linguagem muito amigável, possui poucas palavras reservadas, das quais também podem ser chamadas de: cláusulas, comandos ou Instruções.

Para seguir com as orientações neste tópico, irei fazer uso de um site chamado Learn SQL, seu domínio é: https://www.sql-practice.com/. Este é um ótimo lugar para vocês começarem a aprender sobre a linguagem SQL, pois, ele é basicamente um terminal online para SQL, muito parecido com os softwares offline, como o DBEAVER, trás a vantagem de você não ter a necessidade de instalar e configurar nada na sua máquina para poder praticar, aos mais curiosos, ele utiliza seus bancos de dados construídos em SQLite, e atualmente tem dois db (data bank) disponíveis, que são o hospital.db e northwind.db.

3.1 A estrutura básica de consulta

A estrutura básica de consulta se dá pelas instruções SELECT e FROM. O SELECT é responsável por efetuar a seleção das colunas, enquanto que o FROM é responsável por escolher a tabela onde essas colunas habitam, iremos fazer as consultas no banco de dados hospital.db.

Segue abaixo uma consulta básica fazendo uso das cláusulas SELECT e FROM:

O caractere “*” é utilizado quando desejamos que todas as colunas de uma tabela sejam retornadas simultaneamente.

Segue abaixo uma outra consulta fazendo uso das cláusulas básicas:

Neste segundo exemplo, dessa vez selecionei apenas as colunas first_name e specialty da tabela doctors. Muito simples, agora, façam vocês algumas consultas básicas!

Para terem acesso ao DER do banco de dados, cliquem em “View Schema”, e lá vocês vão conseguir encontrar quais são as tabelas e as colunas deste banco de dados.

3.2 Funções Agregadoras

As funções agregadoras são as funções responsáveis pelas operações matemáticas nas consultas SQL, ou seja, é possível efetuarmos uma contagem de linhas de uma coluna, a soma dos conteúdos e a média, além disso, conseguimos verificar os valores distintos de uma determinada coluna, as funções agregadores sempre são utilizadas na cláusula SELECT, pois, o objetivo delas é efetuar operações com os conteúdos das colunas.

3.2.1 Função Contagem:

O comando utilizado é o COUNT, segue exemplo de uma consulta utilizando o comando COUNT:

Neste caso, contamos a quantidade de first_name da tabela doctors, veja que o resultado retornado foi de 27, ou seja, existem 27 linhas nessa tabela.

3.2.2 Função Soma:

Utilizada para somarmos os conteúdos de uma determinada coluna, lembrando que, os conteúdos dessa coluna, obrigatoriamente devem ser numéricos, a sintaxe dessa função é SUM. Segue exemplo de uma consulta efetuando a soma dos conteúdos de uma coluna:

Neste exemplo, efetuamos a soma dos conteúdos da coluna weight (peso) que habita a tabela patients, portanto, o peso total dos pacientes que já foram internados é de 347799 Kg, neste exemplo, que é puramente didático, não me parece ser uma informação de grande valia, mas, você pode precisar responder a seguinte pergunta:

Qual foi o faturamento total do mês da empresa?

E a resposta pode ser dada efetuando a soma da coluna com os valores de cada venda.

3.2.3 Função Média:

A função média que possui a sintaxe AVG, é utilizada quando desejamos obter a média aritmética de uma coluna, ou seja, M = (V1 + V2 + V3 + V4+…Vn) / (n) . Iremos utilizar o mesmo exemplo usado para explicar a função soma, segue:

Perceba que o peso médio dos pacientes é de 76.77 kg, que neste caso, já pode ser uma informação útil para as tomadas de decisões do hospital.

3.2.4 Função Máximo:

O Objetivo da função máximo é encontrar qual o maior valor de uma determinada coluna, a sua sintaxe é MAX, segue abaixo o mesmo exemplo utilizando a coluna weight da tabela patients do banco de dados:

Veja que o resultado retornado é de 142, o que significa que o maior valor registrado nesta coluna é este.

3.2.5 Função Mínimo:

O Objetivo da função mínimo é encontrar qual o menor valor de uma determinada coluna, a sua sintaxe é MIN, segue abaixo o mesmo exemplo utilizando a coluna weight da tabela patients, do banco de dados hospital.db:

O resultado neste caso foi 1, quer dizer que o menor valor registrado nesta coluna é 1.

3.2.6 Função Distinct:

O objetivo desta função é de retornar todos os valores diferentes presentes nas células daquela coluna, pois, muitas vezes os valores acabam se repetindo durante as células da coluna, e pode ser interessante conhecer todos os valores de maneira individual, a sintaxe do comando é DISTINCT

Consultamos os nomes registrados na coluna first_name da tabela doctors. Observem que ele retornou diversos nomes, e nenhum se repete.

3.2.7 Função Count com o Distinct

Imagine que você deseja efetuar a contagem da quantidade de médicos únicos que trabalham no hospital, para isso podemos fazer uso da função COUNT com a função DISTINCT, que vai efetuar a contagem dos médicos únicos, segue abaixo o exemplo:

Perceba que o valor retornado é 27, isso significa que existem 27 nomes únicos registrados nessa coluna.

3.3 Funções de agrupamento e ordenação

3.3.1 Função de agrupamento GROUP BY.

Utilizamos a função de agrupamento quando queremos entender o comportamento de um determinado grupo, por exemplo, por algum motivo o diretor do hospital deseja saber a quantidade de pacientes que foram atendidos por cidade, para efetuarmos a consulta é necessário contarmos os pacientes agrupados por cidade, em outras palavras, precisamos separar paciente por paciente pela sua cidade de origem, e depois contarmos eles, vamos fazer uso da cláusula GROUP BY, que é a função responsável pelo o agrupamento, a consulta ficaria da seguinte maneira:

Antes de falarmos sobre o resultado, gostaria de dizer que utilizei a palavra reservada “AS”, para dar um outro nome ao resultado da consulta, no caso total_pacientes, o AS é chamado de alias e utilizamos ele quando queremos nomear alguma coluna. Perceba que a consulta retornou a quantidade de pacientes atendidos por cidade. A função GROUP BY é extremamente útil e é uma das funções mais utilizadas para responder perguntas de negócios.

3.3.2 função de ordenação ORDER BY.

Agora imagina que você precisa responder às seguintes perguntas para o diretor do hospital:

-Quais as cidades com o maior número de pacientes atendidos?

-Quais as cidades com o menor número de pacientes atendidos?

Para responder estas perguntas, será necessário efetuar a organização do resultado da consulta realizada na explicação do agrupamento. A primeira pode ser respondida ordenando de maneira decrescente, ou seja, da cidade com maior número de pacientes, para a cidade com o menor número de pacientes, o resultado da consulta seria:

Adicionamos após a função de agrupamento GROUP BY a função de ordenação ORDER BY, neste caso, como o objetivo era organizar do maior para o menor, utilizamos a palavra reservada DESC, abreviação de Descending ou Descendente em português.

A segunda pergunta pode ser respondida fazendo apenas a substituição da palavra reservada DESC por ASC, de Ascending ou Ascendente em português, segue o exemplo:

Perceba que agora a primeira linha contém uma cidade com apenas um único paciente, e conforme você vai avançando para as linhas posteriores, essa quantidade começa a aumentar gradualmente, agora vocês conseguem compreender como fazer uma ordenação proveniente de um agrupamento.

3.4 Operadores de Comparação

Os operadores de comparação são utilizados como o próprio nome sugere, para efetuar comparação, sem muitas delongas, eles são utilizados quando desejamos efetuar um determinado filtro, utilizamos os operadores de comparação com uma palavra reservada chamada WHERE, do português ONDE. Possuimos os seguintes operadores:

3.4.1 Igualdade

O operador de igualdade é utilizado quando desejamos efetuar uma consulta onde queremos que os resultados retornados sejam iguais a aquele que estamos comparando, a sintaxe é o símbolo de igualdade “=”. Segue um exemplo de uso:

Nessa consulta, o objetivo era retornar o nome dos pacientes que são moradores da cidade de Ajax, como se trata de uma string (valor constituído por caracteres) é necessário colocarmos entre ‘’.

3.4.2 Desigualdade

O operador de desigualdade é utilizado quando desejamos efetuar uma consulta onde queremos que os resultados retornados sejam diferentes daquele valor que estamos comparando, a sintaxe é “<>”. Segue um exemplo de uso:

Perceba que agora, o resultado da consulta exclui os pacientes que moram em Ajax.

3.4.3 Maior ou Menor

Os operadores Maior ou Menor, são utilizados quando desejamos que a consulta retorne apenas as linhas onde os valores são Maior, ou, Menor do que o valor comparado, a sintaxe do maior é o símbolo “>” e a sintaxe do menor é o símbolo “<”. Seguem os exemplos de uso:

Exemplo comparador maior:

Essa consulta teve como objetivo verificar todos os pacientes com mais de 70 kg.

Exemplo comparador menor:

Agora, o objetivo foi de retornar os pacientes com menos de 70 Kg.

3.4.4 Maior ou Igual / Menor ou Igual

Os operadores Maior ou Igual / Menor ou igual, são utilizados quando desejamos que a consulta retorna apenas as linhas onde os valores são Maior ou Igual, ou, Menor ou Igual ao o valor comparado, a sintaxe do maior ou igual é o símbolo “>=” e a sintaxe do menor ou igual é o símbolo “<=”. Seguem os exemplos de uso:

Exemplo operador Maior ou Igual:

Dessa vez, além de retornarmos os pacientes com mais de 70 kg, também serão retornados os pacientes com exatos 70 kg.

Exemplo Operador Menor ou Igual:

Neste caso, retornamos os pacientes com menos de 70 kg e os pacientes com exatos 70 kg

3.5 Operadores de Lógica Booleana;

A lógica booleana é um sistema que utiliza da álgebra binária, ou seja, de operações com 0 e 1, ou, Verdadeiro ou Falso. No SQL fazemos uso de duas lógicas, a logica AND ou E e a lógica OR ou OU, Na lógica booleana temos outros operadores, como o NOT, NAND, NOR e o XOR, mas, são operadores que são muito específicos e não é o intuito de abordá-los neste artigo.

3.5.1 Lógica AND

A lógica AND significa E, em outras palavras, quando fazemos uma comparação, ela será verdadeira se as duas condições forem verdadeiras, por exemplo, “Cachorro e Marrom”, a lógica será verdadeira se o Animal for um cachorro e for da cor Marrom. Assim como os operadores de comparação, ela também é utilizada na cláusula WHERE. O Exemplo abaixo responde a seguinte pergunta, Me retorne apenas os pacientes do gênero masculino e que pesem mais de 70 kg:

Perceba que a consulta retornou apenas os pacientes do gênero ‘M’ (masculino) e que pesam mais de 70 Kg.

3.5.1 Lógica OR

A lógica OR significa Ou, em outras palavras, quando fazemos uma comparação, ela será verdadeira se uma das duas condições forem verdadeiras, por exemplo, “Cachorro ou Gato”, a lógica será verdadeira se o Animal for um cachorro ou se o animal for um gato. Assim como os operadores de comparação, ela também é utilizada na cláusula WHERE. O Exemplo abaixo responde a seguinte pergunta, me retorne apenas os pacientes do gênero masculino ou que pesem mais de 70 kg:

Perceba que agora temos pacientes do gênero ‘F’ (feminino), isso porque existem mulheres que pesam mais de 70 kg, e a lógica OR é verdade se um dos argumentos for verdadeiro.

3.6 Funções de união

As funções de união são utilizadas quando desejamos encontrar valores que estão presentes em duas ou mais tabelas, então fazemos a união entre as tabelas, para que seja possível retornar as colunas necessárias em nossas análises, elas acontecem através das chaves primária (Primary Keys) e chaves estrangeiras (Foreign Keys), que foram explicadas anteriormente, no tópico “O que são os Bancos de Dados”. Possuímos 4 tipos de união entre as tabelas, a união LEFT JOIN, RIGHT JOIN, INNER JOIN e OUTER JOIN, que são utilizadas na cláusula FROM.

3.6.1 INNER JOIN

A função INNER JOIN retorna apenas as linhas da tabela A onde a primary key exista exatamente como foreign key na tabela B, abaixo irei deixar uma imagem para ajudar você a compreender como esta união ocorre:

Imagine que o conteúdo da Tabela A é a circunferência da esquerda e o conteúdo da tabela B a circunferência da direita, quando fazemos a união com o INNER JOIN o conteúdo que será apresentado como resultado desta consulta é o conteúdo em verde, ou seja, o conteúdo que existe nas duas tabelas.

Segue o exemplo usando a ferramenta Learn SQL:

Neste exemplo, é desejado a exibição do nome do paciente e a data da sua entrada no hospital, para isso, precisamos da coluna first_name que pertence a tabela patients e a coluna admission_date, pertencente a tabela admissions. Fizemos a união na cláusula FROM, a sintaxe da união funciona da seguinte maneira

SELECT

coluna_tabela_a,

coluna_tabela_b

FROM tabela_a (tabela da esquerda) INNER JOIN tabela_b ON (tabela da direita) (coluna_chave_estrangeira_tabela_b = coluna_chave_primaria_tabela_a)

Em um primeiro momento pode parecer confuso, mas, conforme forem praticando, vão entender a dinâmica da coisa.

3.6.2 LEFT JOIN

A função LEFT JOIN retorna todas as linhas da tabela A, e apenas as linhas da tabela onde a primary key exista exatamente como foreign key na tabela B, abaixo irei deixar uma imagem para ajudar você a compreender como esta união ocorre:

Imagine que o conteúdo da Tabela A é a circunferência da esquerda e o conteúdo da tabela B a circunferência da direita, quando fazemos a união com o LEFT JOIN o conteúdo que será apresentado como resultado desta consulta é o conteúdo em verde, ou seja, todo conteúdo da tabela A e o conteúdo da tabela B que possua a Primary Key da tabela A como sendo sua Foreign Key.

Segue o exemplo usando a ferramenta Learn SQL:

Perceba que dessa vez, diferente do INNER, ele também retornou os nomes dos pacientes que por algum motivo, não tem sua chave primária como chave estrangeira na tabela admission, e nas células da coluna admission_date onde não existe a correlação, o SQL retorna o NULL para indicar essa situação, o que significa que não existe foreign key da tabela admission equivalente a primary key da tabela patient.

3.6.3 RIGHT JOIN

A função RIGHT JOIN retorna todas as linhas da tabela B, e apenas as linhas da tabela onde a primary key exista exatamente como foreign key na tabela A, abaixo irei deixar uma imagem para ajudar você a compreender como esta união ocorre:

Imagine que o conteúdo da Tabela A é a circunferência da esquerda e o conteúdo da tabela B a circunferência da direita, quando fazemos a união com o RIGHT JOIN o conteúdo que será apresentado como resultado desta consulta é o conteúdo em verde, ou seja, todo conteúdo da tabela B e o conteúdo da tabela A que possua a Primary Key da tabela B como sendo sua Foreign Key.

Segue o exemplo usando a ferramenta Learn SQL:

Neste caso, ele retornou todos os valores da tabela admission, e apenas os valores da tabela patient que tem correlação com a tabela admission.

3.6.4 FULL OUTER JOIN

A função FULL OUTER JOIN retorna todas as linhas da tabela A e Todas as linhas da tabela B, independentemente se existe Primary Key de uma das tabelas como Foreign Key da outra.

Segue o exemplo usando a ferramenta Learn SQL:

Dessa vez, a consulta retorna tudo de todas as tabelas, tendo primary key da tabela A como foreign key da tabela B ou não, quando ele não encontrar valor correspondente, ele vai preencher com NULL.

Deixo o seguinte vídeo da comunidade DS como recomendação:

https://www.youtube.com/watch?v=mcsWvJKvo24

Nele você pode elevar o seu conhecimento sobre uniões para outro nível, e conseguir compreender o que não foi possível aqui neste artigo.

4. Conclusão e próximos passos.

Agora você é capaz de executar algumas consultas básicas no SQL, fazendo uso das funções agregadoras, funções de agrupamento, operadores de comparação, lógica booleana e funções de união. Existem outros assuntos mais avançados e importantes, como as Windows Functions, Subqueries e as Table Views, mas, como o intuito deste guia é ser algo rápido, para que você já consiga efetuar algumas queries (consultas), com o material apresentado aqui você já vai conseguir vencer a inércia e iniciar os estudos da linguagem SQL.

Irei escrever um artigo abordando as Subqueries, Table View e Windows Functions, assim que finalizá-lo estarei disponibilizando o Link aqui para você.

Abaixo deixo o link de um vídeo da Comunidade DS, do nosso colega Jonas Barleta, nele vocês encontrarão dicas excelentes para estudar SQL:

Como estudar SQL de forma prática? Se liga nessa dica!

--

--