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.
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
- Criar um banco de dados e especificar o conjunto de caracteres
- Visualizar e selecionar um banco de dados
- Alterar o conjunto de caracteres do banco de dados
- Excluir o banco de dados
- Uma explicação detalhada sobre conjuntos de caracteres e regras de classificação
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:
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
-- 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
CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name];
▶ Exemplo: Criação de um banco de dados
-- 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;
Saída:
Query OK, 1 row affected (0.01 sec)
4. Visualizar o banco de dados
▶ Exemplo: Exibir todos os bancos de dados
-- View All Databases
SHOW DATABASES;
-- View the statement used to create the database
SHOW CREATE DATABASE mydb;
-- View the currently used database
SELECT DATABASE();
Saída:
+--------------------+
| 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
-- Select a Database
USE ecommerce;
-- Verify the current database
SELECT DATABASE();
Saída:
+------------+
| DATABASE() |
+------------+
| ecommerce |
+------------+
6. Modificar o banco de dados
▶ Exemplo: Alteração do conjunto de caracteres
-- Modify the Database Character Set
ALTER DATABASE mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Verify Changes
SHOW CREATE DATABASE mydb;
Saída:
+----------+------------------------------------------------------------------------------------------+
| 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
-- Delete the database
DROP DATABASE mydb;
-- Secure Deletion (If it exists)
DROP DATABASE IF EXISTS mydb;
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 |
_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
-- 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';
Saída:
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_server | utf8mb4 |
+--------------------------+-----------------------------------------------+
9. Backup e recuperação de banco de dados
▶ Exemplo: Backup com o mysqldump
# 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
# 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 DATABASEpara alterar o conjunto de caracteres do banco de dados, useALTER TABLEpara alterar o conjunto de caracteres da tabela e useCONVERT TOpara converter os dados existentes.
📖 Resumo
- CREATE DATABASE: Crie um banco de dados; recomendamos usar
IF NOT EXISTSeutf8mb4 - USO Selecione o banco de dados atual; todas as operações subsequentes serão realizadas nesse banco de dados.
- SHOW DATABASES para visualizar todos os bancos de dados, SHOW CREATE DATABASE para visualizar a instrução de criação
- ALTER DATABASE Modifica as propriedades do banco de dados (conjunto de caracteres, colação)
- DROP DATABASE Exclui o banco de dados. Certifique-se de verificar se foi feito um backup antes de prosseguir.
- utf8mb4 é o conjunto de caracteres recomendado; ele suporta todo o conjunto de caracteres Unicode e emojis
- O mysqldump é usado para fazer backups de bancos de dados, e o comando mysql < arquivo.sql é usado para restaurá-los
📝 Exercícios
-
Problema básico (Dificuldade ⭐): Crie um banco de dados chamado
schoolcom o conjunto de caracteresutf8mb4e a classificaçãoutf8mb4_unicode_ci. -
Exercício avançado (Dificuldade ⭐⭐): Analise a instrução de criação do banco de dados
schoolpara 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. -
Desafio (Dificuldade: ⭐⭐⭐): Escreva um script de backup para fazer o backup do banco de dados
schoolno diretóriobackup/, com nomes de arquivos que incluam a data (por exemplo,school_20260703.sql).