Alura > Cursos de Data Science > Cursos de Engenharia de Dados > Conteúdos de Engenharia de Dados > Primeiras aulas do curso Consultas com SQL: Joins, Views e transações

Consultas com SQL: Joins, Views e transações

Preparando o ambiente e revisando SQL - Apresentação

Apresentando o curso e o instrutor

Olá! Bem-vindas e bem-vindos a este curso de consultas com SQL, joins (junções), views (visões) e transações. Meu nome é Vitorino Villa e vou te acompanhar nesta nova etapa do seu caminho de aprendizado em SQL.

Este curso é a continuação do conteúdo de SQL que você já estudou anteriormente. Se você chegou até aqui, significa que já teve contato com os fundamentos do SQL, entendeu a ideia de consultar dados em tabelas, aplicar filtros, ordenar resultados e trabalhar com comandos básicos.

Definindo objetivos, ambiente e aplicabilidade

Agora, nosso objetivo é avançar. Nós vamos nos aprofundar no uso de SQL para consultas mais avançadas, combinações entre tabelas, estruturas reutilizáveis, automação dentro do banco de dados e controle de transações. Em outras palavras, nós vamos sair do primeiro contato com SQL e nos aproximar de situações mais reais, semelhantes ao que uma pessoa profissional de dados, uma pessoa desenvolvedora ou uma pessoa engenheira de dados encontra no dia a dia de trabalho.

Ao longo das aulas, nós continuaremos utilizando o SQLite Online como ambiente de aprendizado. Essa escolha é importante: o SQLite Online permite praticar SQL diretamente no navegador, sem a necessidade de instalar ferramentas complexas na máquina. Isso facilita nosso aprendizado, principalmente porque o objetivo aqui não é gastar tempo configurando o ambiente, e sim entender os conceitos e praticar as consultas. Mesmo sendo um banco de dados simples, o SQLite é uma excelente ferramenta para estudar SQL.

Isso se deve ao fato de que muitos conceitos com os quais trabalharemos são fundamentais do SQL e dos bancos de dados relacionais. O que você aprender neste curso será útil quando tiver contato com outros bancos de dados mais robustos do mercado, como MySQL, PostgreSQL, SQL Server, Oracle e outros. Cada base tem suas particularidades, diferenças de sintaxe e recursos específicos, mas a base do SQL, a lógica das consultas e o raciocínio sobre dados relacionais permanecem exatamente os mesmos. Essa é a base de conhecimento que queremos fortalecer neste curso.

Introduzindo o estudo de caso e o plano inicial

Durante o curso, nós vamos trabalhar com um estudo de caso prático, utilizando o banco de dados de uma empresa bancária, a Suprema Bank. A ideia é aprender SQL não apenas observando comandos isolados, mas entendendo como esses comandos ajudam a resolver problemas reais dentro de um cenário concreto.

Na Aula 1, nós vamos preparar o banco de dados, revisar rapidamente o que é SQL, relembrar comandos importantes e conhecer o ambiente que será utilizado ao longo do curso. Também falaremos sobre o SQLite, suas características, suas vantagens e, claro, suas limitações.

Explorando junções entre tabelas

Em seguida, entraremos em um dos temas mais importantes dos bancos de dados relacionais: os joins (junções). Você vai entender como combinar informações que estão distribuídas em diferentes tabelas.

Revisaremos o conceito de banco de dados relacional, abordaremos chaves primárias e estrangeiras e praticaremos diferentes tipos de junções, como INNER JOIN, LEFT JOIN e RIGHT JOIN.

Aprofundando subconsultas, união e filtros após agregação

Em seguida, avançaremos para subconsultas. Nesta parte, aprenderemos a usar uma subconsulta dentro de outra consulta. Isso permite resolver problemas mais elaborados, criar filtros dinâmicos, calcular informações complementares e construir consultas muito mais poderosas.

Neste curso, trabalharemos com UNION e UNION ALL, além da cláusula HAVING, que é fundamental quando precisamos filtrar resultados que vêm após uma agregação.

Organizando consultas com cte e automatizando com views e triggers

Depois disso, conheceremos as CTE, isto é, as Common Table Expressions (Expressões de Tabela Comum). As CTE ajudam a organizar consultas mais complexas, tornando o código SQL muito mais legível e fácil de manter. Esse é um recurso amplamente utilizado quando precisamos montar relatórios, análises em etapas e consultas que combinam várias regras de negócio.

