Pular para o conteúdo principal
InicioTutoriaisSQL

Tutorial do MySQL: Um guia abrangente para iniciantes

Descubra o que é o MySQL e como começar a usar um dos sistemas de gerenciamento de banco de dados mais populares.
abr. de 2024  · 15 min leer

Os dados constituem a base de nossa sociedade cada vez mais digital. De aplicativos móveis e sistemas bancários a mecanismos de pesquisa e chatbots de IA de última geração, como o ChatGPT, nenhuma dessas ferramentas seria possível sem dados. Você já se perguntou onde todos esses dados são armazenados? Você adivinhou: bancos de dados.

Um banco de dados é uma coleção organizada de dados estruturados, normalmente armazenados em um sistema de computador. Uma grande parte dos dados em todo o mundo é armazenada em bancos de dados relacionais.

Neste tutorial, vamos nos concentrar no MySQL, um sistema popular de gerenciamento de banco de dados relacional (RDBMS). Apoiado pela Oracle, o MySQL é um banco de dados de código aberto, confiável, escalável e fácil de usar, utilizado por algumas das empresas mais importantes do setor de tecnologia, incluindo Meta, Netflix e Airbnb.

Depois de ler este artigo, você estará pronto para começar a usar essa ferramenta popular e bem estabelecida, desde a instalação no seu computador e a criação de bancos de dados até a realização de consultas SQL básicas e operações mais avançadas. Pronto para o desafio? Vamos começar!

Pré-requisitos e conceitos básicos

Há muitos tipos de bancos de dados, sendo que cada um deles é adequado para armazenar diferentes tipos de dados. Nos últimos anos, novos tipos de bancos de dados foram desenvolvidos para atender à crescente diversidade de formatos de dados. Apesar do surgimento dos chamados bancos de dados NoSQL, os bancos de dados relacionais ainda são os mais populares.

Os bancos de dados relacionais são projetados para armazenar dados como coleções de tabelas predefinidas com linhas e colunas conectadas por meio de um ou mais relacionamentos.

A maneira padrão de criar, gerenciar e se comunicar com bancos de dados é a SQL (Structured Query Language, Linguagem de Consulta Estruturada). O SQL é o bloco de construção de alguns dos mais populares no mercado, incluindo PostgreSQL, SQLite e MySQL.

Para seguir este tutorial, recomendamos um conhecimento básico de SQL. Uma ótima maneira de começar é o nosso Curso de Introdução ao SQL. Você também precisará do MySQL em seu computador, portanto, vamos abordar como instalar o MySQL.

Configuração do MySQL

A instalação da ferramenta é um processo simples. Basta fazer o download do instalador correto no site oficial, dependendo do sistema operacional do seu computador, seja macOS, Windows ou Linux.

Instalação no macOS

Depois de fazer o download do instalador do pacote MySQL, siga as instruções do assistente do instalador. Você pode seguir a instalação padrão, embora também possa personalizar os componentes a serem instalados clicando no botão "Customize" (Personalizar).

Assistente do instalador do pacote MySQL: Personalizar.

Assistente do instalador do pacote MySQL: Personalizar. Fonte: MySQL

Após a instalação bem-sucedida do novo servidor MySQL, conclua as etapas de configuração escolhendo o tipo de criptografia padrão para senhas, definindo a senha da raiz e ativando (ou desativando) o servidor MySQL na inicialização.

Ao instalar usando o instalador de pacotes, os arquivos são instalados em um diretório em /usr/local que corresponde ao nome da versão e da plataforma de instalação.

Instalação no Windows

A instalação do MySQL no Windows é bastante simples. O método recomendado é fazer o download do Windows Installer e permitir que ele instale e configure uma versão específica do MySQL. Se você usar a instalação padrão, o Windows iniciará automaticamente o MySQL como um host local.

Instalação no Linux

O Linux oferece suporte a várias soluções diferentes para a instalação do MySQL. O MySQL recomenda que você use uma das distribuições da Oracle, para a qual vários métodos de instalação estão disponíveis, como você pode encontrar na documentação.

Entendendo o MySQL

