MySQL: Introdução ao MySQL e aos conceitos básicos de…

O MySQL é o sistema de gerenciamento de banco de dados relacional de código aberto mais popular do mundo — ele torna o armazenamento e a consulta de dados simples e eficientes.

Este tutorial foi elaborado para iniciantes sem experiência prévia. Ele começa com os conceitos básicos de bancos de dados e avança até que você se torne proficiente no uso do MySQL para gerenciamento de dados.

1. O que você vai aprender


2. A história real de um desenvolvedor

(1) Problema: o Excel já não dá mais conta do recado

Um gerente de operações de comércio eletrônico recebeu uma tarefa urgente:

“Compile as tendências de vendas dos últimos 12 meses, abrangendo 5.000 clientes e 30.000 pedidos — e apresente o relatório ao CEO amanhã de manhã.”

Abrir um arquivo do Excel: mais de 100.000 linhas de dados, tamanho do arquivo 50 MB.

Os problemas surgiram um após o outro:

(2) Soluções de banco de dados

Reestruturação com o MySQL:

SQL
-- Create a Customer Table
CREATE TABLE customers (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    email VARCHAR(150)
);

-- Create the Orders Table
CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    customer_id INT,
    amount DECIMAL(10,2),
    order_date DATE,
    FOREIGN KEY (customer_id) REFERENCES customers(id)
);

-- One SQL Identify Annual Sales Trends
SELECT 
    DATE_FORMAT(order_date, '%Y-%m') AS month,
    COUNT(*) AS total_orders,
    SUM(amount) AS total_revenue
FROM orders
WHERE order_date >= '2025-07-01'
GROUP BY month
ORDER BY month;

Comparação de rendimento:

Dimensão Excel MySQL
Consulta com 100.000 linhas Mais de 30 segundos < 1 segundo
Junções entre várias tabelas VLOOKUP manual JOIN automático
Edição colaborativa Conflitos de arquivos Operações simultâneas de leitura/gravação sem conflitos
Atualização de dados Atualização manual Consulta em tempo real dos dados mais recentes
Segurança de dados Risco de perda de dados Proteção de transações e backups

3. O que é um banco de dados?

Um banco de dados é um repositório destinado a organizar, armazenar e gerenciar dados de acordo com uma estrutura de dados.

(1) Bancos de dados x armazenamento de arquivos

100%
graph TB
    A[Data Storage Methods] --> B[File Storage]
    A --> C[Database]
    B --> D[Excel / CSV / TXT]
    B --> E[Manual Management,Low efficiency]
    C --> F[Structured Storage]
    C --> G[Efficient Queries,Safe and Reliable]
Dimensão Armazenamento de arquivos Banco de dados
Volume de dados Milhares de linhas De milhões a centenas de milhões de linhas
Velocidade da consulta Lenta (varredura completa do arquivo) Rápida (otimização do índice)
Acesso simultâneo Não suportado Suporta acesso simultâneo de leitura/gravação por vários usuários
Integridade dos dados Não garantida Restrições + transações garantidas
Segurança Nível de arquivo Permissões do usuário + Criptografia

(2) Categorias do banco de dados

100%
graph TB
    A[Database] --> B[Relational Database RDBMS]
    A --> C[Non-relational database NoSQL]
    B --> D[MySQL / PostgreSQL]
    B --> E[Oracle / SQL Server]
    B --> F[SQLite]
    C --> G[Key-value type: Redis]
    C --> H[Document-based: MongoDB]
    C --> I[Column Type: Cassandra]
    C --> J[Graph Database: Neo4j]
Tipo Produtos representativos Modelo de dados Cenários de aplicação
Relacional MySQL, PostgreSQL Tabelas (linhas + colunas) Dados estruturados, processamento de transações
Chave-valor Redis Pares chave-valor Armazenamento em cache, sessões, tabelas de classificação
Baseado em documentos MongoDB Documentos JSON/BSON Dados semiestruturados, gerenciamento de conteúdo
Tipo de família de colunas Cassandra Família de colunas Análise de Big Data, dados de séries temporais
Banco de dados de grafos Neo4j Nós + Arestas Redes sociais, sistemas de recomendação
💡 Dica: O MySQL é um banco de dados relacional; os dados são armazenados na forma de tabelas, e é possível estabelecer relações entre elas.


4. Conceitos fundamentais dos bancos de dados relacionais

(1) Tabela

Uma tabela é a unidade básica para armazenar dados em um banco de dados e é composta por linhas e colunas.

100%
graph LR
    subgraph customers Table
        direction TB
        H[id | name | email | created_at]
        R1[1 | Alice | alice@email.com | 2025-01-15]
        R2[2 | Bob | bob@email.com | 2025-02-20]
        R3[3 | Charlie | charlie@email.com | 2025-03-10]
    end
