Olá! Meu nome é Victorino Villa e será um enorme prazer acompanhá-lo ao longo deste curso.
Audiodescrição: Victorino é um homem de pele clara, com cabelo curto e barba. Ele veste uma camisa social e está em um ambiente de escritório com uma estante ao fundo.
Nosso objetivo é levá-lo desde o SQL padrão, o SQL ANSI, até o uso prático e avançado do MySQL, sempre com foco em como o banco de dados realmente funciona no dia a dia da pessoa engenheira de dados.
Vamos começar revisando os fundamentos, a instalação e a configuração do MySQL, além de esquemas, tabelas, tipos de dados e integridade relacional. Em seguida, entraremos na leitura e agregação de dados, entendendo como extrair informações de forma correta e eficiente.
Depois, avançaremos para um dos pilares do SQL moderno: os joins (junções), explorando desde os casos mais simples até consultas mais complexas, envolvendo múltiplas tabelas. Também entenderemos quando e por que usar subconsultas e CTEs (Common Table Expressions ou Expressões de Tabela Comum), aprendendo a organizar consultas complexas sem perder a clareza e o desempenho.
Entramos no mundo das transações, concorrência e isolamento, compreendendo como o MySQL garante consistência em ambientes reais. Em seguida, exploraremos a manipulação de dados mais avançada. Veremos as funções de cadeias, numéricas, datas, horas e, claro, JSON no MySQL, incluindo indexação e colunas geradas.
Por fim, abordaremos os temas que diferenciam quem apenas escreve SQL de quem pensa como uma pessoa engenheira de dados: visões, funções, colunas geradas, o otimizador de consultas, leitura de planos de execução, índices e concluiremos com boas práticas de desempenho.
Ao final deste curso, não apenas saberemos escrever consultas que funcionam, mas também entenderemos como o MySQL executa essas consultas e como torná-las mais eficientes, seguras e escaláveis.
Preparemos o ambiente e acompanhem-nos nos exemplos práticos. Vamos começar mais um curso. Até mais!
Bem-vindos. Se chegamos até aqui, provavelmente já completamos o curso de SQL básico e, muito provavelmente, utilizamos o SQLite como ambiente de prática. Isso é excelente, pois o SQLite é simples, portátil e perfeito para conhecermos a linguagem SQL. Agora, vamos começar a entrar no mundo real, o mundo das bases de dados que as empresas realmente utilizam em produção. É aqui que entender a evolução da linguagem SQL se torna fundamental.
Antes de falarmos sobre uma SQL específica, precisamos compreender o ponto de partida, onde tudo começou: o chamado SQL11. O SQL11 é um padrão base que define o núcleo da linguagem SQL, para que todas as bases de dados possam, de alguma forma, falar o mesmo idioma. O SQL11 define o que toda implementação de base de dados que vai usar a linguagem SQL deve ter, como, por exemplo, padronizando os comandos SELECT, INSERT, UPDATE, DELETE, JOINs (junções) básicos, funções essenciais, entre outros.
No entanto, o SQL11 não define tudo, e é importante que saibamos disso. O padrão SQL11 não cobre a parte de armazenamento, índices específicos, funções avançadas, otimizações, alguns formatos de data e muitos outros detalhes de desempenho. É precisamente aí que cada base de dados cria seu próprio dialeto SQL. Cada base de dados nasceu com objetivos um pouco diferentes.
Estamos apresentando aqui no slide algumas das bases de dados mais utilizadas no mercado que usam SQL como linguagem nativa. Começamos pelo MySQL, que foi criado para ter velocidade e para a web. O PostgreSQL nasceu para ser uma base de dados robusta e íntegra. Temos o SQL Server, que atende principalmente aos ambientes Microsoft. O Oracle é orientado a missões críticas e transações muito complexas. E o SQLite, que já aprendemos, foca em leveza e simplicidade, sem necessidade de servidor.
Todas essas bases de dados que mencionamos falam SQL, mas cada uma com suas próprias funções, tipos, otimizações e alguns comandos proprietários. É como se fossem dialetos diferentes, mas do mesmo idioma. Todos se entendem, mas cada base de dados tem suas particularidades.
Lembremos do SQLite, que já aprendemos. Ele é fantástico para aprender, mas possui limitações importantes, especialmente se quisermos usá-lo como pessoas engenheiras de dados em ambientes reais. Ele não possui um servidor real, não tem autenticação de usuários, permissões, não faz replicação nem particionamento.
SQLite não possui motores otimizados para lidar com grandes volumes de dados, tampouco controles avançados de concorrência, que permitem que dois usuários acessem a mesma informação no banco de dados simultaneamente. Além disso, SQLite não oferece suporte para tipos e funções avançadas, como JSON nativo e datas, e é extremamente limitado em termos de auditoria. É uma ótima ferramenta para começar e ter o primeiro contato com SQL, mas é insuficiente para avançar mais.
Por outro lado, o MySQL surgiu em meados dos anos 90 e rapidamente se tornou o banco de dados preferido para desenvolvimento web dentro da famosa stack LAMP. A sigla LAMP representa Linux, Apache, MySQL e PHP. Muitas aplicações foram desenvolvidas usando esses quatro produtos em conjunto. Posteriormente, o MySQL passou pela Sun Microsystems e foi adquirido pela Oracle. Nesse momento, surgiu um fork de desenvolvimento chamado MariaDB, pois havia o receio de que a Oracle tornasse o MySQL um banco de dados proprietário. No entanto, isso não ocorreu, e ele continuou sendo um banco de dados aberto. A Oracle acabou criando uma versão Enterprise para quem deseja pagar e ter um suporte diferenciado. Em termos de uso do software, as versões disponibilizadas pela Oracle, tanto a Community, que é livre, quanto a Enterprise, são o mesmo produto.
O MySQL evoluiu bastante após ser adquirido pela Oracle. Ele passou a ter um excelente desempenho, sua administração se tornou mais simples, ganhou suporte massivo para a nuvem e herdou uma comunidade gigantesca de pessoas que já utilizavam esse banco de dados. É um banco de dados que já foi testado em milhares, senão milhões, de implementações em diversas empresas. Atualmente, o MySQL está presente em sistemas transacionais de alto volume, em processos de ETL, onde transferimos dados de uma fonte para um destino, sustentando APIs e microsserviços, e até mesmo lidando com dados semiestruturados, graças ao tipo JSON. O MySQL também possui funções de data e tempo extremamente poderosas, utilizadas em auditorias e no rastreamento de eventos, o que é fundamental para a engenharia de dados.
Neste momento, já entendemos o que é o SQL ANSI, por que cada banco de dados tem seu próprio dialeto, por que deixamos o SQLite para trás e por que o MySQL é o ambiente perfeito para avançarmos no uso do SQL. Encerramos por aqui; no próximo vídeo, vamos colocar a mão na massa pela primeira vez. Vamos instalar o MySQL, configurar o ambiente e conhecer as ferramentas de acesso. Vamos em frente? Até o próximo vídeo.
No vídeo anterior, entendemos por que SQL é tão importante no mundo real e por que será nosso ambiente principal daqui em diante. Agora chegou o momento de criar esse ambiente. Diferente do SQLite, aqui realmente temos um servidor de verdade com autenticação, porta, usuário e permissões. Portanto, antes de iniciar qualquer instalação, precisamos reforçar uma diferença fundamental. SQLite é apenas um arquivo local. Não existe servidor, processo em execução ou usuário. Em contrapartida, MySQL é um servidor de banco de dados completo. Ele abre portas de rede, gerencia memória, autentica usuários, controla permissões e mantém processos trabalhando o tempo todo. Será a primeira vez que teremos acesso a um banco de dados realmente ativo, que funciona como um serviço.
Precisamos escolher qual opção de instalação usar, dependendo do nosso sistema operacional. Podemos instalar MySQL no Windows, macOS, Linux ou Docker, que é um contêiner fechado onde o banco de dados já está dentro desse contêiner. É muito utilizado por pessoas engenheiras de dados, mas no curso não será necessário. O mais importante é saber que vamos instalar dois produtos: um MySQL Server 8 e um MySQL Workbench. O MySQL Server será, claro, o servidor do banco de dados. E o Workbench será o que chamamos de IDE. O IDE é um ambiente de desenvolvimento integrado, projetado especialmente para trabalhar com um banco de dados. O IDE não serve para programar aplicações completas, como por exemplo um VSCode, mas sim para criar, consultar, administrar e modelar bancos de dados de forma visual e produtiva. Existem vários IDEs que se conectam ao servidor MySQL, mas neste curso vamos usar o MySQL Workbench, que é o IDE oficial do MySQL.
Durante a instalação, queremos destacar três pontos críticos. Primeiro, precisamos configurar durante a instalação a porta de conexão. Usaremos a porta 3306, que é o padrão. Segundo, teremos que especificar uma senha para o usuário root. Esse usuário root é um usuário mestre, que pode fazer tudo no banco de dados. E terceiro, precisaremos escolher o plugin de autenticação. O plugin de autenticação é a forma como o MySQL vai armazenar dentro do banco de dados as senhas. Por padrão, vamos escolher o plugin Caching Shadow Passwords, que é mais seguro. Mas existem outros plugins que aparecem como opção durante a instalação. Não se preocupem muito com isso agora. Em breve falaremos mais sobre isso.
Vamos pausar aqui a apresentação e proceder com a instalação do ambiente. Estamos no navegador, vamos buscar por MySQL Downloads. No primeiro link, MySQL Downloads, na página principal, vamos até o final, onde temos a opção MySQL Community GPL Downloads. Clicamos sobre ela e, dentro das opções de download disponíveis, escolhemos MySQL Installer for Windows. Clicamos nele, escolhemos a versão, sempre a versão 8 e a mais atual que encontrarmos, e vamos baixar o instalador completo. Clicamos no botão de download. Haverá uma página para iniciar sessão na MySQL Community, mas não é necessário. Podemos escolher a última opção: "No thanks. Just start my download." Clicamos nessa opção, escolhemos o diretório onde vamos guardar o download e aguardamos até que o arquivo de instalação seja baixado. Verificamos que já foi baixado na máquina e o executamos. Isso instalará o MySQL Installer, que é um programa que será instalado na máquina, e é através dele que fazemos a instalação dos produtos MySQL. Vamos aguardar um pouco. Pronto.
Aqui temos a página principal do MySQL Installer. Vamos escolher a opção custom, ou seja, faremos a instalação personalizada. Vamos selecionar os produtos que desejamos instalar. Clicamos em next. No topo, em MySQL Service, vamos escolher o servidor. Em aplicações, selecionamos o MySQL Workbench. Clicamos em next. Instalamos nos diretórios padrão da nossa máquina. Clicamos em next novamente. Ao clicar em execute, vamos instalar os dois produtos. Pronto, clicamos no botão execute. Instalamos o MySQL Server 8 e o Workbench. Vamos clicar em next. Clicamos sobre o MySQL 8 que está aqui. Clicamos novamente em next. Manteremos a porta 3306 como a porta de acesso. Não vamos modificar nenhuma configuração aqui. Clicamos em next.
Aqui temos duas formas de armazenamento da senha dentro do banco de dados MySQL, ou seja, o plugin de autenticação. Vamos usar a padrão, que é SHA-256, a que está no topo. Clicamos em next. Vamos inserir a senha do usuário root. Escolham, claro, uma senha fácil para não esquecerem. Vamos clicar em add user. Não, não é necessário. Neste caso, isso seria se quiséssemos adicionar um usuário do ambiente operacional para se conectar ao MySQL. Vamos utilizar o usuário root, então não é necessário clicar nesse botão. Clicamos em next. Aqui está o nome do serviço que será criado em nosso computador. Vamos manter esse nome. Next. Aqui também vamos dar acesso total ao serviço que está sendo executado. Next. E vamos clicar em execute. Pronto. Tudo foi configurado. Vamos clicar em finish. Clicamos novamente em next e finish.
Muito bem. O próximo passo agora é configurar o MySQL Workbench. Vamos procurar o Workbench. Já está aqui, instalado em nossa máquina. Aqui temos as conexões que vamos usar. Notem que em nossa máquina há várias conexões já criadas. Por quê? Porque já usamos esta máquina com MySQL para fazer outras conexões. Se instalamos isso em uma máquina limpa, não veremos nenhuma conexão aqui. Então, clicamos neste botão de myzine. Vamos criar uma conexão com um nome determinado. Chamaremos de localhost. O servidor será 127.0.0.1, que é nossa própria máquina. A porta 3306. O usuário root. Clicamos neste botão, store in valve, e inserimos a senha do usuário root que inicializamos na instalação. Correto? Bem, clicamos em OK. Testamos a conexão. Sucesso. Clicamos novamente em OK. Teremos aqui criada nossa conexão para nosso servidor. Clicamos aqui e nos conectamos ao MySQL.
Algo que podemos fazer aqui antes de continuar é, nesta área de query, verificar qual é a versão do MySQL que estamos usando. Vamos inserir o comando SELECT VERSION(). Pressionamos "Enter" e clicamos neste botão para executar o comando. Então, veja, estamos com a versão 8.0.44. Assim, nosso servidor está instalado, nosso ambiente está pronto para trabalharmos.
Agora que nosso ambiente está funcionando, é importante entender onde exatamente o MySQL aparecerá no dia a dia de uma pessoa engenheira de dados. Pode ser fonte de ingestão de dados, destino intermediário, por exemplo. Pode ser usado como um back-end transacional de sistemas. Ou o MySQL pode ser uma base para APIs e microserviços. E é nesse momento que SQL deixará de ser teoria e se tornará prática real. Porque executar consultas em um arquivo, como no SQLite, não representa a vida real. Executar em um servidor, isso sim.
Pronto, já temos um ambiente MySQL instalado, configurado e funcionando. A partir do próximo vídeo, começaremos a usar este ambiente para criar bancos de dados, tabelas, chaves primárias, chaves estrangeiras e finalmente entender como funciona a estrutura do MySQL. Está bem? Então, nos vemos no próximo vídeo. Até mais!
O curso Engenharia de Dados: Do SQL ANSI ao Mundo Real com MySQL possui 441 minutos de vídeos, em um total de 89 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:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Programação, Data Science, Front-end, DevOps, Mobile, Inovação & Gestão, UX & Design, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Catálogo de tecnologia para quem é da área de Marketing
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais de forma ilimitada.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.