Antes de começar a usar o MySQL, vale a pena analisar como o MySQL funciona. Vamos analisar alguns de seus principais conceitos.

Arquitetura do MySQL

Como muitos outros bancos de dados relacionais populares, o MySQL foi projetado como uma arquitetura cliente-servidor.

Nesse modelo de computação, um servidor é projetado para hospedar dados, gerenciar a permissão e as configurações do banco de dados e lidar com a maioria dos recursos e serviços solicitados pelo cliente.

Nas arquiteturas cliente-servidor mais comuns, há um servidor centralizado e vários clientes. Qualquer computador pode ser um servidor se estiver configurado para fornecer um serviço. No entanto, os servidores geralmente são máquinas muito potentes e grandes, pois estão mais bem equipados para lidar com um grande volume de solicitações e dados.

Por outro lado, os clientes podem estar localizados em qualquer tipo de computador.

Arquitetura cliente-servidor.

Arquitetura cliente-servidor. Fonte: DataCamp

No MySQL, esses dois componentes são o cliente MySQL e o servidor MySQL.

Tipos de dados

Os tipos de dados são usados para determinar os valores que uma coluna pode conter. Ele funciona como um tipo de metadados que ajuda o SQL a entender que tipo de dados esperar em cada coluna e como processar consultas em uma coluna específica.

O MySQL suporta tipos de dados SQL regulares em três categorias principais:

  • Tipos numéricos
  • Tipos de string
  • Tipos de data e hora

Nas tabelas a seguir, você pode encontrar uma visão geral dos principais tipos de dados no MySQL.

Tipos de dados numéricos

Tipo de dados

Descrição

TINYINT

Um número inteiro muito pequeno.

SMALLINT

Um número inteiro pequeno.

MEDIUMINT

Um número inteiro de tamanho médio.

INT ou INTEGER

Um número inteiro padrão.

BIGINT

Um número inteiro grande.

FLOAT

Um número de ponto flutuante.

DUPLO

Um número de ponto flutuante de precisão dupla.

DECIMAL ou NUMÉRICO

Um número de ponto fixo.

Tipos de dados de data e hora

Tipo de dados

Descrição

DATA

Um valor de data no formato AAAA-MM-DD.

TEMPO

Um valor de hora no formato HH:MM:SS.

DATA

Um valor de data e hora no formato AAAA-MM-DD HH:MM:SS.

TIMESTAMP

Um valor de registro de data e hora no formato AAAA-MM-DD HH:MM:SS.

ANO

Um valor de ano no formato YYYY ou YYY.

Tipos de dados String

Tipo de dados

Descrição

CHAR

Uma cadeia de caracteres de comprimento fixo.

VARCHAR

Uma cadeia de caracteres de comprimento variável.

TINYTEXT

Uma string de texto muito pequena.

TEXTO

Uma pequena cadeia de texto.

MEDIUMTEXT

Uma cadeia de texto de tamanho médio.

LONGTEXT

Uma cadeia de texto grande.

ENUM

Um objeto de cadeia de caracteres que pode ter apenas um valor, escolhido em uma lista de valores predefinidos.

SET

Um objeto de cadeia de caracteres que pode ter zero ou mais valores, escolhidos em uma lista de valores predefinidos.

Acesso ao MySQL

Depois de instalar o MySQL em seu computador, você pode começar a usá-lo no terminal. Para iniciar o MySQL, você pode acessá-lo com seu nome de usuário e a senha associada. Nesse caso, acessaremos o MySQL com a conta root, juntamente com a senha root que definimos durante a instalação. Como estamos fazendo login na mesma máquina em que o MySQL está sendo executado, não precisamos fornecer informações no parâmetro host (-h):

> mysql -uroot -p

Se quiser adicionar novos usuários, digite:

> CREATE USER 'username' IDENTIFIED BY 'password';

Depois de criar um novo usuário, você pode entrar no MySQL usando esse comando e uma mensagem de boas-vindas será exibida, seguida de um prompt mysql>:

> mysql -u username -p 
Welcome to the MySQL monitor.  Commands end with; or \g.
Your MySQL connection id is 25
Server version: 8.1.0 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Como criar um banco de dados MySQL