Na sequência do curso, após as CTE, falaremos sobre Views (Exibições) e Triggers (Gatilhos). As Views permitem salvar consultas no banco de dados e reutilizá-las como se fossem tabelas virtuais, o que ajuda a simplificar consultas complexas, padronizar o acesso aos dados e melhorar a organização do projeto. As Triggers permitem automatizar ações no banco de dados. Neste curso, entenderemos o conceito de Trigger e, em seguida, aplicaremos isso na prática, criando uma Trigger funcional para o banco de dados da Suprema Bank.

Estudando transações e conectando com objetivos profissionais

Por fim, estudaremos as transações de banco de dados. As transações são um tema fundamental para quem deseja trabalhar com bancos de dados de forma mais profissional. Nesse tópico, entenderemos o que é uma transação, por que ela é importante e como os comandos BEGIN, COMMIT e ROLLBACK ajudam a proteger a integridade dos dados. Veremos como uma transação pode ser usada junto com operações práticas, simulando situações em que várias ações devem ocorrer de forma segura — ou tudo ocorre corretamente, ou nada deve ser registrado de forma incompleta.

O objetivo deste curso é preparar você para se aprofundar cada vez mais em SQL e, principalmente, começar a pensar como uma pessoa profissional que trabalha com dados. Para quem deseja seguir na área de engenharia de dados, dominar SQL é fundamental. Antes de falar de Data Warehouses (Armazéns de Dados), integrações, processos de dados ou ferramentas mais avançadas com as quais uma pessoa engenheira de dados trabalha, é muito importante entender bem como os dados estão organizados e como consultá-los corretamente. É isso que construiremos aqui: uma base mais sólida, mais prática e mais próxima do uso profissional de bancos de dados relacionais.

Incentivando a prática e finalizando a introdução

Portanto, prepare seu ambiente, acompanhe os exemplos conosco, pratique bastante e não se apresse. O aprendizado de SQL vem da repetição, da prática e da compreensão do raciocínio por trás de cada consulta.

Vamos começar o curso. Agradecemos, um abraço e até o próximo vídeo.

Preparando o ambiente e revisando SQL - Revisando o que é SQL

Introduzindo a revisão de SQL

Revisando o que é SQL. Vamos começar?

Antes de avançarmos para consultas mais complexas, usando JOINs (junções), subconsultas e outras técnicas — que são o tema deste curso — queremos assegurar com vocês que o conhecimento de SQL, baseado nos outros cursos que vocês já fizeram e que são requisitos aqui, esteja sólido. Sabemos que vocês já viram SQL antes. Este vídeo é um ótimo momento para revisarmos SQL. E, se ainda não tiveram contato com SQL, melhor ainda, porque aqui vocês vão entender o essencial de forma simples e prática. Ainda assim, não recomendamos realizar este curso sem ter concluído os cursos anteriores.

Definindo SQL e suas operações

O que é SQL? SQL vem da sigla de Structured Query Language (Linguagem de Consulta Estruturada). Na prática, SQL é a linguagem padrão utilizada para trabalhar com bancos de dados relacionais.

Quando falamos em trabalhar, referimo-nos à manutenção dos dados: incluir, modificar, excluir, consultar e criar. Tudo o que fazemos em um banco de dados relacional é feito com SQL.

No dia a dia, utilizamos SQL basicamente para quatro operações, como indicado no slide:

Toda manipulação de dados em um banco de dados relacional passa por SQL. Podemos usar SQL diretamente na interface do banco de dados ou, se estivermos desenvolvendo com outra linguagem de programação, dentro de uma aplicação — seja uma aplicação para a web (web), um programa para instalar no computador, ou uma aplicação apenas de back-end (camada de servidor), um web service (serviço web), entre outras. Qualquer programa que associe informações a um banco de dados também utiliza SQL em algum ponto. Em resumo, sempre que formos manipular um banco de dados relacional, em algum momento escreveremos algo em SQL.

Destacando a natureza declarativa e comandos principais

