-- Adicionar coluna ALTER TABLE aluno ADD COLUMN telefone VARCHAR(15); -- Remover coluna ALTER TABLE aluno DROP COLUMN telefone; -- Renomear coluna ALTER TABLE aluno RENAME COLUMN dt_nasc TO data_nascimento; -- Alterar tipo ALTER TABLE aluno ALTER COLUMN nome TYPE VARCHAR(200); -- Setar / remover NOT NULL ALTER TABLE aluno ALTER COLUMN email SET NOT NULL; ALTER TABLE aluno ALTER COLUMN email DROP NOT NULL;
-- Adicionar FK ALTER TABLE pedido ADD CONSTRAINT fk_cliente FOREIGN KEY (cli_cpf) REFERENCES cliente(cpf); -- Adicionar UNIQUE ALTER TABLE produto ADD CONSTRAINT uq_produto_nome UNIQUE (nome); -- Adicionar CHECK ALTER TABLE produto ADD CONSTRAINT chk_preco CHECK (preco > 0); -- Remover constraint pelo nome ALTER TABLE produto DROP CONSTRAINT chk_preco;
Remove a tabela inteira (estrutura + dados).
-- Falha se houver FKs apontando DROP TABLE departamento; -- Remove tabela e todas as FKs dependentes DROP TABLE departamento CASCADE; -- Só remove se não houver dependências DROP TABLE departamento RESTRICT;
Remove todos os dados mas mantém a estrutura da tabela. Mais rápido que DELETE.
TRUNCATE TABLE pedido; -- Com CASCADE para tabelas dependentes TRUNCATE TABLE cliente CASCADE;
Diferente de DELETE: não gera log de cada linha, reseta sequências.
① departamento
② professor (FK → departamento)
③ disciplina (FK → professor)
Quem é referenciado deve existir antes
① disciplina
② professor
③ departamento
Ou use DROP ... CASCADE (cuidado!)
Usando as tabelas criadas na Aula 5 (departamento, professor, disciplina), execute as alterações abaixo no DB Fiddle.
Adicione coluna email (UNIQUE) em professor. Adicione CHECK em disciplina para créditos entre 1 e 10. Renomeie a coluna "nome" de departamento para "nome_depto".
Remova a tabela disciplina (CASCADE). Recrie-a com uma coluna extra carga_horaria (INTEGER, NOT NULL, DEFAULT 60).