Criação de um banco de dados

É hora de criar seu primeiro banco de dados no MySQL. Para este tutorial, queremos criar um banco de dados chamado "datacamp_courses", que conterá informações sobre alguns cursos do DataCamp. O banco de dados é hospedado localmente.

Para criar um banco de dados, use o seguinte comando:

mysql> CREATE DATABASE datacamp_courses;

Para verificar se o banco de dados foi criado, digite o seguinte e será exibida uma tabela com todos os bancos de dados disponíveis:

mysql> SHOW databases;
+--------------------+
| Database           |
+--------------------+
| datacamp_courses   |
| mysql              |
+--------------------+
5 rows in set (0,00 sec)

Agora você está pronto para acessar seu novo banco de dados.

mysql> USE datacamp_courses;
Database changed

Criação de uma tabela

Até agora, você criou seu primeiro banco de dados. Mas ainda está vazio. Agora, vamos criar a primeira tabela do banco de dados. Queremos criar uma tabela chamada "courses" (cursos), com informações sobre vários cursos disponíveis no catálogo de cursos da DataCamp.

É hora de criar sua primeira tabela no banco de dados "datacamp_courses". Queremos criar uma tabela com informações sobre alguns dos cursos do catálogo de cursos da DataCamp.

A chave primária da tabela deve ser course_id (observe que somente essa chave está em negrito) e seu tipo de dados deve ser um número inteiro. Uma chave primária é uma restrição que impõe que os valores da coluna sejam não nulos e exclusivos. Ele permite que você identifique de forma exclusiva uma instância específica ou um conjunto de instâncias presentes na tabela.

As colunas restantes fornecem informações sobre o nome do curso, o instrutor do curso, o tópico do curso e o URL.

Para criar a primeira tabela do banco de dados "datatacamp_courses", use o seguinte comando:

mysql> CREATE TABLE courses (
  course_id int NOT NULL,
  course_name varchar(250) NOT NULL,
  instructor_name varchar(250) NOT NULL,
  technology varchar(50) NOT NULL,
  topic varchar(50) NOT NULL,
  PRIMARY KEY (course_id)
);

Consultas SQL básicas

Você tem seu primeiro banco de dados e sua primeira tabela. Excelente! Agora é hora de adicionar alguns dados à tabela.

Vamos adicionar algumas linhas com alguns cursos populares disponíveis em nosso catálogo com a instrução INSERT. O código a seguir fará a mágica.

INSERT INTO 
    courses (course_id, course_name, instructor_name, technology, topic) VALUES 
    (1, 'Introduction to SQL', 'Izzy Weber', 'SQL','Data Manipulation'), 
    (2, 'Database Design', 'Lis Sulmont', 'SQL', 'Data Engineering'), 
    (3, 'Data Manipulation with pandas', 'Richie Cotton', 'R','Programming'),
    (4, 'Generative AI Concepts', 'Daniel Tedesco', 'Theory', 'AI & Machine Learning');

Para verificar se as linhas foram adicionadas corretamente, vamos visualizar todas as linhas da tabela com o comando SELECT:

SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-----------------------+
| course_id | course_name                   | instructor_name | technology | topic                 |
+-----------+-------------------------------+-----------------+------------+-----------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation     |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering      |
|         3 | Data Manipulation with pandas | Richie Cotton   | R          | Programming           |
|         4 | Generative AI Concepts        | Daniel Tedesco  | Theory     | AI & Machine Learning |
+-----------+-------------------------------+-----------------+------------+-----------------------+
4 rows in set (0,00 sec)

Você deve ter notado que há um erro nos dados que acabamos de adicionar. A tecnologia do curso Manipulação de dados com pandas é Python, nem R. Vamos corrigir o erro com a instrução UPDATE junto com a cláusula WHERE para especificar a linha a ser atualizada

UPDATE courses SET technology = 'Python' WHERE course_id = 3;
SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-----------------------+
| course_id | course_name                   | instructor_name | technology | topic                 |
+-----------+-------------------------------+-----------------+------------+-----------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation     |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering      |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming           |
|         4 | Generative AI Concepts        | Daniel Tedesco  | Theory     | AI & Machine Learning |
+-----------+-------------------------------+-----------------+------------+-----------------------+
4 rows in set (0,00 sec)

