DEV Community

Yuri Peixinho
Yuri Peixinho

Posted on

Data Definition Language (DDL)

Introdução

DDL é o conjunto de comandos responsável por definir e modificar a estrutura do banco de dados: criar tabelas, alterar colunas, remover objetos. Operações DDL geralmente são irreversíveis — um DROP TABLE não pede confirmação, ele simplesmente executa.

CREATE TABLE

Cria uma nova tabela com suas colunas, tipos de dados e restrições.

CREATE TABLE clientes (
  id INT PRIMARY KEY,
  nomeVARCHAR(100) NOT NULL,
  emailVARCHAR(150) UNIQUE,
  criado_em DATE DEFAULT CURRENT_DATE
);
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, id é a chave primária, nome não pode ser nulo, email deve ser único em toda a tabela, e criado_em recebe a data atual automaticamente se nenhum valor for informado.

ALTER TABLE

Modifica uma tabela já existente — adiciona colunas, remove, renomeia, ou altera tipos.

-- Adicionando uma coluna nova
ALTER TABLE clientes ADD COLUMN telefoneVARCHAR(20);

-- Removendo uma coluna
ALTER TABLE clientes DROP COLUMN telefone;

-- Renomeando uma coluna
ALTER TABLE clientes RENAME COLUMN nomeTO nome_completo;
Enter fullscreen mode Exit fullscreen mode

ALTER TABLE é o comando mais usado em migrações de banco de dados — toda vez que o sistema evolui e o esquema precisa acompanhar.

DROP TABLE

Remove uma tabela completamente, junto com todos os seus dados.

DROP TABLE clientes;
Enter fullscreen mode Exit fullscreen mode

Sem volta. Por isso, em ambientes de produção, é comum exigir backups antes de executar qualquer DROP.

TRUNCATE TABLE

Remove todos os registros de uma tabela, mas preserva a estrutura dela.

TRUNCATE TABLE clientes;
Enter fullscreen mode Exit fullscreen mode

A diferença para um DELETE sem cláusula WHERE é de desempenho: o TRUNCATE não processa linha por linha, ele simplesmente descarta o conteúdo inteiro de uma vez, sendo muito mais rápido em tabelas grandes. Em contrapartida, não dispara triggers e em vários bancos não pode ser revertido.

Top comments (0)