Aqui temos um ponto importante: SQL não é uma linguagem de programação tradicional, como C# ou Java. SQL é uma linguagem declarativa. Isso significa que dizemos o que queremos, e não como fazer. Quem decide como executar o que queremos na base é o próprio banco de dados, ao interpretar nossos comandos SQL.

Agora, vamos revisar os principais comandos que usamos o tempo todo. O mais importante deles é SELECT.

SELECT serve para consultar dados. Em seguida, temos INSERT, UPDATE e DELETE, que utilizamos para manipular os dados. O foco deste curso, em sua maior parte, será ampliar nosso conhecimento para usar SELECT. Ao final, veremos algo relacionado a INSERT, UPDATE e também DELETE.

Demonstrando uma consulta SELECT básica

Vejamos este exemplo que está no slide. Ele mostra como consultamos informações do banco de dados. Sabemos que isso já foi visto no curso que é pré-requisito para este, mas vamos rever, na prática, este exemplo simples. Imaginemos que queremos listar o nome e a cidade das pessoas clientes que estão no estado de São Paulo, com o resultado ordenado por nome. Em SELECT definimos o que queremos ver. Em FROM indicamos em qual tabela devemos buscar os dados. Em WHERE informamos o filtro. E ORDER BY organiza o resultado. Essa é a estrutura básica de uma consulta usando SELECT na linguagem SQL.

Na prática, essa consulta em SQL ficaria assim:

SELECT nome, cidade
FROM clientes
WHERE estado = 'SP'
ORDER BY nome;

Esse comando seleciona as colunas nome e cidade (SELECT), obtendo os dados da tabela clientes (FROM), filtrando apenas os registros cujo estado seja SP (WHERE), e, por fim, ordenando o resultado alfabeticamente pelo nome (ORDER BY).

Explicando a organização dos dados e o pensamento em SQL

Outro ponto importante é entender como os dados estão organizados dentro do banco de dados. No banco de dados, temos tabelas. Cada tabela possui linhas que representam os registros e colunas que representam os atributos desses dados. É como se fosse uma planilha do Excel. A diferença é que os dados gravados em uma coluna de uma tabela SQL devem respeitar um único tipo de dado. Se a coluna armazena números, somente números podem ser salvos nela. Se armazena datas, apenas datas. Se armazena textos, apenas textos. E assim por diante, para diversos outros tipos de dados.

Se também trabalhamos com programação, vale considerar o seguinte: ao escrever um programa, por exemplo em C# ou Java, descrevemos passo a passo o que deve acontecer. Em SQL, não. Apenas escrevemos o que queremos obter. Essa diferença sutil muda bastante a forma como pensamos a linguagem de programação SQL.

Encerrando a revisão e apresentando os próximos passos

Neste vídeo, relembramos alguns conceitos iniciais de SQL. Caso algum detalhe visto aqui gere dúvidas, recomendamos revisitar os cursos anteriores, que são pré-requisitos deste, para relembrar esses conceitos. Essa é a base fundamental. A partir daqui, trabalharemos com consultas mais avançadas, principalmente as que envolvem JOIN.

No próximo vídeo, apresentaremos nosso caso de estudo e vamos montar o ambiente de trabalho que utilizaremos durante todo o curso. De acordo?

Pessoal, um grande abraço e até o próximo vídeo. [♪]

Preparando o ambiente e revisando SQL - Estudo de caso

Apresentando o estudo de caso Suprema Bank

Agora que revisamos no vídeo anterior os conceitos fundamentais de SQL, chegou o momento de dar um passo importante neste curso. A partir daqui, nós vamos trabalhar com um estudo de caso próximo à realidade, baseado em uma instituição financeira fictícia chamada Suprema Bank.

O Suprema Bank é um banco 100% digital, o que significa que oferece serviços financeiros de forma digital, com forte apoio em tecnologia e em dados. Mesmo sendo um banco digital, ainda trabalha com estruturas típicas do setor bancário, como clientes, contas, agências, movimentações e regras de negócio. O objetivo de uma empresa como o Suprema Bank é oferecer esses serviços financeiros de forma rápida, segura e escalável. Para isso funcionar, existe um elemento essencial: os dados. Cada cliente, cada conta, cada transação e cada vínculo com a agência bancária precisa ser armazenado, organizado e consultado com eficiência. É aí que entra o banco de dados.

