Banco de Dados - DDL — Linguagem de Definição de Dados
DDL — Linguagem de Definição de Dados
Tipos de dados, criação e alteração de tabelas, constraints, chave primária e integridade referencial
01 O que é a DDL?
A DDL (Data Definition Language — Linguagem de Definição de Dados) é o subconjunto do SQL responsável por definir e modificar a estrutura do banco de dados: criar bancos, tabelas, colunas e restrições. Ela cuida do "esqueleto" — e não dos dados em si (isso é papel da DML).
CREATECria estruturas (banco, tabela)ALTERAltera estruturas existentesDROPRemove estruturas por completoTRUNCATEEsvazia a tabela, mantendo a estrutura02 Tipos de dados
Cada coluna precisa de um tipo de dado, que define o que ela pode armazenar e quanto espaço ocupa. Escolher bem o tipo garante economia e integridade.
| Categoria | Tipos comuns | Uso típico |
|---|---|---|
| Numéricos inteiros | TINYINT, INT, BIGINT | Idade, quantidade, códigos, chaves |
| Numéricos decimais | DECIMAL(p,s), FLOAT, DOUBLE | Preços, salários (use DECIMAL para dinheiro) |
| Texto | CHAR(n), VARCHAR(n), TEXT | Nomes, e-mails, descrições |
| Data e hora | DATE, TIME, DATETIME, TIMESTAMP | Datas de nascimento, registros |
| Lógico | BOOLEAN (TINYINT(1)) | Ativo/inativo, sim/não |
CHAR(10) reserva sempre 10 caracteres (tamanho fixo); VARCHAR(10) usa apenas o espaço necessário até 10 (tamanho variável). Para dados de tamanho irregular, prefira VARCHAR.03 Criar, alterar e apagar tabelas
CREATE TABLE
Cria uma nova tabela definindo suas colunas, tipos e restrições.
CREATE TABLE cliente (
id_cliente INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100) NOT NULL,
email VARCHAR(120) UNIQUE,
idade INT,
ativo BOOLEAN DEFAULT TRUE
);
ALTER TABLE
Modifica a estrutura de uma tabela já existente — adicionar, alterar ou remover colunas.
-- Adicionar coluna
ALTER TABLE cliente ADD telefone VARCHAR(20);
-- Alterar o tipo de uma coluna
ALTER TABLE cliente MODIFY nome VARCHAR(150) NOT NULL;
-- Remover coluna
ALTER TABLE cliente DROP COLUMN telefone;
DROP × DELETE × TRUNCATE
Três comandos muito confundidos. Atenção à diferença:
| Comando | O que remove | Categoria |
|---|---|---|
DROP TABLE | Estrutura e dados (a tabela deixa de existir) | DDL |
TRUNCATE TABLE | Todos os dados, mas mantém a estrutura | DDL |
DELETE FROM | Linhas específicas (com WHERE) ou todas | DML |
04 Constraints (restrições)
Constraints são regras aplicadas às colunas ou tabelas para garantir a integridade dos dados — ou seja, impedir que informações inválidas ou inconsistentes sejam armazenadas.
Identifica unicamente cada registro.
Relaciona uma tabela a outra.
Impede valores repetidos na coluna.
Torna o preenchimento obrigatório.
Valida uma condição sobre o valor.
Define um valor padrão automático.
05 Chave primária e restrições associadas (PK · UK · CK · NN)
PK PRIMARY KEY — Chave primária
- Identifica unicamente cada registro da tabela;
- Não aceita valores
NULL; - Não aceita valores repetidos;
- Cada tabela tem apenas uma chave primária.
UK UNIQUE — Chave única
Garante que os valores da coluna não se repitam (ex.: CPF, e-mail). Diferente da PK, aceita um valor nulo e podem existir várias por tabela.
ALTER TABLE cliente ADD CONSTRAINT uk_email UNIQUE (email);
CK CHECK — Verificação
Valida uma condição lógica antes de aceitar o dado (MySQL 8.0+).
ALTER TABLE cliente ADD CONSTRAINT ck_idade CHECK (idade >= 0);
NN NOT NULL — Não nulo
Torna o preenchimento da coluna obrigatório — ela nunca pode ficar vazia.
ALTER TABLE cliente MODIFY nome VARCHAR(100) NOT NULL;
06 Integridade referencial — FOREIGN KEY
A chave estrangeira (FOREIGN KEY) cria uma relação entre tabelas, referenciando a chave primária de outra tabela. Ela garante a integridade referencial: um valor só pode ser inserido se existir na tabela referenciada.
CREATE TABLE pedido (
id_pedido INT PRIMARY KEY AUTO_INCREMENT,
data_venda DATE NOT NULL,
id_cliente INT,
CONSTRAINT fk_pedido_cliente
FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)
);
Assim, não é possível cadastrar um pedido para um cliente que não existe. As ações ON DELETE e ON UPDATE definem o que acontece quando o registro "pai" é alterado ou removido:
| Ação | Comportamento |
|---|---|
CASCADE | Propaga a alteração/exclusão para os registros filhos |
SET NULL | Define a FK dos filhos como NULL |
RESTRICT / NO ACTION | Impede a operação enquanto houver filhos vinculados |
Resumo rápido
- DDL define a estrutura:
CREATE,ALTER,DROP,TRUNCATE. - Tipos de dados definem o conteúdo de cada coluna (use
DECIMALpara dinheiro;VARCHARpara textos variáveis). - Constraints garantem a integridade: PK, FK, UNIQUE, NOT NULL, CHECK, DEFAULT.
- PRIMARY KEY = único + não nulo; UNIQUE = não repete; CHECK = valida condição; NOT NULL = obrigatório.
- FOREIGN KEY conecta tabelas e garante a integridade referencial.
Referências
- ORACLE. MySQL 8.0 Reference Manual — Data Definition Statements. Disponível em: dev.mysql.com/doc. Acesso em: 10 ago. 2026.
- ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 7. ed. São Paulo: Pearson, 2018.
- DATE, C. J. Introdução a Sistemas de Bancos de Dados. 8. ed. Rio de Janeiro: Elsevier, 2004.
- W3SCHOOLS. SQL Constraints. Disponível em: w3schools.com/sql. Acesso em: 10 ago. 2026.
Conteúdo adaptado didaticamente para fins educacionais, com exemplos na sintaxe MySQL para uso em ambiente XAMPP/phpMyAdmin.
Comentários
Postar um comentário
Ficou com alguma dúvida? Quer compartilhar sua experiência? Tem uma sugestão de
melhoria? Seu comentário é muito importante!