Sumário- I. Gerenciamento de Banco de Dados MySQL
-
- Bancos e Tabelas
-
- Tipos de Dados Comuns
- II. Visualizando a Estrutura do Banco de Dados
- III. Comandos SQL
-
- Classificação dos Comandos SQL:
- IV. Criação e Exclusão de Bancos e Tabelas
- V. Gerenciamento de Registros de Dados em Tabelas
- VI. Modificação de Nomes e Estrutura de Tabelas
- VII. Auto-incremento
- VIII. Preenchimento
- IX. Clonagem de Tabelas
- X. Esvaziamento de Tabelas
- XI. Criação de Tabelas Temporárias
- XII. Criação de Restrições de Chave Estrangeira
-
- Passos para criar restrições de chave estrangeira
- 1.1. Criação das tabelas primária e secundária
- 1.2. Adição de uma restrição de chave primária
- 1.3. Adição de chave estrangeira na tabela secundária
- 1.4. Inserção de registros
- 1.5. Exclusão de registros
- 1.6. Visualização e remoção de restrições
- XIII. 6 Restrições Comuns no MySQL
I. Gerenciamento de Banco de Dados MySQL
- Bancos e Tabelas
Registro (Linha): Utilizado para descrever as informações de um objeto
Campo (Coluna): Utilizado para descrever um atributo de um objeto
- Tipos de Dados Comuns
int : Tipo inteiro
float : Ponto flutuante de precisão simples 4 bytes 32 bits
double : Ponto flutuante de precisão dupla 8 bytes 64 bits
char : Tipo de caractere de comprimento fixo
varchar : Tipo de caractere de comprimento variável
text : Texto
image : Imagem
decimal(5,2) : 5 dígitos significativos, com 2 casas decimais
II. Visualiznado a Estrutura do Banco de Dados
show databases; # Visualizar bancos de dados no servidor
use nome_do_banco; # Mudar de banco de dados
show tables; # Visualizar tabelas no banco de dados atual
desc nome_da_tabela; # Visualizar estrutura da tabela
III. Comandos SQL
Comandos SQL são utilizados para manter e gerenciar bancos de dados, incluindo consultas de dados, atualizações, controle de acesso e gerenciamento de objetos.
- Classificação dos Comandos SQL:
| Comando | Significado |
|---|---|
| DDL | Linguagem de Definição de Dados, utilizada para criar objetos de banco de dados |
| DML | Linguagem de Manipulação de Dados, utilizada para gerenciar dados em tabelas |
| DQL | Linguagem de Consulta de Dados, utilizada para buscar registros em tabelas |
| DCL | Linguagem de Controle de Dados, utilizada para definir permissões de usuários |
IV. Criação e Exclusão de Bancos e Tabelas
create database nome_do_banco; # Criar novo banco de dados
create table nome_da_tabela (campo1 tipo_dado, campo2 tipo_dado, .... PRIMARY KEY (chave_primaria)); # Criar nova tabela
drop table nome_da_tabela; # Excluir tabela específica
drop database nome_do_banco; # Excluir banco de dados específico
V. Geranciamento de Registros de Dados em Tabelas
insert into nome_da_tabela (campo1, campo2, ...) values (valor1, valor2, ...); # Inserir novos registros
select * from nome_da_tabela; # Consultar todos os dados
select campo1, campo2 from nome_da_tabela where condicao; # Consultar dados específicos
select * from nome_da_tabela \G # Exibir em formato vertical
select * from nome_da_tabela limit 2; # Exibir apenas as primeiras 2 linhas
select * from nome_da_tabela limit 3, 2; # Exibir 2 linhas a partir da 3ª
update nome_da_tabela set campo1=valor1 where condicao; # Atualizar registros
delete from nome_da_tabela where condicao; # Excluir registros específicos
VI. Modificação de Nomes e Estrutura de Tabelas
alter table nome_antigo rename nome_novo; # Renomear tabela
alter table nome_da_tabela add campo tipo_dado propriedade; # Adicionar campo
alter table nome_da_tabela change campo_antigo campo_novo tipo_dado propriedade; # Modificar campo
alter table nome_da_tabela drop campo; # Remover campo
VII. Auto-incremento
auto_increment: Indica que o campo é auto-incrementável, aumentando 1 para cada novo registro; começa por padrão em 1; não pode ter valores duplicados; deve ser chave primária; mesmo que a inserção falhe, o valor é incrementado.
VIII. Preenchimento
int(4) zerofill: Se o número tiver menos de 4 dígitos, preenche com zeros à esquerda (ex: 0001)
IX. Clonagem de Tabelas
# Método 1: Copiar estrutura primeiro, depois dados
create table nova_tabela like tabela_antiga; # Copiar estrutura
insert into nova_tabela select * from tabela_antiga; # Importar dados
# Método 2: Copiar estrutura e dados simultaneamente
create table nova_tabela (select * from tabela_antiga);
X. Esavziamento de Tabelas
# Método 1: Usando DELETE
delete from nome_da_tabela;
# DELETE retorna o número de registros excluídos; exclui linha por linha;
# com auto-incremento, os novos IDs continuam a partir do último valor.
# Método 2: Usando TRUNCATE
truncate table nome_da_tabela;
# TRUNCATE não retorna o número de registros excluídos;
# reconstrói a tabela, sendo mais rápido que DELETE;
# com auto-incremento, os IDs recomeçam de 1.
XI. Criação de Tabelas Temporárias
Tabelas temporárias não são visíveis com SHOW TABLES e são destruídas quando a conexão é encerrada. Podem ser manipuladas normalmente (CRUD) ou excluídas manualmente antes do encerramento da conexão.
create temporary table nome_da_tabela (campo1 tipo_dado, campo2 tipo_dado, ...);
XII. Criação de Restrições de Chave Estrangeira
Tabela primária e secundária: (1) Tabela com chave primária é a tabela primária (pai) (2) Tabela com chave estrangeira é a tabela secundária (filho)
Nota: O campo associado na tabela secundária deve ser chave primária. Os campos em ambas as tabelas devem ter o mesmo tipo, comprimento e restrições.
- Passos para criar restrições de chave estrangeira
1.1. Criar tabelas primária e secundária
1.2. Adicionar restrição de chave primária. Recomenda-se usar "PK_" como prefixo
1.3. Adicionar chave estrangeira na tabela secundária com prefixo "FK_" e associar à tabela primária
1.4. Ao inserir registros, inserir primeiro na tabela primária
1.5. Ao excluir registros, excluir primeiro na tabela secundária
1.6. Visualizar e remover restrições de chave estrangeira
XIII. 6 Restrições Comuns no MySQL
Restrição de chave primária (primary key)
Restrição de chave estrangeira (foreign key)
Restrição não nula (not null)
Restrição de unicidade (unique [key|index])
Restrição de valor padrão (default)
Restrição de auto-incremento (auto_increment)