O banco de dados será o coração do sistema do Suprema Bank. É no banco de dados que nós vamos garantir que as informações estejam organizadas, consistentes e disponíveis quando necessário. Sem um banco de dados bem estruturado, não existirá um sistema confiável para gerenciar o Suprema Bank.

Detalhando as entidades e tabelas do modelo

Agora, vamos entender as principais entidades dentro desse banco de dados. No modelo do Suprema Bank, temos elementos centrais como clientes, contas, agências, tipo de conta, status de conta e transações. Essas entidades representam o funcionamento da instituição e são representadas como tabelas dentro do nosso banco de dados.

Explicando relacionamentos e detalhando a tabela de transações

Aqui temos um dos pontos mais importantes: essas tabelas não existem isoladas; elas se relacionam entre si. Por exemplo, uma conta pertence a um cliente, está vinculada a uma agência, possui um tipo e também um status, e pode ter várias transações. Esses relacionamentos entre as tabelas são definidos pelo que chamamos de chaves. São essas chaves que permitem realizar consultas mais avançadas, como as consultas que envolvem junção de tabelas, que veremos nas próximas aulas.

Um ponto muito interessante a mencionar é uma característica relacionada a este modelo, que chamamos de tabela de transações. Vamos falar sobre ela. A tabela de transações registra o histórico financeiro das contas e traz campos como tipo, descrição, valor, data da transação e um campo chamado detalhes em JSON. Esse campo de detalhes, além da estrutura relacional tradicional, permite guardar informações complementares mais flexíveis, como origem da transação, risco e localização. Isso torna nosso estudo de caso mais rico e mais próximo do que acontece em sistemas reais.

Destacando a importância do desenho do banco e dos papéis

Antes de começarmos a escrever consultas, é fundamental entender o desenho do banco. Precisamos saber onde os dados estão guardados, em qual tabela e como essas tabelas se conectam entre si. Sem esse conhecimento prévio, até conseguimos escrever consultas, mas dificilmente escreveremos consultas boas.

Na prática, isso varia muito de empresa para empresa. Em algumas, a própria pessoa profissional que vai fazer a consulta no banco também desenhou o modelo. Em empresas médias e grandes, muitas vezes esses papéis são separados. Quem desenha o banco é a pessoa profissional DBA (administração de banco de dados). Quem faz a consulta é a pessoa analista de sistemas, a pessoa analista de dados ou a pessoa engenheira de dados.

Documentando o modelo com diagrama de entidades e relacionamentos

Por isso, é fundamental que exista uma documentação clara que mostre o desenho do banco. O DBA normalmente entrega para a equipe um diagrama do banco, como o que aparece no canto do vídeo, que é o diagrama do nosso estudo de caso. Esse diagrama mostra as tabelas com as descrições, os campos que compõem as tabelas, o que cada tabela representa, os tipos dos campos e as conexões entre as tabelas.

Esse desenho não é aleatório; ele é baseado nas regras de negócio da empresa que o banco de dados vai controlar. Quem desenhou esse banco analisou e entendeu as regras de negócio e, a partir disso, construiu o diagrama. Esse diagrama é conhecido como diagrama de entidades e relacionamentos. Ele mostra para a pessoa analista de dados onde estão as informações e nos ajuda muito a construir nossas consultas em SQL.

Preparando o ambiente e alinhando expectativas do curso

Este é exatamente o papel deste vídeo no curso. Já conhecemos o estudo de caso e estamos prontos para preparar nosso ambiente de trabalho. Vamos trabalhar esse banco de dados no ambiente do SQLite.

A partir daqui, já saberemos quais são as tabelas com as quais vamos trabalhar, os tipos e as informações de cada uma. Isso facilitará muito nossa vida quando começarmos a fazer as consultas.

Ao longo do curso, sempre que formos escrever uma consulta, devemos ter em mente que não estaremos escrevendo somente SQL; estaremos explorando um modelo de dados baseado em um modelo de negócio. Quanto melhor entendermos esse modelo de dados, melhores serão nossas consultas.

Muito obrigado e até o próximo vídeo.

Sobre o curso Consultas com SQL: Joins, Views e transações

O curso Consultas com SQL: Joins, Views e transações possui 387 minutos de vídeos, em um total de 64 atividades. Gostou? Conheça nossos outros cursos de Engenharia 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 Engenharia de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas