Oi, gente.
Meu nome é Victorino Vila e a gente vai dar continuidade ao nosso treinamento de SQL com MySQL.
A gente começou essa sequência de treinamentos dando uma introdução ao SQL e ao banco MySQL justamente para quem nunca viu SQL na vida, e depois a gente partiu para um treinamento onde a gente ensina como é que a gente consulta dados de um banco de dados.
Nesse treinamento agora a gente vai dar ênfase em manipular os dados, ou seja, a gente vai aprender a gerenciar os dados que estão dentro do nosso banco.
Inicialmente, para fazer isso, a gente vai começar a falar um pouquinho sobre as entidades que existem dentro de um banco de dados, e depois que a gente conhece todas essas entidades a gente passa para a modelagem.
Como é que de um problema real eu desenho o banco de dados que eu vou trabalhar? A gente vai dedicar um vídeo especial sobre isso.
Finalmente, com o meu banco de dados já projetado, eu tenho que botar a mão na massa, então, a gente vai aprender a criar um banco de dados e criar as tabelas desse banco de dados.
Não somente as tabelas, mas todas as entidades que estão associadas a uma tabela.
E com o nosso banco pronto a gente vai ver como é que pelo MySQL Workbench a gente consegue visualizar esse banco de maneira gráfica.
Essa visualização é muito importante, não somente caso eu queira consultar dados do banco, mas também se eu quiser manipular os dados do banco.
Bem, então nesse ponto do treinamento, quando o banco de dados já tiver sido criado, a gente vai aprender a incluir informação lá dentro.
Como eu incluo dados dentro do meu banco? Através de linha de comando.
Como eu faço isso em lote, ou seja, uma linha de comando incluindo vários dados ao mesmo tempo? Incluir dados vindo de tabelas de outros bancos de dados ou até mesmo de tabelas externas ou arquivos externos, que é o caso do exemplo que eu vou estar mostrando nesse treinamento.
Ok, nesse ponto a gente já vai ter aprendido a incluir dados.
O que já está em um banco de dados eu posso querer modificar.
Então, a gente vai aprender a alterar os dados de um banco, seja por comando, seja também alterar esses dados através de lotes, ou seja, de uma grande quantidade de dados ao mesmo tempo.
Depois, claro, se a gente já aprendeu a incluir e alterar, a gente tem que aprender, também, a excluir dados, e é o que nós vamos aprender, também, nesse treinamento: a excluir informações que já existem dentro do meu banco de dados.
Ok, depois que a gente aprendeu a incluir, alterar e excluir, a gente vai falar sobre um ponto importante chamado transação.
O que é uma transação no MySQL e como é que eu consigo, através da transação, recuperar dados que foram manipulados ou confirmar o gerenciamento de dados do banco? Depois nós vamos falar, também, sobre um tipo de campo muito especial, chamado auto incremento, e, finalmente, nós vamos falar sobre um mecanismo chamado Trigger, que é um mecanismo que permite disparar alguns comandos em SQL caso a minha tabela sofra algum tipo de modificação.
Está legal? Bem, isso aí é, por alto, o que nós vamos ver nesse treinamento.
Então, espero que vocês gostem.
Então, vamos seguir em frente.
Um grande abraço, até já.
Vamos começar? A primeira coisa que a gente precisa fazer é ter nosso ambiente para pode fazer os exercícios práticos desse treinamento, e a primeira coisa que a gente precisa ter é o MySQL instalada na nossa máquina.
Se você está fazendo todos os treinamentos na ordem e a máquina que você está usando agora é a mesma que você usou no curso passado, ou seja, você tem o MySQL, o MySQL, o WorkBench também instalado, então você não precisa nem seguir mais esse vídeo.
Esse vídeo é mais para que se você tem seguido a carreira de MySQL, mas, por algum motivo, está usando um computador vazio, em branco, onde você não tenha mais o ambiente instalado.
Então, você tem que reinstalar o seu MySQL, ou então, caso você tenha começado esse treinamento direto, sem ter passado pelos outros, está legal? Então, se você já tem um MySQL na sua máquina, pode dar pause aí; se você não tem, então eu vou fazer o seguinte: vou colocar, agora, um outro vídeo onde eu mostro a instalação do MySQL, está legal? Então, vamos lá começar.
Vamos, então, fazer a instalação do MySQL.
Eu posso fazer essa instalação tanto no ambiente Windows quanto Linux.
O caso, aqui, devido ao equipamento que eu tenho à disposição para fazer esse treinamento, eu vou fazer a instalação, nesse vídeo, usando o sistema operacional Windows, e, também, nós vamos instalar um IDE chamado WorkBench.
Bem, o que é um IDE? É um programa que permite que a gente possa visualizar os objetos do banco de uma maneira mais gráfica.
Quando a gente vai trabalhar com MySQL, por exemplo, tudo pode ser feito por linha de comando, mas um IDE fica interessante a gente estar utilizando, porque aí a gente pode ter várias consultas na mesma tela, olhar as tabelas de maneira gráfica, e o WorkBench é um IDE próprio do MySQL, ou seja, é a MySQL que fornece o WorkBench.
Isso e vários outros IDEs para MySQL no mercado, mas a gente vai usar o da própria MySQL, e também o WorkBench pode ser instalado tanto em ambiente Windows quanto ambiente Linux.
No caso, aqui, eu vou fazer a instalação no Windows, e, inclusive, o pacote de instalação já instala não somente o servidor MySQL, mas, também, o IDE WorkBench.
Então, vamos começar.
Eu vou abrir aqui o browser e vou procurar por MySQL Downloads.
Então, tem aqui o link MySQL Downloads e aqui nesse link eu vou procurar por essa opção aqui: MySQL Community Edition (GLP).
Lembra? Eu tenho a versão gratuita e a paga, nós vamos usar a gratuita.
Então, eu vou clicar aqui no link Community (GLP) Downloads e eu vou procurar aqui essa opção.
No meu caso, eu vou estar usando a MySQL on Windows (Installer & Tools).
Eu tenho aqui vários links, por exemplo, se eu quisesse só instalar o WorkBench eu escolheria esse link aqui, mas eu vou selecionar aqui a opção MySQL Installer.
E aqui embaixo eu tenho as opções da instalação que eu quero fazer, então, eu vou estar escolhendo essa aqui: (mysql-installer-web-community-8.0.15.0).
Não necessariamente a versão que você vai estar instalando é a mesma que está aqui no vídeo, depende da época em que você esteja assistindo esse treinamento, porque as versões de MySQL ficam mudando com uma certa frequência.
No caso, se você encontrar uma versão mais atual, não tem problema, instale a que ele estiver sugerindo como sendo a última versão.
Vou clicar aqui em download e aí ele vai me pedir pra fazer um login no site da Oracle.
Lembra que eu falei? A Oracle comprou a Sun Microsystems e a Sun era dona do MySQL, então a Oracle passou a ser dona do MySQL.
Para a gente pode instalar, baixar qualquer produto Oracle a gente precisa se logar usando uma conta da Oracle.
Se você não tem conta da Oracle, nenhum problema, você vem aqui, clica em Sign Up, aqui do lado, no botão verde, e faça um cadastro.
Você vai colocar lá o nome, um e-mail, uma senha, e só isso, não precisa botar cartão de crédito, não precisa pagar nada.
No caso, eu já tenho um login, então eu vou clicar no botão login.
Vou colocar aqui meu usuário e vou colocar aqui a minha senha.
Vou clicar em Iniciar Sessão.
E aí vou clicar agora no botão Download Now.
Bem, ele vai fazer o download de um arquivo pequeno, porque, depois, tudo que eu for instalar ele vai fazer o download da internet no momento da instalação.
Vou clicar, então, no programa aqui MySQL Installer, aí ele vai dizer uma opção opcional se eu quero já checar se existem updates para serem feitos, para que a gente possa fazer a instalação agora não somente da versão que eu escolhi, mas, também, dos updates mais atuais.
Eu vou clicar Yes, nenhum problema de fazer essas instalações desses upgrades.
Ele está fazendo aqui o download do instalador com os upgrades.
Pronto, comecei a instalação, vou aceitar os termos da licença.
Aqui, eu vou escolher a opção Developer Default, que aí eu vou instalar o servidor e uma série de conectores, tudo que é preciso para o MySQL estar funcionando.
Vou clicar em Next.
Aqui se eu quero fazer um conector com o Python, mas, no caso, não é o meu objetivo, eu vou dar Next. Clico aqui, Yes, e aí eu tenho aqui tudo que ele vai baixar.
Note que aqui no meio eu já tenho a instalação do Workbench, ou seja, eu não vou precisar, depois, ter que instalar o WorkBench de forma separada.
Vou clicar aqui, Execute, e ele vai começar a fazer o download dos módulos que vão ser usados para a instalação.
Então, eu vou fazer o seguinte: vou parar o vídeo um instantinho aqui, quando esse download terminar eu volto para a gente continuar a instalação, tá bom? Bem, acabou o download aqui dos componentes, vou continuar, então, a instalação.
Clico aqui em Next, Next novamente, aí eu tenho aqui dois tipos de estrutura de bancos de dados que eu vou estar trabalhando.
Eu vou estar usando essa primeira aqui: Standalone MySQL Server / Classic MySQL Replication, ok?
Tem aqui as configurações de porta, forma de comunicação entre cliente e servidor, a gente vai manter o que está aqui.
Aqui é a forma com que eu vou usar a minha autenticação.
Tem dois tipos: uma que é a senha criptografada, que vale pro MySQL 8.0, que é a versão atual, e uma que usa a segurança dos MySQL mais antigos.
Eu vou manter a primeira opção selecionada.
Aqui eu vou colocar a minha senha.
Ele não gostou muito da minha senha, disse que ela está fraca, mas não tem problema.
Vou clicar aqui em Next.
Deixa eu voltar aqui um instante, eu não vou criar outros usuários por enquanto que eu vou estar usando esse mesmo usuário que a gente chama de root.
O que é o usuário root? É o usuário padrão do banco MySQL, e a gente vai usar esse usuário para acessar o banco e tal, utilizando os nossos exercícios práticos.
O que eu fiz aqui foi definir a senha desse usuário root.
Não esqueçam dessa senha, hein.
Next.
Aqui é o nome do serviço, porque o MySQL vai ser um serviço do Windows que vai ser sempre inicializado quando a máquina, por exemplo, for dar um boot, alguma coisa.
Sempre quando a máquina voltar, o banco vai estar no ar também.
E ali embaixo a gente seleciona qual é o usuário que vai gerenciar esse serviço.
Aqui nós não vamos mudar nada.
Tem aqui tudo que ele vai executar durante a instalação, eu clico Execute, e aí ele vai começar a fazer a instalação, inicializar o banco de dados, o servidor, e assim por diante, tá bom? Então, eu vou parar o vídeo um instantinho e volto assim que todos os passos estiverem... opa, olha, achei que ia demorar, acabou rápido, então eu vou manter, não vou nem parar o vídeo, não.
Vamos lá, vou clicar Finish, vou dar um Next.
Ele agora vai fazer algumas outras configurações.
Por enquanto, eu não vou estar fazendo nada, clico em Finish, Next novamente.
Temos aqui a conexão com o servidor, eu vou colocar aqui a minha senha.
Posso até usar aqui um Check para saber se a conexão é feita.
Ó, conexão entre cliente e servidor foi feita com sucesso, e vou executar essa segunda parte da instalação.
Agora sim eu vou parar o vídeo, eu não sei quanto tempo vai demorar... ah, não, olha só, me pegou de novo, eu achei que ia demorar, foi rápido.
Vou clicar aqui em Finish, ele vai fazer novas configurações, e aqui, ao dar esse último Finish, ele já vai me inicializar o WorkBench, que é aquela interface de IDE para a gente manipular o banco de dados MySQL.
Vou clicar aqui em Finish.
Essa tela que ele abriu aqui a gente pode ignorar, e, note: automaticamente ele já me criou uma conexão local da minha máquina, ou seja, a minha máquina tem um servidor, mas tem um cliente também, e o WorkBench já vem com essa conexão previamente configurada.
Se eu clicar aqui nesse quadradinho ele vai perguntar a senha do meu usuário root.
Vou colocar aqui, vou salvar a senha para não precisar ter que colocar a senha toda hora.
E aí pronto, eu entrei aqui e eu tenho aqui já o meu WorBench já configurado.
Demonstrar aqui alguns códigos que talvez você não vão ver, mas é porque a minha máquina já tinha, antes de gravar esse treinamento, o MySQL instalado e tinha aí na memória alguns scripts de SQL já salvos.
O que você vai ter, caso você tenha feito todos os passos de maneira correta, é essa tela aqui do MySQL WorkBench.
Então, pronto, já estamos preparados para começar o nosso treinamento de SQL, está legal? Então tá, gente. É isso aí, um abraço para vocês, até o próximo vídeo.
Como esse treinamento envolve a manipulação de dados, a primeira coisa que a gente vai aprender é a criar o banco de dados e as entidades dele.
Logo, a gente precisa conhecer que entidades são essas, por isso eu vou fazer uma breve revisão, não somente sobre a parte de entidades, que compõe um banco MySQL, mas também os seus tipos de dados, porque essa informação ela é muito importante quando a gente for criar o nosso esquema, ok?
Bem, então, basicamente, um banco MySQL possui dentro da sua estrutura do seu servidor um conjunto de uma entidade que nós chamamos de banco de dados.
Ou, também, dentro do MySQL chama banco de dados de schema.
O banco de dados tem, lá dentro, aí sim, diversas entidades, que auxiliam no armazenamento da informação, ou seja, a informação será armazenada dentro do banco de dados, dentro de diversas entidades que são mencionadas dentro dele.
A entidade básica onde a informação fica armazenada, onde o dado está armazenado, a gente chama de Tabela.
Então, um banco de dados pode ter uma ou mais tabelas, e cada tabela tem dados armazenados dentro dela.
A tabela é como se fosse - fazendo uma analogia - uma planilha de Excel, onde eu tenho linhas e colunas.
A única diferença é que lá no Excel, quando a gente cria uma planilha, a gente cria uma área vazia de infinitas colunas e infinitas linhas.
No banco de dados, quando a gente cria uma tabela, na hora de criar a gente já tem que dar algumas informações específicas daquela tabela.
A informação mais importante são os campos.
É como se eu já criasse a planilha de Excel dizendo: "olha, essa planilha vai ter só 20 colunas", eu dou nome para cada coluna e digo que cada coluna só pode ter um tipo de dado.
Se eu digo que a terceira coluna só pode ter data, eu só posso colocar data naquela coluna.
É aí que há a diferença da tabela para uma planilha de Excel.
Então, a tabela é uma planilha de Excel com colunas pré-definidas, cada coluna nomeada e com um tipo específico, e o número de linhas, aí sim, por enquanto ela começa vazia e aí eu posso acrescentar linhas no decorrer da manipulação do dado, e sempre, em cada coluna, o dado que está lá nunca muda.
Então, como eu falei, nós temos campos, que são as colunas, e registros, que são as linhas.
Tanto faz eu chamar coluna ou campo, registro ou linha, eu às vezes uso uma coisa, às vezes uso outra, mas os dois termos estão corretos.
A tabela tem também uma informação chamada Chave Primária.
O que é uma chave primária? Eu especifico uma ou mais colunas da tabela, e se eu disser que essas colunas são chaves primárias da tabela, eu não vou poder ter nenhuma linha dentro da minha tabela cuja chave primária se repita.
Se isso acontecer, o banco não vai deixar eu colocar essa informação.
Por exemplo, se eu tiver uma tabela de clientes e a chave primária é o CPF, eu não vou poder ter nenhum cliente na minha tabela cujo CPF seja repetido.
Então, a chave primária é uma entidade muito importante dentro da tabela.
Agora, sim, a tabela também tem uma coisa chamada Chave Estrangeira.
É uma ligação que a tabela faz com outra tabela.
Lembrando, nós estamos trabalhando com banco de dados relacionais, e eles possuem relações, as tabelas se relacionam entre si, e o que liga uma tabela à outra? É a chave estrangeira.
Normalmente, a chave estrangeira liga campos de duas tabelas diferentes do mesmo tipo, não precisam ter o mesmo nome, mas o tipo, sim.
A partir do momento que a gente cria a chave estrangeira há uma hierarquização do conteúdo das colunas que são chaves estrangeiras.
Normalmente, quando a gente cria a chave estrangeira a gente tem uma tabela pai e uma tabela filho.
Há uma direção da chave estrangeira, de tal maneira que, na tabela filho, eu só vou poder ter elementos que estão previamente cadastrados na tabela pai.
Fazendo a analogia do exemplo do cliente, se eu tenho uma tabela de clientes cuja chave primária é o CPF e tenho uma tabela de vendas onde eu tenho a informação de cada venda que é efetuada na minha empresa, na linha da tabela de vendas eu tenho também o cliente.
Se eu crio uma chave estrangeira entre o cliente da tabela de clientes e o cliente da tabela de vendas, o que acontece? Eu só vou poder vender com clientes que existam na tabela cadastral.
Também há uma estrutura muito importante na tabela, chamada Índice.
O índice é como se fosse um cadastro de posições dos elementos dentro da tabela, de tal maneira que quando eu vou buscar um elemento na tabela, se eu tiver um índice eu acho esse elemento mais fácil, porque, ao invés de eu percorrer a tabela toda, linha a linha, eu vou no índice, procuro o elemento, e vai dizer: "olha, esse cara está na posição 25".
Aí eu volto para a minha tabela e acho o elemento que eu quero buscar.
Quando a gente cria uma chave primária e uma chave estrangeira, automaticamente o MySQL já cria um índice para esses dois campos.
E por que? Porque, claro, chave estrangeira, chave primária, vão fazer com que o banco busque toda hora esses elementos nessas tabelas, justamente pra saber se há um relacionamento íntegro.
Por exemplo, na chave primária, toda vez que eu inserir um registro, ele tem que buscar na tabela para saber se aquele registro já existe ou não, para saber se ele deixe incluir ou não.
Se aquele campo que eu estou incluindo tem uma chave estrangeira, eu tenho que ir na tabela pai buscar o cara e saber se ele realmente existe, então, há um trabalho muito de buscas quando o cara está envolvido em uma chave primária ou estrangeira, por isso o MySQL já cria o índice, porque vai facilitar esse trabalho.
Ok, então meu banco tem várias tabelas, dentro da tabela eu tenho chaves primárias, tenho campos, tenho os registros, e aí as tabelas podem se organizar em esquemas.
No MySQL o esquema e o banco de dados é a mesma coisa, mas essa transparência está mostrando grupos de tabelas diferentes porque em outros bancos de dados relacionais há uma diferenciação entre o esquema e o banco de dados.
O banco de dados também pode ter o que a gente chama de uma View.
A view é uma tabela lógica que é feita através da construção de uma consulta.
Então, eu tenho uma consulta complexa, que já faz vários cálculos, e aí eu transformo essa consulta em uma view e eu consigo acessar essa view como se ela fosse uma tabela, mas, na verdade, ela é uma tabela lógica.
Toda vez que eu consultar a view, a consulta que está lá vai ser resolvida.
Claro que uma view tem uma performance muito menor do que eu fazer a consulta direto em uma tabela, mas as views são muito importantes quando eu quero disponibilizar parte do meu banco para alguém externo, por exemplo, eu construo uma view, nessa view eu limito aquilo que aquela pessoa externa pode ver, e aí lá no usuário do meu banco de dados eu digo: "olha, esse usuário só consegue enxergar tal view".
Ok, então eu tenho a minha consulta e aí a minha consulta retorna uma série de valores diferenciados dentro dela, e aí ela pode ter, também relacionamento entre si.
E aí, claro, a consulta, depois, se eu transformar ela em uma view, ela será vista como se fosse uma tabela cujo o conteúdo é o mesmo que é o resultado da consulta.
Dentro do banco de dados a gente também tem stored procedure.
O que são? No caso do MySQL tem, inclusive, esse mesmo nome.
São programas estruturados, usando a linguagem SQL, que eu posso fazer para operações mais complexas.
O SQL é uma linguagem não muito estruturada, ele não tem IFs, ELSEs, eu não consigo fazer programas fazendo desvios.
O padrão ANSI é assim, mas cada banco de dados disponibiliza para o seu usuário uma outra linguagem estruturada que utiliza comandos de SQL diretamente, que faz com que eu possa construir coisas rebuscadas.
As stored procedures não respeitam o padrão ANSI, então, cada tipo de banco de dados tem a sua linguagem própria.
Então a MySQL tem a sua, o SQL Server tem a sua, o Oracle também tem.
Aí reza uma das diferenças entre os diversos bancos de dados relacionais, que é a forma como eu construo as minhas stored procedures.
Também tem funções, que podem ser funções já básicas, cadastradas dentro do banco, por exemplo, função para converter uma String em uma Data, para buscar o ano de uma Data, que calcula o cosseno de um número.
Enfim, são funções já existentes, mas eu posso também, usando a mesma linguagem de programação das stored procedures, construir a minha própria função, e eu posso usar ela depois, dentro das minhas consultas, de maneira simples e objetiva, da mesma maneira como eu uso as consultas originais que já existem no MySQL.
Também temos uma estrutura chamadas Trigger. Trigger são regras que eu vou executar quando algo acontece no banco.
Então eu digo: "olha, quando eu incluir um dado no banco, faça isso; quando eu alterar o dado numa tabela, faça aquilo".
Essas ordens são triggers.
As triggers são muito importantes, porque, às vezes, ao incluir dados de uma tabela eu tenho que fazer algum tipo de pré cálculo em outra tabela, então o trigger pode fazer isso.
Então, tá, o meu banco de dados tem, então, todos os conjuntos dessas entidades.
É importante eu, que estou projetando e construindo o banco de dados, saber que tipo de entidades são essas, porque, claro, na medida em que meu banco vai crescendo e as necessidades operacionais vão sendo passadas para mim, eu vou criando mais entidades relacionadas ao banco de dados.
Tá legal? Então, é isso aí, gente, que eu queria falar um pouquinho sobre a parte de estrutura do banco de dados.
O curso Comandos DML: manipulação de dados com MySQL possui 253 minutos de vídeos, em um total de 59 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:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
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.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes á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.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.