MySQL: Operações no banco de dados MySQL e configuração do…

Última atualização: 2026-08-26

Um banco de dados é um repositório para armazenar dados — trabalhar com um banco de dados é o primeiro passo para usar o MySQL.

Esta aula ensinará como realizar operações CRUD em bancos de dados e configurar conjuntos de caracteres.

100%
graph TB
    A[Database Operations] --> B[CREATE DATABASE<br/>Create a Database]
    A --> C[SHOW DATABASES<br/>View Database]
    A --> D[USE<br/>Select a Database]
    A --> E[ALTER DATABASE<br/>Modify the character set]
    A --> F[DROP DATABASE<br/>Delete the database]
    B --> B1[Specify a character set utf8mb4]
    E --> E1[Modify the character set/Sorting Rules]

1. O que você vai aprender


2. Uma história real sobre um site multilíngue

(1) Problema: Caracteres chineses distorcidos

Um desenvolvedor criou um banco de dados de comércio eletrônico e inseriu nomes de produtos em chinês:

SQL
INSERT INTO products (name) VALUES ('iPhone');
SELECT * FROM products;

Resultado: name é exibido como ??? ou com caracteres distorcidos.

Motivo: O conjunto de caracteres padrão do banco de dados é latin1, que não oferece suporte ao chinês.

(2) Solução para utf8mb4

SQL
-- Specify utf8mb4 character set when creating the database
CREATE DATABASE ecommerce
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

Vantagens: Suporta todos os caracteres Unicode, incluindo chinês, japonês, coreano e emojis.

Conjunto de caracteres Intervalo suportado Nível de recomendação
latin1 Caracteres da Europa Ocidental
utf8 Multilíngue Básico (não suporta caracteres de 4 bytes) ⚠️
utf8mb4 Unicode completo (incluindo emojis) ⭐⭐⭐

3. Criar um banco de dados

(1) Sintaxe básica

SQL
CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name];

▶ Exemplo: Criação de um banco de dados

SQL
-- The Simplest Way to Create
CREATE DATABASE mydb;

-- Create it if it doesn't exist (Recommended)
CREATE DATABASE IF NOT EXISTS mydb;

-- Specify a character set (Recommended)
CREATE DATABASE IF NOT EXISTS mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

-- Creating an E-commerce Database
CREATE DATABASE IF NOT EXISTS ecommerce
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
▶ Experimente

Saída:

TEXT 📖 Somente leitura
Query OK, 1 row affected (0.01 sec)

4. Visualizar o banco de dados

▶ Exemplo: Exibir todos os bancos de dados

SQL
-- View All Databases
SHOW DATABASES;

-- View the statement used to create the database
SHOW CREATE DATABASE mydb;

-- View the currently used database
SELECT DATABASE();
▶ Experimente

Saída:

TEXT 📖 Somente leitura
+--------------------+
| Database           |
+--------------------+
| ecommerce          |
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

5. Selecione um banco de dados

▶ Exemplo: O comando USE

SQL
-- Select a Database
USE ecommerce;

-- Verify the current database
SELECT DATABASE();
▶ Experimente

Saída:

TEXT 📖 Somente leitura
+------------+
| DATABASE() |
+------------+
| ecommerce  |
+------------+

6. Modificar o banco de dados

▶ Exemplo: Alteração do conjunto de caracteres

SQL
-- Modify the Database Character Set
ALTER DATABASE mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

-- Verify Changes
SHOW CREATE DATABASE mydb;
▶ Experimente

Saída:

TEXT 📖 Somente leitura
+----------+------------------------------------------------------------------------------------------+
| Database | Create Database                                                                          |
+----------+------------------------------------------------------------------------------------------+
| mydb     | CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ |
+----------+------------------------------------------------------------------------------------------+

7. Excluir o banco de dados

▶ Exemplo: Exclusão de um banco de dados

SQL
-- Delete the database
DROP DATABASE mydb;

-- Secure Deletion (If it exists)
DROP DATABASE IF EXISTS mydb;
▶ Experimente
⚠️ Observação: A exclusão de um banco de dados excluirá permanentemente todas as tabelas e dados nele contidos, e essa ação não pode ser revertida! Certifique-se de confirmar ou fazer backup dos seus dados antes de prosseguir.


8. Conjuntos de caracteres e regras de ordenação

(1) Conjuntos de caracteres comuns