Termo Definição Exemplo
Tabela Um conjunto de dados customers Tabela
Linha Um registro específico Informações completas sobre Alice
Coluna Uma propriedade dos dados name Coluna
Chave primária Um campo que identifica de forma exclusiva cada linha coluna id
Chave estrangeira Um campo que faz referência a outra tabela orders.customer_id

(2) Tipos de relacionamento

100%
erDiagram
    CUSTOMERS ||--o{ ORDERS : "A customer has multiple orders"
    ORDERS ||--|{ ORDER_ITEMS : "An order contains multiple line items"
    PRODUCTS ||--o{ ORDER_ITEMS : "An item appears in multiple orders"
Tipo de relação Descrição Exemplo
Um para um (1:1) Um registro corresponde a outro registro Usuário ↔ Cartão de identificação
Um para muitos (1:N) Um registro corresponde a vários registros Cliente → Pedido
Muitos-para-muitos (M:N) Vários registros correspondem entre si Alunos ↔ Cursos (por meio do formulário de matrícula)

(3) Classificação das linguagens SQL

SQL (Structured Query Language) é a linguagem padrão para trabalhar com bancos de dados relacionais.

Categoria Nome completo Palavras-chave Objetivo
DDL Linguagem de Definição de Dados CREATE/ALTER/DROP Define a estrutura do banco de dados
DML Linguagem de Manipulação de Dados INSERT/UPDATE/DELETE Inserir, atualizar e excluir dados
DQL Linguagem de Consulta de Dados SELECT Consultar dados
DCL Linguagem de Controle de Dados GRANT/REVOKE Gerenciamento de permissões
TCL Linguagem de Controle de Transações COMMIT/ROLLBACK Controle de transações

5. A história do MySQL

(1) Histórico de versões

100%
timeline
    title MySQL Version History
    1995 : MySQL 1.0 Published
         : From Sweden MySQL AB Company Development
    2000 : MySQL 3.23
         : Supports transaction processing
    2003 : MySQL 4.0
         : Support UNION Search
    2005 : MySQL 5.0
         : Supports stored procedures、View、Trigger
    2008 : Sun Acquisition MySQL AB
    2010 : Oracle Acquisition Sun
         : Obtain MySQL Ownership
    2013 : MySQL 5.6
         : InnoDB Full-Text Search
    2016 : MySQL 5.7
         : JSON Support、Performance Improvements
    2018 : MySQL 8.0
         : Window Functions、CTE、Characters
    2024 : MySQL 8.4 LTS
         : Long-Term Support Version
    2024 : MySQL 9.0 Innovation
         : Latest Innovative Version

(2) A filosofia de projeto do MySQL

Princípios fundamentais de design do MySQL:

Simplicidade em primeiro lugar

Desempenho em primeiro lugar

Ecossistema aberto


6. Principais vantagens do MySQL

(1) Comparação das vantagens

Dimensão MySQL PostgreSQL Oracle SQL Server
Preço Gratuito (código aberto) Gratuito (código aberto) Caro (comercial) Caro (comercial)
Nível de dificuldade ⭐ Fácil ⭐⭐ Moderado ⭐⭐⭐ Difícil ⭐⭐ Moderado
Desempenho de leitura ⭐⭐⭐ Extremamente rápido ⭐⭐ Rápido ⭐⭐ Rápido ⭐⭐ Rápido
Atividade da comunidade ⭐⭐⭐ Muito alta ⭐⭐ Alta ⭐ Moderada ⭐ Moderada
Casos de uso Aplicativos web, comércio eletrônico Consultas complexas, SIG Sistemas empresariais de grande escala Ecossistema Windows

(2) Casos de uso típicos

100%
mindmap
  root((MySQL Applications))
    Web Development
      Blog System
      E-commerce Platform
      Social Networks
      Content Management
    Enterprise Applications
      ERP System
      CRM System
      Inventory Management
      Order Processing
    Data Analysis
      Log Storage
      User Behavior
      Report Statistics
    Mobile Apps
      App Backend
      Game Data
      Push Notification System

Quem usa o MySQL?

Empresa Objetivo
Meta (Facebook) Dados do usuário, gráfico social
Twitter Tweets, perfis de usuários
GitHub Repositórios de código, dados de usuários
Airbnb Anúncios, reservas, usuários
Shopify Back-end de comércio eletrônico, produtos e pedidos
Booking.com Reservas de hotéis, avaliações de usuários

7. Uma breve introdução ao MySQL

(1) Como se conectar ao MySQL em três etapas

Etapa Comando/Ação
1. Instalação Inicie o Docker com um único comando (consulte a Lição 2 para mais detalhes)
2. Conexão mysql -u root -p
3. Verificação SELECT VERSION();

📖 A próxima lição abordará em detalhes: instalação multiplataforma (Windows/Mac/Linux/Docker), conexão com o MySQL Workbench e configuração de segurança. Esta seção oferece apenas uma breve visão geral.

▶ Exemplo: Iniciando o Docker com um único comando

BASH
# Pull and Start MySQL 8.0 (see Lesson 2 for details)
docker run -d --name mysql-tutorial \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=MyPass123! \
  mysql:8.0

# Enter MySQL Command Line
docker exec -it mysql-tutorial mysql -u root -pMyPass123!

▶ Exemplo: Verificação rápida após a conexão

SQL
-- View MySQL Version
SELECT VERSION();

-- View All Databases
SHOW DATABASES;
▶ Experimente

Saída:

TEXT 📖 Somente leitura
+-----------+
| VERSION() |
+-----------+
| 8.0.36    |
+-----------+

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

▶ Exemplo: Criando seu primeiro banco de dados e sua primeira tabela

SQL
-- 1. Create a Database
CREATE DATABASE my_first_db;

-- 2. Using the Database
USE my_first_db;

-- 3. Create a user table
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 4. Insert Data
INSERT INTO users (username, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (username, email) VALUES ('Bob', 'bob@example.com');

-- 5. Query Data
SELECT * FROM users;
▶ Experimente

Saída:

TEXT 📖 Somente leitura
+----+----------+-----------------+---------------------+
| id | username | email           | created_at          |
+----+----------+-----------------+---------------------+
|  1 | Alice    | alice@example.com | 2026-07-03 10:30:00 |
|  2 | Bob      | bob@example.com   | 2026-07-03 10:30:01 |
+----+----------+-----------------+---------------------+

▶ Exemplo: Operações CRUD em dados

SQL
-- Conditional Query
SELECT username, email FROM users WHERE username = 'Alice';

-- Update Data
UPDATE users SET email = 'alice_new@example.com' WHERE id = 1;

-- Delete Data
DELETE FROM users WHERE id = 2;

-- Count the number of users
SELECT COUNT(*) AS total_users FROM users;
▶ Experimente

❓ Perguntas Frequentes

P: Qual é a relação entre o MySQL e o SQL? R: O SQL é a linguagem padrão para operar bancos de dados (semelhante ao “inglês”), enquanto o MySQL é um software de banco de dados que implementa o padrão SQL (semelhante ao “inglês falado no Reino Unido”).

P: O MySQL é gratuito? Pode ser usado para fins comerciais? R: O MySQL Community Edition é gratuito e de código aberto (sob a licença GPL) e pode ser usado para fins comerciais. No entanto, se você modificar o código-fonte do MySQL e distribuí-lo, também deverá disponibilizá-lo como código aberto. A Oracle oferece uma versão comercial (paga) que fornece recursos empresariais adicionais.

P: O que devo escolher, MySQL ou MariaDB? R: O MariaDB é um fork do MySQL e possui alta compatibilidade de sintaxe com ele. Para novos projetos, o MySQL 8.0 ou versões posteriores é a escolha mais comum; se você tiver dúvidas sobre a estratégia de código aberto da Oracle, o MariaDB é uma boa alternativa.

P: Preciso aprender uma linguagem de programação antes de aprender MySQL? R: Não. O SQL é uma linguagem independente, com sintaxe semelhante ao inglês natural. Você pode aprendê-la diretamente na linha de comando do MySQL. As próximas aulas abordarão como se conectar ao MySQL usando Node.js ou Python.

P: Para projetos de que tamanho o MySQL é adequado? R: O MySQL é adequado para tudo, desde pequenos projetos pessoais até aplicativos corporativos de grande escala. Uma única tabela pode armazenar centenas de milhões de linhas de dados e, com o particionamento de bancos de dados e tabelas, pode suportar escalas ainda maiores. O Meta, o Twitter e o GitHub utilizam o MySQL.

P: O MySQL pode ser usado no Windows, no Mac e no Linux? R: Sim. O MySQL oferece suporte oficial a todas as plataformas. Recomendamos instalá-lo usando o Docker — basta configurá-lo uma vez para executá-lo em qualquer lugar.


📖 Resumo


📝 Exercícios

  1. Exercício básico (Dificuldade: ⭐): Instale o MySQL 8.0 usando o Docker. Depois de conectado, execute SELECT VERSION(); para verificar o número da versão.

  2. Problema avançado (Dificuldade ⭐⭐): Crie um banco de dados chamado school que contenha uma tabela chamada students (id, nome, idade, série), insira 5 registros e consulte todos os registros.

  3. Questão de desafio (Dificuldade: ⭐⭐⭐): Crie a tabela courses e a tabela associada student_courses (relação muitos-para-muitos), defina os campos adequados e use um JOIN para consultar todos os cursos cursados por um aluno específico.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%