Por fim, talvez você queira excluir um dos registros da tabela. Por exemplo, vamos excluir o curso Generative AI Concepts:

DELETE from courses WHERE course_name = 'Generative AI Concepts';
SELECT * FROM courses;
+-----------+-------------------------------+-----------------+------------+-------------------+
| course_id | course_name                   | instructor_name | technology | topic             |
+-----------+-------------------------------+-----------------+------------+-------------------+
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation |
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering  |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming       |
+-----------+-------------------------------+-----------------+------------+-------------------+
3 rows in set (0,00 sec)

Tópicos avançados

Indexação

Por padrão, quando o MySQL precisar encontrar algumas linhas, ele começará a partir da primeira e lerá da cabeça para a cauda. Esse comportamento pode ser problemático quando seus bancos de dados têm milhões de linhas, pois o processo pode ser muito lento.

Uma ótima maneira de acelerar a forma como o MySQL procura as linhas em suas tabelas é criar um índice. Um índice de um componente de suas tabelas que o MySQL usa para recuperar linhas com colunas específicas mais rapidamente.

Vamos criar um índice em nossa tabela de cursos chamado "idx_course" na coluna "course_id".

CREATE INDEX idx_course
ON courses (course_id);

Une-se

Até o momento, trabalhamos apenas com a tabela de cursos. Mas você só começa a aproveitar todo o potencial dos bancos de dados relacionais, como o MySQL, quando trabalha com várias tabelas ao mesmo tempo.

A ferramenta mágica para combinar várias tabelas é a operação JOIN. Imagine que temos uma segunda tabela em nosso banco de dados chamada "instructors" (instrutores) que contém informações básicas sobre os instrutores do curso DataCamp. O script a seguir cria a tabela e adiciona algumas linhas (fictícias):

mysql> CREATE TABLE instructors (
  instructor_id int NOT NULL,
  instructor_name varchar(250) NOT NULL,
  role varchar(500) NOT NULL,
  number_courses int NOT NULL,
  PRIMARY KEY (instructor_id)
);
INSERT INTO 
    instructors (instructor_id, instructor_name, role, number_courses) VALUES 
    (1, 'Lis Sulmont', 'Data Scientist', 4),
    (2, 'Daniel Tedesco', 'Business Analyst', 1),
    (3, 'Richie Cotton', 'Data Evangelist',5),
    (4, 'Izzy Weber', 'Data Engineer', 2), 
    (5, 'James Chapman', 'Data Analyst',3);

Imagine que você queira mesclar as duas tabelas para obter as informações dos cursos, bem como os dados associados ao instrutor. Usaremos um INNER JOIN para obter apenas as informações dos cursos que aparecem na tabela de cursos. A coluna comum para fazer a união é "instructor_name".

mysql> SELECT * FROM courses
    -> INNER JOIN instructors
    -> ON courses.instructor_name = instructors.instructor_name;
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
| course_id | course_name                   | instructor_name | technology | topic             | instructor_id | instructor_name | role            | number_courses |
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
|         2 | Database Design               | Lis Sulmont     | SQL        | Data Engineering  |             1 | Lis Sulmont     | Data Scientist  |              4 |
|         3 | Data Manipulation with pandas | Richie Cotton   | Python     | Programming       |             3 | Richie Cotton   | Data Evangelist |              5 |
|         1 | Introduction to SQL           | Izzy Weber      | SQL        | Data Manipulation |             4 | Izzy Weber      | Data Engineer   |              2 |
+-----------+-------------------------------+-----------------+------------+-------------------+---------------+-----------------+-----------------+----------------+
3 rows in set (0,00 sec)

Esse é apenas um tipo de união, mas há outros que são igualmente úteis, dependendo do seu caso de uso. Nosso curso Joining Data in SQL e a folha de dicas sobre JOINS o ajudarão a começar.

Práticas recomendadas do MySQL

Medidas de segurança