Conjunto de caracteres Comprimento em bytes Caracteres suportados Casos de uso
ASCII 1 Inglês + Números Cenários totalmente em inglês
latin1 1 Caracteres da Europa Ocidental Compatibilidade com sistemas legados
utf8 1-3 Multilíngue Básico Compatibilidade com versões anteriores
utf8mb4 1-4 Unicode completo Padrão recomendado

(2) Regras de classificação

As regras de classificação determinam como as sequências de caracteres são comparadas e classificadas.

Regra de classificação Descrição Distingue maiúsculas de minúsculas
utf8mb4_general_ci De uso geral, rápido Não distingue maiúsculas de minúsculas
utf8mb4_unicode_ci Preciso, suporta vários idiomas Não diferencia maiúsculas de minúsculas
utf8mb4_bin Comparação binária Distingue maiúsculas de minúsculas
💡 Dica: _ci indica comparação sem distinção entre maiúsculas e minúsculas, e _bin indica comparação binária (com distinção entre maiúsculas e minúsculas).

▶ Exemplo: Visualização de conjuntos de caracteres

SQL
-- View All Character Sets
SHOW CHARACTER SET;

-- View All Sorting Rules
SHOW COLLATION LIKE 'utf8mb4%';

-- View the server's default character set
SHOW VARIABLES LIKE 'character_set_server';

-- View the database character set
SHOW VARIABLES LIKE 'character_set_database';
▶ Experimente

Saída:

TEXT 📖 Somente leitura
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_server     | utf8mb4                                       |
+--------------------------+-----------------------------------------------+

9. Backup e recuperação de banco de dados

▶ Exemplo: Backup com o mysqldump

BASH
# Backing Up a Single Database
mysqldump -u root -p mydb > mydb_backup.sql

# Back up all databases
mysqldump -u root -p --all-databases > all_backup.sql

# Back up only the table structure
mysqldump -u root -p --no-data mydb > mydb_schema.sql

# Back Up a Specific Table
mysqldump -u root -p mydb users orders > tables_backup.sql

▶ Exemplo: Restaurando um banco de dados

BASH
# Restore from a backup file
mysql -u root -p mydb < mydb_backup.sql

# Restore from the MySQL command line
mysql> SOURCE /path/to/mydb_backup.sql;

❓ Perguntas Frequentes

P: Qual é a diferença entre utf8 e utf8mb4? R: O utf8 usa no máximo 3 bytes e não suporta caracteres de 4 bytes, como emojis. O utf8mb4 é o UTF-8 completo; recomenda-se sempre usar o utf8mb4.

P: Posso alterar o nome do banco de dados? R: O MySQL não permite renomear diretamente um banco de dados. Você pode criar um novo banco de dados, migrar as tabelas para ele e, em seguida, excluir o banco de dados antigo.

P: Como posso verificar o tamanho do banco de dados? R: Execute a consulta information_schema:SELECT table_schema, ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS size_mb FROM information_schema.tables GROUP BY table_schema;

P: Qual é a diferença entre DROP DATABASE e TRUNCATE DATABASE? R: DROP exclui todo o banco de dados (esquema e dados), enquanto TRUNCATE apenas limpa os dados, mas mantém o esquema. (O MySQL não possui um comando TRUNCATE DATABASE; é necessário usar TRUNCATE em cada tabela individualmente.)

P: Como faço para corrigir um conjunto de caracteres incorreto? R: Use ALTER DATABASE para alterar o conjunto de caracteres do banco de dados, use ALTER TABLE para alterar o conjunto de caracteres da tabela e use CONVERT TO para converter os dados existentes.


📖 Resumo


📝 Exercícios

  1. Problema básico (Dificuldade ⭐): Crie um banco de dados chamado school com o conjunto de caracteres utf8mb4 e a classificação utf8mb4_unicode_ci.

  2. Exercício avançado (Dificuldade ⭐⭐): Analise a instrução de criação do banco de dados school para confirmar se o conjunto de caracteres está configurado corretamente. Em seguida, crie uma tabela de teste e insira dados contendo emojis para verificar se há suporte.

  3. Desafio (Dificuldade: ⭐⭐⭐): Escreva um script de backup para fazer o backup do banco de dados school no diretório backup/, com nomes de arquivos que incluam a data (por exemplo, school_20260703.sql).

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%