Os bancos de dados modernos podem armazenar tabelas com milhões de linhas. Com tantos dados e aplicativos baseados neles, manter esses dados seguros é vital.

Os bancos de dados estão sujeitos a riscos comuns, incluindo o mau gerenciamento do acesso ao banco de dados, senhas fracas e injeções de SQL. Para lidar com essas ameaças e pontos fracos, várias estratégias e medidas podem ser implementadas, incluindo a configuração de privilégios de acesso dependendo do usuário, a criação de acionadores em servidores SQL e a implementação de metodologias de criptografia. Um ótimo lugar para começar a trabalhar com segurança SQL é o nosso Curso de Design de Banco de Dados.

Otimização de desempenho

À medida que avança em sua jornada de codificação SQL, você começará a perceber a importância do desempenho. Uma consulta SQL pode ser escrita de diferentes maneiras. Todos eles funcionam, mas alguns são mais eficientes do que outros.

Há muitas estratégias e truques que podem ajudá-lo a melhorar o desempenho do seu código SQL, incluindo subconsultas e cláusulas SQL, como WHERE, HAVING e DISTINCT.

Mas a eficiência não é apenas uma questão técnica; é também uma questão de ordem e legibilidade. Com pequenas mudanças na maneira de escrever SQL, como o uso de aliases e comentários, você pode fazer uma grande diferença que ajudará você e o restante da sua equipe.

Deseja saber mais sobre a otimização do desempenho do SQL? Confira nosso curso Melhorando o desempenho da consulta no SQL Server

Conclusão

Parabéns por ter chegado ao final deste tutorial do MySQL. Esperamos que você tenha gostado desta introdução ao MySQL e seus recursos. Se você estiver interessado em gerenciamento de banco de dados, aprender o MySQL é uma atitude inteligente.

Mas esse é apenas o começo de sua jornada. Se você quiser saber mais sobre o MySQL e o SQL em geral, o Datacamp o ajudará. Aqui estão alguns recursos para ajudá-lo a começar:

Temas

Comece sua jornada SQL hoje mesmo!

Course

Introduction to SQL

2 hr
646.4K
Learn how to create and query relational databases using SQL in just two hours.
See DetailsRight Arrow
Start Course
Veja MaisRight Arrow
Relacionado
SQL Jobs Header

blog

O SQL é uma linguagem de programação?

O SQL é considerado uma linguagem de programação? Analisamos os vários fatores a serem considerados e para que o idioma é usado.
Sejal Jaiswal's photo

Sejal Jaiswal

11 min

blog

Certificação PostgreSQL: Tudo o que você precisa saber

Navegue pela certificação PostgreSQL com a DataCamp. Obtenha habilidades especializadas, conhecimento prático e um caminho para o domínio dos dados.
Matt Crabtree's photo

Matt Crabtree

10 min

tutorial

SELEÇÃO de várias colunas no SQL

Saiba como selecionar facilmente várias colunas de uma tabela de banco de dados em SQL ou selecionar todas as colunas de uma tabela em uma consulta simples.
DataCamp Team's photo

DataCamp Team

3 min

tutorial

Como instalar e configurar o MySQL no Docker

Saiba como instalar e configurar o banco de dados MySQL dentro de contêineres do Docker. O tutorial inclui conceitos como conexão com servidores MySQL, execução de clientes MySQL para conexão com contêineres e assim por diante.
Bex Tuychiev's photo

Bex Tuychiev

12 min

tutorial

Tutorial do SQL Server: Desbloqueie o poder do gerenciamento de dados

Explore o gerenciamento de dados com nosso tutorial do SQL Server. Do básico ao uso avançado, aprimore suas habilidades e navegue no SQL Server com confiança.

Kevin Babitz

13 min

tutorial

QUALIFICAR: A instrução de filtragem SQL que você nunca soube que precisava

Saiba mais sobre a cláusula SQL QUALIFY, um método de filtragem essencial, porém menos conhecido, no SQL. Entenda sua sintaxe, usos e como ela difere de outros métodos de filtragem SQL.
Kurtis Pykes 's photo

Kurtis Pykes

8 min

See MoreSee More